~/bend-docscommunity

src/MergeIter.bend fails

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

5 imports
import Base
import ./Keys.bend as Keys
import ./MemTable.bend as MemTable
import ./Sstable.bend as Sstable
import ./SortedRun.bend as SortedRun

Definitions

def scan_put2 source · line 14 · raw

@pair:Pair(Pair(String, String), Cmp) -> @+val:String -> @acc:List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry> -> List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry>

def scan_put source · line 25 · raw

@pair:Pair(Pair(String, String), Cmp) -> @+hi:String -> @+val:String -> @acc:List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry> -> List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry>

def scan_go source · line 36 · raw

@fuel:Nat -> @+lo:String -> @+hi:String -> @acc:List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry> -> @xs:List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry> -> List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry>

def flatten source · line 52 · raw

@mem:List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry> -> @levels:List<&2, List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry>> -> List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry>

Newest-first concat: memtable entries, then each level's tables in order.

def merge source · line 60 · raw

@mem:List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry> -> @levels:List<&2, List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry>> -> List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry>

Full merge: sorted, unique, newest version wins each key.

def scan source · line 64 · raw

@+merged:List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry> -> @lo:String -> @hi:String -> List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry>

Range scan over a merged run: lo <= key < hi, tombstones dropped.