Context
The DHT benchmark work in #656 needs to compare Rings against the original Chord paper. One of the paper's load-balance experiments (Fig. 9) evaluates virtual nodes: each real node owns multiple unrelated positions on the Chord identifier ring, and keys are assigned to those virtual positions before being aggregated back to the real node.
Rings currently appears to have a single routing identity (Did) per runtime node. The existing VNode/VirtualNode terminology was storage-entry terminology and is being separated from node membership in #607; it is not the same feature as Chord virtual nodes.
Because of that, the benchmark PR can only report Fig. 9 as simulator-only data today. It cannot honestly claim that Rings runtime supports virtual-node load balancing.
Why this matters
Chord uses virtual nodes to reduce key ownership skew. In the original paper's Fig. 9 setup, a 10^4 real-node network with 10^6 keys improves substantially as virtual nodes per real node increase. Without a runtime virtual-node design, Rings inherits the single-identifier consistent-hashing skew: some nodes own much larger identifier intervals than others.
This affects:
- storage/load balance for DHT entries;
- benchmark claims against Chord's load-balance results;
- interpretation of paper-aligned simulator data versus real Rings behavior;
- future scaling behavior when node count is large but each node contributes only one ring position.
Questions to resolve
- Do we need Chord-style virtual nodes in Rings runtime, or is simulator-only comparison enough for the paper?
- If needed, should a physical node advertise multiple routing
Dids, or should virtual positions be derived from one authenticated node identity?
- How should WebRTC connections map to virtual identities: one transport peer with many ring positions, or separate logical peers over one transport?
- Should every virtual node maintain its own successor list and finger table, or should routing remain physical-node based with virtual ownership only for storage placement?
- How do entry ownership, replication, successor sync, and registration interact with multiple virtual positions per physical node?
- What operational cost is acceptable:
O(v log N) routing state per physical node, fewer virtual nodes, or a bounded ownership-only scheme?
Proposed scope
Start with a design/RFC before implementation. The RFC should define the semantics separately for:
- routing membership;
- storage ownership and key placement;
- transport/session mapping;
- authentication of derived virtual identities;
- benchmark reporting.
A minimal implementation may choose ownership-only virtual positions first, if full routing virtual nodes are too invasive.
Acceptance criteria
- The repository has a documented decision on whether Rings supports Chord-style virtual nodes.
- The decision clearly distinguishes Chord virtual nodes from storage
Entry/legacy VNode terminology.
- If accepted, there is a design for deriving or registering multiple ring positions per physical node.
- The design explains routing table, successor list, storage ownership, replication/sync, and WebRTC transport implications.
- Benchmarks can label Fig. 9 data as either runtime-supported or simulator-only without ambiguity.
Context
The DHT benchmark work in #656 needs to compare Rings against the original Chord paper. One of the paper's load-balance experiments (Fig. 9) evaluates virtual nodes: each real node owns multiple unrelated positions on the Chord identifier ring, and keys are assigned to those virtual positions before being aggregated back to the real node.
Rings currently appears to have a single routing identity (
Did) per runtime node. The existingVNode/VirtualNodeterminology was storage-entry terminology and is being separated from node membership in #607; it is not the same feature as Chord virtual nodes.Because of that, the benchmark PR can only report Fig. 9 as simulator-only data today. It cannot honestly claim that Rings runtime supports virtual-node load balancing.
Why this matters
Chord uses virtual nodes to reduce key ownership skew. In the original paper's Fig. 9 setup, a
10^4real-node network with10^6keys improves substantially as virtual nodes per real node increase. Without a runtime virtual-node design, Rings inherits the single-identifier consistent-hashing skew: some nodes own much larger identifier intervals than others.This affects:
Questions to resolve
Dids, or should virtual positions be derived from one authenticated node identity?O(v log N)routing state per physical node, fewer virtual nodes, or a bounded ownership-only scheme?Proposed scope
Start with a design/RFC before implementation. The RFC should define the semantics separately for:
A minimal implementation may choose ownership-only virtual positions first, if full routing virtual nodes are too invasive.
Acceptance criteria
Entry/legacyVNodeterminology.