~/bend-docscommunity

src/RecoverPure.bend checks

raw source on the hub · import mylsm-lsm-store@0.4.0.0/src/RecoverPure.bend as RecoverPure

4 imports
import Base
import ./MemTable.bend as MemTable
import ./Manifest.bend as Manifest
import ./Sstable.bend as Sstable

Definitions

def mid_and source · line 9 · raw

@lhs:Bool -> @rhs:Bool -> Bool

Handle mid and in the pure recovery decisions.

def shape_mid source · line 17 · raw

@first:Bool -> @second:Bool -> @third:Bool -> Bool

Handle shape mid in the pure recovery decisions.

def gen_valid_read source · line 22 · raw

@parsed:Maybe<&2, Nat> -> Bool

Table generations are compact decimal only. Unparsable middles are invalid (no unary-dash legacy reads: no retrocompat).

def gen_valid source · line 30 · raw

@+middle:String -> Bool

Handle gen valid in the pure recovery decisions.

def ov_ok source · line 34 · raw

@+big:Bool -> @+name:String -> @+ln:Nat -> Bool

Handle ov ok in the pure recovery decisions.

def name_shape source · line 42 · raw

@+name:String -> Bool

Handle name shape in the pure recovery decisions.

def level_name_ok source · line 47 · raw

@+big:Bool -> @+name:String -> @+ln:Nat -> @+prefix:String -> @+prefix_len:Nat -> Bool

Return the level name ok for the pure recovery decisions.

def name_shape_level source · line 55 · raw

@+name:String -> @+level:Nat -> Bool

Handle name shape level in the pure recovery decisions.

def gen_value_read source · line 62 · raw

@parsed:Maybe<&2, Nat> -> Nat

Handle gen value read in the pure recovery decisions.

def gen_value source · line 70 · raw

@+middle:String -> Nat

Handle gen value in the pure recovery decisions.

def name_gen source · line 74 · raw

@+name:String -> Nat

Handle name gen in the pure recovery decisions.

def names_ok source · line 79 · raw

@xs:List<&2, String> -> Bool

Handle names ok in the pure recovery decisions.

def level_names_ok source · line 87 · raw

@+level:Nat -> @xs:List<&2, String> -> Bool

Return the level names ok for the pure recovery decisions.

def manifest_names_ok source · line 95 · raw

@levels:List<&2, List<&2, String>> -> @+level:Nat -> Bool

Handle manifest names ok in the pure recovery decisions.

def names_all source · line 103 · raw

@lvls:List<&2, List<&2, String>> -> List<&2, String>

Handle names all in the pure recovery decisions.

def cmax source · line 111 · raw

@names:List<&2, String> -> @+cur:Nat -> Nat

Handle cmax in the pure recovery decisions.

def count_gen source · line 119 · raw

@+lvls:List<&2, List<&2, String>> -> Nat

Count gen in the pure recovery decisions.

def mfst_lists source · line 123 · raw

@+mfst:0x571fd57004366c423dfd4b51196743b5/src/Manifest.Manifest -> List<&2, List<&2, String>>

Handle mfst lists in the pure recovery decisions.

def disjoint_with_table source · line 131 · raw

@+tbl:0x571fd57004366c423dfd4b51196743b5/src/Sstable.Table -> @rest:List<&2, 0x571fd57004366c423dfd4b51196743b5/src/Sstable.Table> -> Bool

L0 may overlap by design. Every table within each level below L0 must have a range disjoint from every peer; metadata makes this check independent of SortedRun and avoids reparsing entries during recovery.

def level_pairwise_disjoint source · line 139 · raw

@tables:List<&2, 0x571fd57004366c423dfd4b51196743b5/src/Sstable.Table> -> Bool

Return the level pairwise disjoint for the pure recovery decisions.

def lower_levels_disjoint source · line 147 · raw

@levels:List<&2, List<&2, 0x571fd57004366c423dfd4b51196743b5/src/Sstable.Table>> -> Bool

Check lower-level levels disjoint for the pure recovery decisions.

def l1_plus_disjoint source · line 155 · raw

@levels:List<&2, List<&2, 0x571fd57004366c423dfd4b51196743b5/src/Sstable.Table>> -> Bool

Handle l1 plus disjoint in the pure recovery decisions.

def needs_flush_cap source · line 163 · raw

@+mem:0x571fd57004366c423dfd4b51196743b5/src/MemTable.MemTable -> @+cap:Nat -> Bool

Handle needs flush cap in the pure recovery decisions.