Three questions, three contracts
Ownership: first active token at or after key. Replicas: distinct nodes with zone preference. Rebalance: strictly improve the global load gap within a budget.
Equal token counts do not imply equal traffic.
1 / 5
Ownership: first active token at or after key. Replicas: distinct nodes with zone preference. Rebalance: strictly improve the global load gap within a budget.
Equal token counts do not imply equal traffic.
Active A@20, B@20, C@70; inactive D@90. IDs A<B<C<D.
Key 20 → A, no wrap. Key 21 → C, no wrap. Key 80 → A, wrapped. Key 0 → A, no wrap.
Joining E@50 changes (20,50] only.
From key 15: B/east, A/east, C/west, B/east, D/west, E/north. rf=4.
Pass 1: B,C,E. Restart at the original position. Pass 2: A. Result B,C,E,A.
Why not D? A is the first unseen node on the second traversal.
Loads [14,8,2]: size 7 → [7,8,9], gap 2.
Size 5 → [9,8,7], gap 2. Larger-size tie break picks 7.
Loads [12,11,0]: size 6 → [6,11,6], gap 5, not zero.
Cache unchanged-node extrema to score each candidate in O(1).
[10,10,0] moving size 10 from node 0 to 2 preserves gap 10.
Reject it. Strict decrease prevents oscillation.
Pinned data, move limits and the chosen hi→lo pair can leave positive gap. A plan is proposed ownership changes, not executed data migration.