Jump to a problem, path or page
Jump to a problem, path or page
Updates as you edit. Run the review to record it; passing every check completes the problem.
Not yet passed: Client router responsibility
Add Client router and define its responsibility.
Not yet passed: Range directory responsibility
Add Range directory and define its responsibility.
Not yet passed: Move coordinator responsibility
Add Move coordinator and define its responsibility.
Not yet passed: Source shard responsibility
Add Source shard and define its responsibility.
Not yet passed: Copy worker responsibility
Add Copy worker and define its responsibility.
Not yet passed: Destination shard responsibility
Add Destination shard and define its responsibility.
Not yet passed: Client router → Range directory
A directed path must connect Client router to Range directory. Arrows represent requests, dependencies, or event flow.
Not yet passed: Client router → Source shard
A directed path must connect Client router to Source shard. Arrows represent requests, dependencies, or event flow.
Not yet passed: Client router → Destination shard
A directed path must connect Client router to Destination shard. Arrows represent requests, dependencies, or event flow.
Not yet passed: Move coordinator → Range directory
A directed path must connect Move coordinator to Range directory. Arrows represent requests, dependencies, or event flow.
Not yet passed: Move coordinator → Source shard
A directed path must connect Move coordinator to Source shard. Arrows represent requests, dependencies, or event flow.
Not yet passed: Source shard → Copy worker
A directed path must connect Source shard to Copy worker. Arrows represent requests, dependencies, or event flow.
Not yet passed: Copy worker → Destination shard
A directed path must connect Copy worker to Destination shard. Arrows represent requests, dependencies, or event flow.
Not yet passed: Move coordinator → Destination shard
A directed path must connect Move coordinator to Destination shard. Arrows represent requests, dependencies, or event flow.
Not yet passed: Can updating router caches alone fence the old owner?
Not yet passed: When can destination ownership become active?
Not yet passed: How should a delayed source-era update affect a newer copied value?
Not yet passed: API and data model notes
Write at least 80 characters describing concrete operations, inputs, outputs, state and errors. This check measures completeness, not semantic correctness.
Not yet passed: Trade-offs and failure cases
Write at least 80 characters about alternatives, failure handling and edge cases. Review the reasoning yourself using the reference discussion.
Rule-based educational feedback. Notes are checked by length only; topology checks confirm directed reachability. These checks do not validate semantics, latency, reliability or every valid design.
Use a durable range-move protocol with one source writer during copying. Version-aware snapshot/log replay prepares the destination, then an enforced source fence and final replay barrier allow a conditional directory ownership switch. Reserve the move in an authoritative directory and pin source range epoch, destination placement and a source-supported snapshot/log boundary. Reject concurrent overlapping moves. Copy snapshot records and tombstones while replaying changes, accepting only newer per-key versions at the destination. Persist progress and keep the destination read/write-inactive for this range. Fence new source writes and drain already admitted operations to a final log barrier. Replay through the barrier and verify destination contents at that boundary before committing the new directory epoch. Activate destination requests only under the committed ownership epoch. Old-owner requests receive redirect/retry rather than writes; preserve logical request idempotency across routers. Cleanup follows confirmed cutover and retention horizons, not a timer alone.
There is no single correct diagram. Explain where yours differs and which requirement justifies it.