Skip to content

Join of a snapshot-less node to an original node replays the ledger #7835

@cjen1-msft

Description

@cjen1-msft

When a node tries to join, it sends a startup_seqno to the primary.
The primary will nack this if the startup_seqno is older than its one, and hence the joiner will fetch a more recent snapshot.

The most common form of this problem is if the primary was one of the original ones in a long-lived ledger, and the joiner has no snapshots.
In this case the comparison is 0 = 0 and so the joiner is allowed to join.

The primary should express an opinion about what snapshot is ok to join with.

Several options here:

  • At least as modern as the most recent snapshot
  • Given the snapshot-GC, the joiner should be at least as modern as max(min(snapshot), startup_seqno).

Metadata

Metadata

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions