Home / IntersectMBO / lsm-tree
Dec 14, 11-12 PM (1)
Dec 14, 12-1 PM (1)
Dec 14, 1-2 PM (0)
Dec 14, 2-3 PM (0)
Dec 14, 3-4 PM (0)
Dec 14, 4-5 PM (0)
Dec 14, 5-6 PM (0)
Dec 14, 6-7 PM (0)
Dec 14, 7-8 PM (0)
Dec 14, 8-9 PM (0)
Dec 14, 9-10 PM (0)
Dec 14, 10-11 PM (0)
Dec 14, 11-12 AM (0)
Dec 15, 12-1 AM (0)
Dec 15, 1-2 AM (0)
Dec 15, 2-3 AM (0)
Dec 15, 3-4 AM (0)
Dec 15, 4-5 AM (0)
Dec 15, 5-6 AM (0)
Dec 15, 6-7 AM (0)
Dec 15, 7-8 AM (0)
Dec 15, 8-9 AM (0)
Dec 15, 9-10 AM (0)
Dec 15, 10-11 AM (0)
Dec 15, 11-12 PM (0)
Dec 15, 12-1 PM (0)
Dec 15, 1-2 PM (0)
Dec 15, 2-3 PM (0)
Dec 15, 3-4 PM (0)
Dec 15, 4-5 PM (0)
Dec 15, 5-6 PM (0)
Dec 15, 6-7 PM (0)
Dec 15, 7-8 PM (0)
Dec 15, 8-9 PM (0)
Dec 15, 9-10 PM (0)
Dec 15, 10-11 PM (0)
Dec 15, 11-12 AM (0)
Dec 16, 12-1 AM (0)
Dec 16, 1-2 AM (0)
Dec 16, 2-3 AM (0)
Dec 16, 3-4 AM (0)
Dec 16, 4-5 AM (0)
Dec 16, 5-6 AM (0)
Dec 16, 6-7 AM (0)
Dec 16, 7-8 AM (0)
Dec 16, 8-9 AM (0)
Dec 16, 9-10 AM (0)
Dec 16, 10-11 AM (0)
Dec 16, 11-12 PM (1)
Dec 16, 12-1 PM (0)
Dec 16, 1-2 PM (2)
Dec 16, 2-3 PM (0)
Dec 16, 3-4 PM (1)
Dec 16, 4-5 PM (0)
Dec 16, 5-6 PM (0)
Dec 16, 6-7 PM (0)
Dec 16, 7-8 PM (0)
Dec 16, 8-9 PM (0)
Dec 16, 9-10 PM (0)
Dec 16, 10-11 PM (0)
Dec 16, 11-12 AM (0)
Dec 17, 12-1 AM (0)
Dec 17, 1-2 AM (0)
Dec 17, 2-3 AM (0)
Dec 17, 3-4 AM (0)
Dec 17, 4-5 AM (0)
Dec 17, 5-6 AM (0)
Dec 17, 6-7 AM (0)
Dec 17, 7-8 AM (0)
Dec 17, 8-9 AM (0)
Dec 17, 9-10 AM (0)
Dec 17, 10-11 AM (2)
Dec 17, 11-12 PM (0)
Dec 17, 12-1 PM (0)
Dec 17, 1-2 PM (0)
Dec 17, 2-3 PM (0)
Dec 17, 3-4 PM (0)
Dec 17, 4-5 PM (0)
Dec 17, 5-6 PM (0)
Dec 17, 6-7 PM (0)
Dec 17, 7-8 PM (0)
Dec 17, 8-9 PM (0)
Dec 17, 9-10 PM (0)
Dec 17, 10-11 PM (0)
Dec 17, 11-12 AM (0)
Dec 18, 12-1 AM (0)
Dec 18, 1-2 AM (0)
Dec 18, 2-3 AM (0)
Dec 18, 3-4 AM (0)
Dec 18, 4-5 AM (0)
Dec 18, 5-6 AM (0)
Dec 18, 6-7 AM (0)
Dec 18, 7-8 AM (0)
Dec 18, 8-9 AM (0)
Dec 18, 9-10 AM (0)
Dec 18, 10-11 AM (0)
Dec 18, 11-12 PM (0)
Dec 18, 12-1 PM (3)
Dec 18, 1-2 PM (0)
Dec 18, 2-3 PM (0)
Dec 18, 3-4 PM (0)
Dec 18, 4-5 PM (0)
Dec 18, 5-6 PM (0)
Dec 18, 6-7 PM (0)
Dec 18, 7-8 PM (0)
Dec 18, 8-9 PM (0)
Dec 18, 9-10 PM (0)
Dec 18, 10-11 PM (0)
Dec 18, 11-12 AM (0)
Dec 19, 12-1 AM (0)
Dec 19, 1-2 AM (0)
Dec 19, 2-3 AM (0)
Dec 19, 3-4 AM (0)
Dec 19, 4-5 AM (0)
Dec 19, 5-6 AM (0)
Dec 19, 6-7 AM (0)
Dec 19, 7-8 AM (0)
Dec 19, 8-9 AM (0)
Dec 19, 9-10 AM (0)
Dec 19, 10-11 AM (0)
Dec 19, 11-12 PM (0)
Dec 19, 12-1 PM (1)
Dec 19, 1-2 PM (0)
Dec 19, 2-3 PM (8)
Dec 19, 3-4 PM (0)
Dec 19, 4-5 PM (0)
Dec 19, 5-6 PM (0)
Dec 19, 6-7 PM (0)
Dec 19, 7-8 PM (0)
Dec 19, 8-9 PM (0)
Dec 19, 9-10 PM (0)
Dec 19, 10-11 PM (0)
Dec 19, 11-12 AM (0)
Dec 20, 12-1 AM (0)
Dec 20, 1-2 AM (0)
Dec 20, 2-3 AM (0)
Dec 20, 3-4 AM (0)
Dec 20, 4-5 AM (0)
Dec 20, 5-6 AM (0)
Dec 20, 6-7 AM (0)
Dec 20, 7-8 AM (0)
Dec 20, 8-9 AM (0)
Dec 20, 9-10 AM (0)
Dec 20, 10-11 AM (0)
Dec 20, 11-12 PM (0)
Dec 20, 12-1 PM (2)
Dec 20, 1-2 PM (0)
Dec 20, 2-3 PM (0)
Dec 20, 3-4 PM (0)
Dec 20, 4-5 PM (0)
Dec 20, 5-6 PM (0)
Dec 20, 6-7 PM (0)
Dec 20, 7-8 PM (0)
Dec 20, 8-9 PM (0)
Dec 20, 9-10 PM (0)
Dec 20, 10-11 PM (0)
Dec 20, 11-12 AM (0)
Dec 21, 12-1 AM (0)
Dec 21, 1-2 AM (0)
Dec 21, 2-3 AM (0)
Dec 21, 3-4 AM (0)
Dec 21, 4-5 AM (0)
Dec 21, 5-6 AM (0)
Dec 21, 6-7 AM (0)
Dec 21, 7-8 AM (0)
Dec 21, 8-9 AM (0)
Dec 21, 9-10 AM (0)
Dec 21, 10-11 AM (0)
Dec 21, 11-12 PM (0)
22 commits this week Dec 14, 2024 - Dec 21, 2024
create MergingRun through safe interface
Initialising a regular MergingRun even for OneShot merging avoid the
the need for directly creating completed MergingRuns and also re-uses
the existing code path to step and complete a Merge, which means there
is one less place to think about resource safety.

To be able to assert that the OneShot merge really completed, as well as
access the resulting run, we make expectCompleted not release the
MergingRun.

Similarly, we restore a completed MergingRun snapshot through a safe
interface. We also remove MergeKnownCompleted from the snapshot format,
which previously allowed to represent inconsistent states. It can
instead be re-constructed from the MergingRunState.

We also don't pass the TempRegistry across the module boundary any more.
The module can use its own where necessary.
rename identifiers, use qualified imports
Also renames the Credit types:
1. We generally talk about credits in the plural.
2. The MergingRun itself only knows about a single type of credits, so
   it seems wrong to talk about scaling there. The notion of credit
   scaling only appears in the MergeSchedule.

Also inline some helpers that operate on IncomingRun.
initialise MergingRun regularly even for OneShot merging
This avoids the need for directly creating completed MergingRuns and
also re-uses the existing code path to step and complete a Merge, which
means there is one less place to think about resource safety.

One downside is that we don't easily have access to the resulting
(OneShot-merged) run any more, so we only log information about it once
it is expected to be completed.