Node Join — Minimal Remap and Staged Handoff

Node Join — Minimal Remap and Staged Handoff A data-flow diagram generated by Archify. 01 / Map 02 / Move 03 / Cutover 04 / Serve Stable map · 10 nodes, ring + vnodes · 01 / Map · keys stay put Stable map 10 nodes, ring + vnodes keys stay put New ranges move · near 9% of keys · 02 / Move · stream, then catch up New ranges move near 9% of keys stream, then catch up Flip ownership · atomic map update · 03 / Cutover · forward in flight Flip ownership atomic map update forward in flight Serve on 11 · no full rehash · 04 / Serve · balanced load Serve on 11 no full rehash balanced load Routing cache · versioned map · 01 / Map · short TTL Routing cache versioned map short TTL Stale window · old owner answers · 02 / Move · forwards, never strands Stale window old owner answers forwards, never strands Weighted shares · 2x node, 2x ranges · 03 / Cutover · others untouched Weighted shares 2x node, 2x ranges others untouched Node leaves · its ranges rehomed · 04 / Serve · near 10% move Node leaves its ranges rehomed near 10% move ranges owned by 11 ownership lag near zero catch-up map v41 to v42 cutover map cached briefly routing stale reads forwarded forward leave rehomes only its ranges version same atomic flip weight Legend primary data async batch data store data flow