Repository navigation
Extend KV scripts with core contracts, multi-shard routing, and RF3 recovery - #1497
Draft
void-ptr974 wants to merge 4 commits into
Draft
void-ptr974 wants to merge 4 commits into
void-ptr974 wants to merge 4 commits into
Conversation
Signed-off-by: void-ptr974 <void-ptr974@protonmail.com>
void-ptr974
requested review from
RobertIndie,
coderzc,
mattisonchao and
merlimat
as code owners
October 5, 2026 09:34
void-ptr974
marked this pull request as draft
October 5, 2026 09:35
Signed-off-by: void-ptr974 <void-ptr974@protonmail.com>
Signed-off-by: void-ptr974 <void-ptr974@protonmail.com>
Signed-off-by: void-ptr974 <void-ptr974@protonmail.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Extend the KV scripts from #1491 into a reusable core KV contract suite across shard routing, independent clients, and RF3 recovery. Maintainers can add readable regression sequences and check the same behavior under different layouts, while dedicated Go tests cover conditional mutations that compete concurrently.
A fixture lists SDK commands followed by expected records or domain errors. The runner executes real Go SDK calls in order, reports file/line differences, and isolates each fixture's storage. Saved versions and records express CAS and metadata relationships without depending on numeric IDs or fixed timestamps. The README connects each checked contract to its fixtures and states the boundaries of those guarantees.
This PR adds 29 hand-written fixtures and the supporting assertions:
The matrix runs 250 script scenarios (112 RF1, 134 RF3, and four RF3 namespace cases), plus 144 conditional competitions, across one/four shards, both key sortings, and default/partition routes where applicable.
wait-replicatedseparately checks database application through captured quorum commit offsets. Malformed commands, incorrect placement/record relations, and cluster barriers remain fatal with-rewrite; non-default clients cannot invoke probes or control commands that target the default namespace.All cluster components run in one Go test process with in-memory coordinator metadata and graceful server stops. The same SDK clients remain open; a test resolver maintains ready discovery endpoints. These checks cover bounded competitions and controlled recovery. General concurrent-history validation, hard crashes, quorum loss, network partitions, static/stale bootstrap recovery, and Java SDK execution require separate work. Timeout/transport errors fail the suite and are not interpreted as proof that a mutation did not occur.
Validation on Linux amd64 with Go 1.27.0:
make buildand full workspace tests with coverage, race detection, and test-result caching disabled: passed (134 packages).-rewrite, including all four non-default namespace probe/control combinations; fixture checksums stayed unchanged.