-
Type:
Documentation
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Verify
-
None
-
Storage Engines, Storage Engines - Foundations, Storage Engines - Persistence
-
None
-
13
One of the directions of the DisAgg verification is verifying the coherence between stable and ingest btrees. We assume that it should be very simple for primary node, since in this case, ingest btree should always be empty (need to double check this).
But for secondary, we need to research which states between stable and ingest B-trees should be considered valid or invalid. Currently, our understanding of these possible states is still very immature, so it's more of a research ticket.
The only certain thing that we have, that could help to understand how this contracts could look like, is a suggestion from ddanderson : "if we have a K,V at timestamp T1 in the ingest table, and the same key is available at timestamp T2 in the stable table, I never expect T1 < T2."
Another question that we have now, is whether it’s OK for ingest and stable tables to have duplicate.
Answering this questions, doesn't cover the full scope of this ticket, this ticket also includes discovering new questions/state/checks.
The goals of this ticket:
- Define a list of contacts that could be built between injest and stable btrees from the WT perspective
- Document them (decide internally or publicly).
Please check the corresponding doc section for more details.