Skip to content

Mark hotspot split M2 design implemented#1124

Open
bootjp wants to merge 199 commits into
design/hotspot-split-m2-promotion-completefrom
feature/hotspot-split-m2-implemented-doc
Open

Mark hotspot split M2 design implemented#1124
bootjp wants to merge 199 commits into
design/hotspot-split-m2-promotion-completefrom
feature/hotspot-split-m2-implemented-doc

Conversation

@bootjp

@bootjp bootjp commented Jul 19, 2026

Copy link
Copy Markdown
Owner

Summary

  • promote the hotspot split M2 migration design from partial to implemented
  • record the completed production runner, current-voter barriers, route cutover, cleanup, DONE history, and deterministic Jepsen workload
  • update the parent hotspot design and scaling roadmaps to the implemented path and current status

Evidence

Remaining scope

  • M3 owns automatic hotspot detection, target selection, and split scheduling
  • M4 owns the broader route-shuffle nemesis matrix and production-scale fault campaigns
  • reverse migration after CUTOVER and concurrent migration jobs remain future extensions

bootjp added 17 commits July 18, 2026 21:12
…to design/hotspot-split-m2-store-export

# Conflicts:
#	kv/shard_key.go
…port' into design/hotspot-split-m2-cross-group

# Conflicts:
#	kv/fsm.go
#	kv/shard_store.go
#	kv/shard_store_test.go
#	kv/sharded_coordinator.go
#	store/lsm_store_applied_index_test.go
…port' into design/hotspot-split-m2-cross-group

# Conflicts:
#	kv/shard_store.go
…port' into design/hotspot-split-m2-cross-group
…oup' into design/hotspot-split-m2-promotion-complete

# Conflicts:
#	kv/shard_store.go
#	kv/sharded_coordinator.go
#	main.go
#	store/store.go
…n-complete' into design/hotspot-split-m2-runner
## Summary

- Complete the Milestone 2 split migration lifecycle from PLANNED
through BACKFILL, FENCE, DELTA_COPY, CUTOVER, CLEANUP, DONE, and
pre-cutover ABANDON.
- Require durable per-voter source/target barriers, including membership
changes, source-issued snapshot and fence timestamps, cutover read
fencing, cleanup proofs, and bounded job history.
- Add bounded physical cleanup for source and abandoned target data,
plus metadata cleanup and promotion completion proofs.
- Add split CLI job inspection/abandon operations and a Jepsen split
workload with concurrent left/right register traffic, migration polling,
faults, and FENCE abandonment coverage.

## Safety

- The source write tracker and no-prune retention pin are applied and
acknowledged by every current source voter before the snapshot timestamp
is selected.
- Snapshot and fence timestamps are issued by the source group after a
linearizable leader check and are strictly greater than its last
committed timestamp.
- CUTOVER waits for target readiness and source read-fence
acknowledgements from every current voter; membership or address changes
reopen the barrier.
- CLEANUP waits for descriptor visibility, read-drain grace, bounded
physical deletion, and per-voter metadata absence before marking the job
complete.

## Validation

### Go Test Results
@coderabbitai

coderabbitai Bot commented Jul 19, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: bacf0b62-eb77-4062-9608-cdf4b1c7718e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@bootjp

bootjp commented Jul 19, 2026

Copy link
Copy Markdown
Owner Author

@codex review

Current head db933c0 promotes the completed hotspot split M2 central subsystem to implemented status.

Evidence:

  • PR Complete hotspot split M2 migration lifecycle #1096 merged the production runner and lifecycle slice into this stacked base.
  • The runner drives PLANNED through DONE/history and gates cutover/cleanup on current source and target voter proofs.
  • Target route publication, incremental promotion, source/target cleanup, and deterministic Jepsen split workload are present.
  • Targeted Go migration/voter/cleanup/promotion/route tests passed.
  • lein test elastickv.split-workload-test passed: 2 tests, 5 assertions.
  • golangci-lint --config=.golangci.yaml run --fix reported 0 issues in the commit hook.
  • git diff --check passed, commit signature is valid, and rg finds no reference to the old partial path.

Please review the latest head. Earlier #1096 findings are stale and resolved.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates several design documents to reflect that Milestone 2 (Migration Plane) of the Hotspot Shard Split has been fully implemented. The status and references have been updated from partial to implemented across the documentation. The review feedback suggests improving document navigation by converting plain-text file references into clickable Markdown links, and specifically correcting a repo-relative path that would otherwise result in a broken link.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread docs/design/2026_06_12_proposed_scaling_roadmap.md
Comment thread docs/design/2026_06_12_proposed_scaling_roadmap.md
Comment thread docs/design/2026_06_23_proposed_scaling_roadmap.md
@bootjp

bootjp commented Jul 19, 2026

Copy link
Copy Markdown
Owner Author

@codex review

Current signed head f270d8d addresses all current-head review findings:

  • both references in the June 12 roadmap are clickable relative Markdown links;
  • the June 23 roadmap now uses a bare-filename relative link instead of a duplicated docs/design/ path.

All three inline findings have replies and their threads are resolved. The link target exists, the old partial path is absent, git diff --check passes, and the commit hook reports 0 lint issues. Please review the latest head.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. More of your lovely PRs please.

Reviewed commit: f270d8d54f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@bootjp
bootjp force-pushed the design/hotspot-split-m2-promotion-complete branch from 28449f9 to 54cc7b9 Compare July 19, 2026 15:03
@bootjp

bootjp commented Jul 20, 2026

Copy link
Copy Markdown
Owner Author

@copilot resolve the merge conflicts in this pull request

Copilot AI commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

@copilot resolve the merge conflicts in this pull request

Merge conflicts resolved. The merge commit incorporates the latest base branch changes; the rename conflict was resolved by keeping the implemented filename and content (removing the partial version), doc content conflicts take our "implemented" status text, and code file conflicts take the base branch version since our PR only modifies documentation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants