~/bend-docscommunity

src/CompactIo.bend relies on unsafe/foreign

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

11 imports
import Base
import ./Compact.bend as Compact
import ./MemTable.bend as MemTable
import ./Sstable.bend as Sstable
import ./SstStreamIo.bend as SstStreamIo
import ./Wal.bend as Wal
import ./Manifest.bend as Manifest
import ./Flush.bend as Flush
import ./Fs.bend as Fs
import ./Db.bend as Db
import ./CrashPoint.bend as CrashPoint

Types

type RemoveState source · line 24 · raw

Type

Tracks progress while removing published files.

Definitions

def remove_list source · line 14 · raw

@names:List<&2, String> -> IO(Result<&1, &1, Pair(U32, String), Unit>)

Handle remove list in the compaction filesystem effects.

def remove_list_strict source · line 30 · raw

@fuel:Nat -> @state:RemoveState -> IO(Result<&1, &1, Pair(U32, String), Unit>)

Removes every path and propagates the first failure.

def remove_list_strict_start source · line 54 · raw

@pair:Pair(Nat, List<&2, String>) -> IO(Result<&1, &1, Pair(U32, String), Unit>)

Starts checked removal of the published file list.

def compact_goB.removed source · line 59 · raw

@result:Result<&1, &1, Pair(U32, String), Unit> -> @+dir:String -> @+mem:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+levels2:List<&2, List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table>> -> @+flushed:Nat -> @+manifest:0x4fcd94fa965aa1443134557fd075a483/src/Manifest.Manifest -> @+frozen:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+batch_cap:Nat -> @+mem_count:Nat -> @+frozen_count:Nat -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)

def compact_goB.directory_synced source · line 79 · raw

@result:Result<&1, &1, Pair(U32, String), Unit> -> @+dir:String -> @+dels:List<&2, String> -> @+m2:0x4fcd94fa965aa1443134557fd075a483/src/Manifest.Manifest -> @+mem:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+levels2:List<&2, List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table>> -> @+flushed:Nat -> @+frozen:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+batch_cap:Nat -> @+mem_count:Nat -> @+frozen_count:Nat -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)

def compact_goB.renamed source · line 102 · raw

@result:Result<&1, &1, Pair(U32, String), Unit> -> @+dir:String -> @+dels:List<&2, String> -> @+m2:0x4fcd94fa965aa1443134557fd075a483/src/Manifest.Manifest -> @+mem:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+levels2:List<&2, List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table>> -> @+flushed:Nat -> @+frozen:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+batch_cap:Nat -> @+mem_count:Nat -> @+frozen_count:Nat -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)

def compact_goB.written source · line 124 · raw

@result:Result<&1, &1, Pair(U32, String), Unit> -> @+dir:String -> @+mpath:String -> @+mtmp:String -> @+dels:List<&2, String> -> @+m2:0x4fcd94fa965aa1443134557fd075a483/src/Manifest.Manifest -> @+mem:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+levels2:List<&2, List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table>> -> @+flushed:Nat -> @+frozen:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+batch_cap:Nat -> @+mem_count:Nat -> @+frozen_count:Nat -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)

def compact_goB source · line 150 · raw

@+dir:String -> @+mpath:String -> @+mtmp:String -> @+m2:0x4fcd94fa965aa1443134557fd075a483/src/Manifest.Manifest -> @+dels:List<&2, String> -> @+mem:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+levels2:List<&2, List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table>> -> @+flushed:Nat -> @+frozen:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+batch_cap:Nat -> @+mem_count:Nat -> @+frozen_count:Nat -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)

Compact goB for the compaction filesystem effects.

def drift_go source · line 170 · raw

@ok:Bool -> @+dir:String -> @+mpath:String -> @+mtmp:String -> @+mfst:0x4fcd94fa965aa1443134557fd075a483/src/Manifest.Manifest -> @+oldl1:List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table> -> @+remt:List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table> -> @+outname:String -> @+mem:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+levels2:List<&2, List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table>> -> @+flushed:Nat -> @+frozen:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+batch_cap:Nat -> @+mem_count:Nat -> @+frozen_count:Nat -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)

Handle drift go in the compaction filesystem effects.

def compact_goA.loaded source · line 196 · raw

@result:Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Manifest.Manifest> -> @+dir:String -> @+mpath:String -> @+mtmp:String -> @+oldl1:List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table> -> @+remt:List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table> -> @+outname:String -> @+mem:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+levels2:List<&2, List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table>> -> @+flushed:Nat -> @+manifest_token:String -> @+frozen:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+batch_cap:Nat -> @+mem_count:Nat -> @+frozen_count:Nat -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)

def compact_goA.synced source · line 221 · raw

@result:Result<&1, &1, Pair(U32, String), Unit> -> @+dir:String -> @+mpath:String -> @+mtmp:String -> @+oldl1:List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table> -> @+remt:List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table> -> @+outname:String -> @+mem:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+levels2:List<&2, List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table>> -> @+flushed:Nat -> @+manifest_token:String -> @+frozen:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+batch_cap:Nat -> @+mem_count:Nat -> @+frozen_count:Nat -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)

def compact_goA.renamed source · line 248 · raw

@result:Result<&1, &1, Pair(U32, String), Unit> -> @+dir:String -> @+l1dir:String -> @+mpath:String -> @+mtmp:String -> @+oldl1:List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table> -> @+remt:List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table> -> @+outname:String -> @+mem:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+levels2:List<&2, List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table>> -> @+flushed:Nat -> @+manifest_token:String -> @+frozen:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+batch_cap:Nat -> @+mem_count:Nat -> @+frozen_count:Nat -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)

def compact_goA.written source · line 275 · raw

@result:Result<&1, &1, Pair(U32, String), Unit> -> @+dir:String -> @+l1dir:String -> @+tmp:String -> @+final:String -> @+mpath:String -> @+mtmp:String -> @+oldl1:List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table> -> @+remt:List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table> -> @+outname:String -> @+mem:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+levels2:List<&2, List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table>> -> @+flushed:Nat -> @+manifest_token:String -> @+frozen:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+batch_cap:Nat -> @+mem_count:Nat -> @+frozen_count:Nat -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)

def compact_goA.ensured source · line 305 · raw

@result:Result<&1, &1, Pair(U32, String), Unit> -> @+dir:String -> @+l1dir:String -> @+tmp:String -> @+final:String -> @+mpath:String -> @+mtmp:String -> @+entries:List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/MemTable.Entry> -> @+level:U32 -> @+outname:String -> @+mem:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+levels2:List<&2, List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table>> -> @+oldl1:List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table> -> @+remt:List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table> -> @+flushed:Nat -> @+manifest_token:String -> @+frozen:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+batch_cap:Nat -> @+mem_count:Nat -> @+frozen_count:Nat -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)

def compact_goA source · line 338 · raw

@+dir:String -> @+l1dir:String -> @+tmp:String -> @+final:String -> @+mpath:String -> @+mtmp:String -> @+entries:List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/MemTable.Entry> -> @+level:U32 -> @+outname:String -> @+mem:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+levels2:List<&2, List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table>> -> @+oldl1:List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table> -> @+remt:List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table> -> @+flushed:Nat -> @+manifest_token:String -> @+frozen:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+batch_cap:Nat -> @+mem_count:Nat -> @+frozen_count:Nat -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)

Publishes the compacted run and removes obsolete files.

def compact_pre source · line 366 · raw

@+dir:String -> @+mem:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+levels:List<&2, List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table>> -> @+flushed:Nat -> @+manifest_token:String -> @+frozen:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+batch_cap:Nat -> @+mem_count:Nat -> @+frozen_count:Nat -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)

Compact pre for the compaction filesystem effects.

def compact_trig source · line 392 · raw

@gt:Bool -> @+dir:String -> @+mem:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+levels:List<&2, List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table>> -> @+flushed:Nat -> @+manifest_token:String -> @+frozen:0x4fcd94fa965aa1443134557fd075a483/src/MemTable.MemTable -> @+batch_cap:Nat -> @+bcache:List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Db.BEntry> -> @+mem_count:Nat -> @+frozen_count:Nat -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)

Compact trig for the compaction filesystem effects.

def compact source · line 412 · raw

@+db:0x4fcd94fa965aa1443134557fd075a483/src/Db.Db -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)

Handle compact in the compaction filesystem effects.