Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
rebalancer: introduce pinned bucket concept into rebalancer algo
Pinned bucket is the bucket, that can not be sent out of its replicaset. Taking pinned buckets into account changes rebalancer algorithm, since now on some replicasets the perfect balance can not be reached. Iterative algorithm is used to learn the best balance in a cluster. On each step it calculates perfect bucket count for each replicaset. If this count can not be satisfied due to pinned buckets, the algorithm does best effort to get the perfect balance. This is done via ignoring of replicasets disbalanced via pinning, and their pinned buckets. After that a new balance is calculated. And it can happen, that it can not be satisfied too. It is possible, because ignoring of pinned buckets in overpopulated replicasets leads to decrease of perfect bucket count in other replicasets, and a new values can become less that their pinned bucket count. Part of #71
- Loading branch information
Showing
5 changed files
with
500 additions
and
37 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.