Skip to content

[Node] Implement: Stage-2 join level climbing #92

Description

@thep2p

Summary

Implement Phase 2 of join: the per-level BuddyOp climb on both sides, stopping at the first level where neither side has a match.

Algorithm detail: docs/protocol/concurrent-insert.md, Section 3.3.

Scope

  • src/node/base_node.rs — Phase 2 orchestration, starting from u's Stage-1 level-0 neighbors.

Acceptance Criteria

  • Both sides queried concurrently per level, not sequentially.
  • A side that resolves None at some level stays None for all higher levels (no re-querying a dry side).
  • Height = last level where either side still matched.
  • Tests cover: multi-level climb, one side going dry before the other, both sides dry at level 1 (height 0), single-node-graph edge case.

Dependencies

Depends on #84, #85, #88, #90 — Stage-2 starts from Stage-1's output.

Dependency graph (unblocked first):
EPIC #81 -- local search & join protocol
  #67 [DONE] search_by_id            #71 [OPEN] search_by_mem_vec (independent)
  #74 [OPEN] search_by_id timeout fix   #76 [OPEN] delete/leave
  Concurrent join + repair (Algorithm 2 + Algorithm 8; supersedes closed #66, #77):
    L0 (no deps):         #84  #85  #93  #86  #87
    L1:                   #94  #88  #89
    L2:                   #90  #91  #95  #96
    L3:                   #92 <-- YOU ARE HERE
    L4 (acceptance gate): #97

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions