~/bend-docscommunity

src/Recover.bend relies on unsafe/foreign

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

15 imports
import Base
import ./Keys.bend as Keys
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 ./Compact.bend as Compact
import ./CompactIo.bend as CompactIo
import ./Fs.bend as Fs
import ./Db.bend as Db
import ./DbIo.bend as DbIo
import ./RecoverPure.bend as Pure
import bend-kit-bytes@0.3.2.0/bytes.bend as Bytes

Types

type ExactResult source · line 18 · raw

Type

Represent ExactResult data used by the database recovery effects.

type ExactState source · line 22 · raw

Type

Represent ExactState data used by the database recovery effects.

type WalProgress source · line 27 · raw

Type

Represent WalProgress data used by the database recovery effects.

type WalState source · line 32 · raw

Type

Represent WalState data used by the database recovery effects.

Definitions

def exact.max source · line 36 · raw

@large:Bool -> @+remaining:Nat -> U32

def exact.result source · line 43 · raw

@file:File -> @chunks:List<&1, 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes> -> @complete:Bool -> IO(Pair(File, Result<&1, &1, Pair(U32, String), ExactResult>))

def exact.loop source · line 51 · raw

@fuel:Nat -> @state:ExactState -> IO(Pair(File, Result<&1, &1, Pair(U32, String), ExactResult>))

def load_tables source · line 112 · raw

@names:List<&2, String> -> @+ldir:String -> @+dir:String -> @+acc:List<&2, 0x571fd57004366c423dfd4b51196743b5/src/Sstable.Table> -> IO(List<&2, 0x571fd57004366c423dfd4b51196743b5/src/Sstable.Table>)

Handle load tables in the database recovery effects.

def ldir_io source · line 127 · raw

@+opt:Maybe<&2, String> -> IO(String)

Handle ldir io in the database recovery effects.

def ldir_of source · line 135 · raw

@idx:Nat -> Maybe<&2, String>

Handle ldir of in the database recovery effects.

def load_levels source · line 155 · raw

@lvls:List<&2, List<&2, String>> -> @+idx:Nat -> @+dir:String -> @+acc:List<&2, List<&2, 0x571fd57004366c423dfd4b51196743b5/src/Sstable.Table>> -> IO(List<&2, List<&2, 0x571fd57004366c423dfd4b51196743b5/src/Sstable.Table>>)

Handle load levels in the database recovery effects.

def wal.empty source · line 170 · raw

0x571fd57004366c423dfd4b51196743b5/src/Db.RotRes

def exact.start source · line 173 · raw

@file:File -> @+needed:Nat -> IO(Pair(File, Result<&1, &1, Pair(U32, String), ExactResult>))

def wal.truncate source · line 176 · raw

@+path:String -> @+offset:Nat -> @state:0x571fd57004366c423dfd4b51196743b5/src/Db.RotRes -> IO(WalProgress)

def wal.u32.pair source · line 186 · raw

@pair:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, U32>) -> Maybe<&2, U32>

def wal.u32 source · line 191 · raw

@bytes:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> Maybe<&2, U32>

def wal.apply source · line 194 · raw

@batch:0x571fd57004366c423dfd4b51196743b5/src/Wal.Batch -> @state:0x571fd57004366c423dfd4b51196743b5/src/Db.RotRes -> 0x571fd57004366c423dfd4b51196743b5/src/Db.RotRes

def wal.frames.decoded source · line 199 · raw

@result:Result<&1, &1, 0x571fd57004366c423dfd4b51196743b5/src/Wal.Error, 0x571fd57004366c423dfd4b51196743b5/src/Wal.Batch> -> @file:File -> @+next_offset:Nat -> @state:0x571fd57004366c423dfd4b51196743b5/src/Db.RotRes -> IO(WalProgress)

def wal.frames.decode source · line 214 · raw

@pair:Pair(File, Result<&1, &1, Pair(U32, String), ExactResult>) -> @prefix:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @+offset:Nat -> @+next_offset:Nat -> @state:0x571fd57004366c423dfd4b51196743b5/src/Db.RotRes -> @+path:String -> IO(WalProgress)

def wal.frames.body.bound source · line 235 · raw

@enough:Bool -> @file:File -> @prefix:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @+frame_size:Nat -> @+offset:Nat -> @+next_offset:Nat -> @state:0x571fd57004366c423dfd4b51196743b5/src/Db.RotRes -> @+path:String -> IO(WalProgress)

def wal.frames.body source · line 255 · raw

@file:File -> @prefix:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @+frame_size:Nat -> @+size:Nat -> @+offset:Nat -> @state:0x571fd57004366c423dfd4b51196743b5/src/Db.RotRes -> @+path:String -> IO(WalProgress)

def wal.frames.bound source · line 268 · raw

@within:Bool -> @file:File -> @bytes:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @frame_len:U32 -> @+size:Nat -> @+offset:Nat -> @state:0x571fd57004366c423dfd4b51196743b5/src/Db.RotRes -> @+path:String -> IO(WalProgress)

def wal.frames.length.checked source · line 287 · raw

@enough:Bool -> @within:Bool -> @file:File -> @prefix:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @frame_len:U32 -> @+size:Nat -> @+offset:Nat -> @state:0x571fd57004366c423dfd4b51196743b5/src/Db.RotRes -> @+path:String -> IO(WalProgress)

def wal.frames.length.value source · line 307 · raw

@file:File -> @maybe_len:Maybe<&2, U32> -> @+size:Nat -> @+offset:Nat -> @state:0x571fd57004366c423dfd4b51196743b5/src/Db.RotRes -> @+path:String -> IO(WalProgress)

def wal.frames.length source · line 327 · raw

@pair:Pair(File, Result<&1, &1, Pair(U32, String), ExactResult>) -> @+size:Nat -> @+offset:Nat -> @state:0x571fd57004366c423dfd4b51196743b5/src/Db.RotRes -> @+path:String -> IO(WalProgress)

def wal.frames.remaining source · line 349 · raw

@file:File -> @+size:Nat -> @+offset:Nat -> @state:0x571fd57004366c423dfd4b51196743b5/src/Db.RotRes -> @+path:String -> @remaining:Nat -> IO(WalProgress)

def wal.frames.end source · line 379 · raw

@at_end:Bool -> @file:File -> @+size:Nat -> @+offset:Nat -> @state:0x571fd57004366c423dfd4b51196743b5/src/Db.RotRes -> @+path:String -> IO(WalProgress)

def wal.frames source · line 396 · raw

@+fuel:Nat -> @+size:Nat -> @+path:String -> @state:WalState -> IO(Result<&1, &1, Pair(U32, String), 0x571fd57004366c423dfd4b51196743b5/src/Db.RotRes>)

def wal.header.decoded source · line 427 · raw

@result:Result<&1, &1, 0x571fd57004366c423dfd4b51196743b5/src/Wal.Error, Unit> -> @file:File -> @+size:Nat -> @+path:String -> IO(Result<&1, &1, Pair(U32, String), 0x571fd57004366c423dfd4b51196743b5/src/Db.RotRes>)

def wal.header source · line 442 · raw

@pair:Pair(File, Result<&1, &1, Pair(U32, String), ExactResult>) -> @+size:Nat -> @+path:String -> IO(Result<&1, &1, Pair(U32, String), 0x571fd57004366c423dfd4b51196743b5/src/Db.RotRes>)

def wal.open.present source · line 461 · raw

@present:Bool -> @+path:String -> IO(Result<&1, &1, Pair(U32, String), 0x571fd57004366c423dfd4b51196743b5/src/Db.RotRes>)

def wal_open source · line 476 · raw

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

Handle wal open in the database recovery effects.

def tmp_pick source · line 484 · raw

@keep:Bool -> @+name:String -> @+acc:List<&2, String> -> List<&2, String>

Handle tmp pick in the database recovery effects.

def tmp_some source · line 492 · raw

@+ok:Bool -> @+name:String -> Maybe<&2, String>

Handle tmp some in the database recovery effects.

def tmp_map_list source · line 500 · raw

@xs:List<&1, String> -> List<&2, Maybe<&2, String>>

Handle tmp map list in the database recovery effects.

def cat_go source · line 508 · raw

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

Handle cat go in the database recovery effects.

def tmp_names source · line 520 · raw

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

Handle tmp names in the database recovery effects.

def sweep_one source · line 524 · raw

@res:Result<&1, &1, Pair(U32, String), List<&1, String>> -> @+dir:String -> IO(Unit)

Handle sweep one in the database recovery effects.

def sweep_get source · line 534 · raw

@+dir:String -> @+sub:String -> IO(Unit)

Handle sweep get in the database recovery effects.

def sweep_cnt source · line 540 · raw

@res:Result<&1, &1, Pair(U32, String), Nat> -> @+dir:String -> @+sub:String -> IO(Unit)

Handle sweep cnt in the database recovery effects.

def sweep_dir source · line 548 · raw

@+dir:String -> @+sub:String -> IO(Unit)

Handle sweep dir in the database recovery effects.

def wal_part source · line 556 · raw

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

Handle wal part in the database recovery effects.

def open_assemble source · line 562 · raw

@res:0x571fd57004366c423dfd4b51196743b5/src/Db.RotRes -> @+dir:String -> @+mfst:0x571fd57004366c423dfd4b51196743b5/src/Manifest.Manifest -> @levels:List<&2, List<&2, 0x571fd57004366c423dfd4b51196743b5/src/Sstable.Table>> -> IO(Result<&1, &1, Pair(U32, String), 0x571fd57004366c423dfd4b51196743b5/src/Db.Db>)

Open assemble for the database recovery effects.

def open_levels_checked source · line 574 · raw

@ok:Bool -> @+dir:String -> @+mfst:0x571fd57004366c423dfd4b51196743b5/src/Manifest.Manifest -> @levels:List<&2, List<&2, 0x571fd57004366c423dfd4b51196743b5/src/Sstable.Table>> -> IO(Result<&1, &1, Pair(U32, String), 0x571fd57004366c423dfd4b51196743b5/src/Db.Db>)

Open levels checked for the database recovery effects.

def open_levels source · line 589 · raw

@+dir:String -> @+mfst:0x571fd57004366c423dfd4b51196743b5/src/Manifest.Manifest -> IO(Result<&1, &1, Pair(U32, String), 0x571fd57004366c423dfd4b51196743b5/src/Db.Db>)

Open levels for the database recovery effects.

def open_names_go source · line 595 · raw

@ok:Bool -> @+dir:String -> @+mfst:0x571fd57004366c423dfd4b51196743b5/src/Manifest.Manifest -> IO(Result<&1, &1, Pair(U32, String), 0x571fd57004366c423dfd4b51196743b5/src/Db.Db>)

Open names go for the database recovery effects.

def sweep_root_go source · line 603 · raw

@+dir:String -> IO(Unit)

Handle sweep root go in the database recovery effects.

def sweep_root_cnt source · line 609 · raw

@res:Result<&1, &1, Pair(U32, String), Nat> -> @+dir:String -> IO(Unit)

Handle sweep root cnt in the database recovery effects.

def sweep_root source · line 617 · raw

@+dir:String -> IO(Unit)

Handle sweep root in the database recovery effects.

def open_db source · line 623 · raw

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

Open db for the database recovery effects.

def flush_dec source · line 639 · raw

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

Flush dec for the database recovery effects.

def flush_gate source · line 647 · raw

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

Flush gate for the database recovery effects.

def l0_full source · line 653 · raw

@db:0x571fd57004366c423dfd4b51196743b5/src/Db.Db -> Bool

Handle l0 full in the database recovery effects.

def drain_once source · line 659 · raw

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

Handle drain once in the database recovery effects.

def drain_pick source · line 666 · raw

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

Handle drain pick in the database recovery effects.

def drain_go source · line 674 · raw

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

Handle drain go in the database recovery effects.

def maintain source · line 678 · raw

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

Handle maintain in the database recovery effects.

def maintain_unwrap source · line 685 · raw

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

Handle maintain unwrap in the database recovery effects.

def write source · line 693 · raw

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

Handle write in the database recovery effects.

def put source · line 699 · raw

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

Handle put in the database recovery effects.

def del source · line 703 · raw

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

Handle del in the database recovery effects.