Page MenuHomePhabricator

Provide more useful guidance if a repository is clusterized into an existing multi-device cluster
ClosedPublic

Authored by epriestley on Jan 10 2017, 8:28 PM.
Tags
None
Referenced Files
F15474726: D17169.diff
Sun, Apr 6, 11:22 AM
F15454560: D17169.id41292.diff
Sat, Mar 29, 7:04 PM
F15453968: D17169.id41292.diff
Sat, Mar 29, 3:23 PM
F15453743: D17169.id41296.diff
Sat, Mar 29, 2:00 PM
F15449826: D17169.id41292.diff
Fri, Mar 28, 12:23 PM
F15448888: D17169.id41292.diff
Fri, Mar 28, 7:22 AM
F15448566: D17169.id.diff
Fri, Mar 28, 5:38 AM
F15447384: D17169.diff
Thu, Mar 27, 11:30 PM
Subscribers
None

Details

Summary

Fixes T12087. When transitioning into a clustered configuration for the first time, the documentation recommends using a one-device cluster as a transitional step.

However, installs may not do this for whatever reason, and we aren't as clear as we could be in warning about clusterizing directly into a multi-device cluster.

Roughly, when you do this, we end up believing that working copies exist on several different devices, but have no information about which copy or copies are up to date. Usually they all were already synchronized and are all up to date, but we can't make this assumption safely without risking data.

Instead, we err on the side of caution, and require a human to tell us which copy we should consider to be up-to-date, using bin/repository thaw --promote.

Test Plan
$ ./bin/repository clusterize rLOCKS --service repos001.phacility.net
Service "repos001.phacility.net" is actively bound to more than one device
(local002.local, local001.phacility.net).

If you clusterize a repository onto this service it will be unclear which
devices have up-to-date copies of the repository. This leader/follower
ambiguity will freeze the repository. You may need to manually promote a
device to unfreeze it. See "Ambiguous Leaders" in the documentation for
discussion.

    Continue anyway? [y/N]

Read other changes.

Diff Detail

Repository
rP Phabricator
Branch
clusterdoc1
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 15179
Build 19943: Run Core Tests
Build 19942: arc lint + arc unit