Skip to content

[Node] Add: RepairSchedule trait abstracting repair-tick waits #87

Description

@thep2p

Summary

Add a RepairSchedule trait abstracting "wait for the next repair tick," with a production tokio::time::interval-backed implementation and a test implementation driven by an explicit, manually-fired gate.

Details

Algorithm context: docs/protocol/concurrent-insert.md, Section 6.4.

Files

  • src/node/base_node.rs (or a new sibling module, implementer's choice) — the trait and both implementations.

Acceptance Criteria

  • No literal tokio::time::sleep/interval call anywhere outside the production implementation.
  • The test implementation lets a test trigger exactly one tick deterministically and await its completion under a bounded timeout — zero wall-clock waiting, matching this crate's join_with_timeout/join_all_with_timeout pattern.

Dependencies

None.

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  (pending -- not yet converged)  #86  #87  <-- YOU ARE HERE
    L1:                   (pending -- not yet converged)  #88  #89
    L2:                   #90  #91  (pending -- not yet converged)  (pending -- not yet converged)
    L3:                   #92
    L4 (acceptance gate): (pending -- not yet converged)

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions