~/bend-docscommunity

src/MergeIter.bend checks

raw source on the hub · import mylsm-lsm-store@0.4.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 15 · raw

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

Scan put2 for the sorted merge iterator.

def scan_put source · line 27 · raw

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

Scan put for the sorted merge iterator.

def scan_go source · line 44 · raw

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

Scan go for the sorted merge iterator.

def flatten source · line 66 · raw

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

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

def merge source · line 74 · raw

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

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

def scan source · line 78 · raw

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

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