commit aa82d2cba82209f1bf3944c6d2a67965af5a1540
Author: Samuel Merritt <email address hidden>
Date: Thu Jun 29 10:23:38 2017 -0700
Save ring builder if dispersion changes
There are cases where a rebalance improves dispersion, but doesn't
improve balance. This is because the balance of a ring builder is
taken to be the balance of its least-balanced device, so if there's a
device that has no partitions, wants some, but can't get them, then
we'll never save the ring builder even if every other device in the
ring got better.
We can detect this situation by looking at the dispersion number; if it
changes, then the rebalance needs to be saved in order to continue to
make progress.
Reviewed: https:/ /review. openstack. org/479012 /git.openstack. org/cgit/ openstack/ swift/commit/ ?id=aa82d2cba82 209f1bf3944c6d2 a67965af5a1540
Committed: https:/
Submitter: Zuul
Branch: master
commit aa82d2cba82209f 1bf3944c6d2a679 65af5a1540
Author: Samuel Merritt <email address hidden>
Date: Thu Jun 29 10:23:38 2017 -0700
Save ring builder if dispersion changes
There are cases where a rebalance improves dispersion, but doesn't
improve balance. This is because the balance of a ring builder is
taken to be the balance of its least-balanced device, so if there's a
device that has no partitions, wants some, but can't get them, then
we'll never save the ring builder even if every other device in the
ring got better.
We can detect this situation by looking at the dispersion number; if it
changes, then the rebalance needs to be saved in order to continue to
make progress.
Partial-Bug: #1697543
Change-Id: Ie239b958fc7e05 47ffda2bebf6154 6bd4ef3d829