Can the number of replicas be changeable?
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Fix Released
|
Medium
|
Samuel Merritt |
Bug Description
For deployment, it would be nice to be able to start with a single swift node, and then add additional nodes at a later date.
i.e. Initially start with one node, replication count = 1
After a few weeks, and a second node and bump replication count = 2
(And maybe also later bump replication count from 2 to 3)
However, I believe the replication count cannot be changed for a ring.
Thus, I think we're stuck doing the same trick as devstack, where we install multiple independent swift installs on the same node.
It would be nice to be able to increase the replication count later on.
Or, if this is tricky, maybe we could have a temporary replica count, so that I set my max replica count (e.g. 3), but then I set a 'temporary' replica count of 1 initially. The replicator won't create replicas 2 and 3, the ring is degraded and maybe performance won't be great because of retries, but I think everything would still work from the user perspective. Then, I add my second server, and bump my 'temporary' replica count to 2, and it creates two replicas, so still degraded but functioning (better). Finally, I add a third server, remove the temporary flag, and I have grown up into a working swift install?
Changed in swift: | |
assignee: | nobody → justinsb (justin-fathomdb) |
status: | New → In Progress |
Changed in swift: | |
milestone: | none → 1.8.0-rc1 |
status: | Fix Committed → Fix Released |
Changed in swift: | |
milestone: | 1.8.0-rc1 → 1.8.0 |
Uploaded (an attempt at) code that can do this. The code is surprisingly simple if it is as simple as I think it is!
Certainly this would make packaging much nicer, because then packagers can in good faith set replication=1 initially, without painting the user into a corner.