AnchorHash: A Scalable Consistent Hash
42papers.com
42papers.com
(1) Total number of reassignments when a bucket is added. Note that this can be minimized independently of whether those reassignments are only to the new bucket or include others as well. They're orthogonal properties.
(2) Number of reassignment destinations when a bucket is removed. Sometimes you want this to be low and sometimes you want it to be high, but it's rarely something you can ignore.
(3) Load associated with reassignments. Perfect balance (in the authors' sense) has to be weighed against the cost of reassignment, which can be high for storage applications. Depending on this cost and the rate of change, sometimes it's better to reach approximate balance and then leave things alone. I've worked on systems that over-optimized for perfect balance, and the results weren't good.
Perhaps this work is more applicable to something like load-balancing requests. For storage, it basically seems to be missing the point. IMO they should have left storage out of their introduction.
Direct PDF link: https://export.arxiv.org/pdf/1812.09674.pdf