Page actions
instrument / verified-clean
Consistent Hashing Ring Visualizer
The current ledger marks this instrument verified clean within the source-bound verification corpus.
Inspectable records
Ledger state
The current ledger marks this instrument verified clean within the source-bound verification corpus.
- Area
- Computing & Information
- Tranche
- tranche-6
- Evidence ID
- t6-110
- Ledger rows
- 1
No ledger note is attached.
Review findings
The clockwise successor concept is standard and the arithmetic is correct under the explicitly stated demo hash and tie rules. The specification is not fully reproducible as written because the hash function, node hashing, collision policy, wrap/equality semantics, and rebalance-delta definition are unspecified.
Formula and scope findings
- The node-position formula is implicit: node identifiers must also be hashed, but the specification only explicitly writes hash(key) mod ring_size.
- The 'simple demo hash' is not defined, so results are not reproducible. A byte encoding, hash algorithm, and integer arithmetic rule are required.
- Hash collisions between nodes, or between a node and a key, have no specified deterministic ordering or assignment rule.
- 'Next node clockwise' must define whether a node at exactly the key position is selected and how wraparound is handled.
- 'Rebalance delta' is undefined: it should specify whether this means the count of moved keys, fraction moved, byte load, or another metric.
- The simplified modulo ring is valid for teaching, but without virtual nodes it can produce highly uneven ownership; the honest-label warning should remain prominent.
Unit assumptions
- ring_size is a positive, dimensionless integer; positions are integers in [0, ring_size - 1].
- For these deterministic vectors, hash(s) is defined as the sum of UTF-8 byte values of string s.
- Node positions are hash(node_id) mod ring_size, and key positions are hash(key) mod ring_size.
- Clockwise order increases position numerically and wraps from ring_size - 1 to 0.
- A key at the same position as a node maps to that node; if multiple nodes share a position, input list order is the deterministic tie-break.
- For these vectors, rebalance delta means the number of keys whose assigned node changes, with the moved fraction also reported.
Boundary hardening
BREAK_CLAIMED · SELF_FLAGGED
The specified calculation is undefined for ring_size = 0 and requires explicit input rejection. Additionally, the specification does not define the hash function details or whether clockwise corresponds to increasing or decreasing numeric positions; the latter changes the mapping for the same valid input.
Errata and corrections
No applied erratum is attached to this unique-name record.
Inspectable example
4 review vectors are recorded. One source-bound sample is shown below.
{
"inputs": {
"hash_function": "H(s) = sum of UTF-8 byte values",
"ring_size": 16,
"nodes": [
"A",
"B",
"C"
],
"keys": [
"alpha",
"beta",
"gamma"
],
"topology_change": "none"
},
"expected_outputs": {
"node_positions": {
"A": 1,
"B": 2,
"C": 3
},
"key_positions": {
"alpha": 6,
"beta": 12,
"gamma": 3
},
"key_to_node": {
"alpha": "A",
"beta": "A",
"gamma": "C"
},
"rebalance_delta": {
"moved_keys": 0,
"moved_fraction": 0
}
},
"working": "Node positions: H(A)=65, 65 mod 16=1; H(B)=66, 66 mod 16=2; H(C)=67, 67 mod 16=3. Key positions: H(alpha)=97+108+112+104+97=518, 518 mod 16=6; H(beta)=98+101+116+97=412, 412 mod 16=12; H(gamma)=103+97+109+109+97=515, 515 mod 16=3. Clockwise ownership: alpha at 6 passes 7..15, wraps to A at 1; beta at 12 also wraps to A at 1; gamma is exactly at C's position 3, so it maps to C. No topology change means 0 of 3 keys move, so moved fraction=0/3=0."
}Related workflows
No source-defined multi-instrument workflow membership is recorded.
Sources and evidence
These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.
VERIFIED_LEDGER.json · VERIFIED_CLEANevidence-tranche6/tranche6-results.jsonBOUNDARY_HAZARD_CATALOG.json