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.
ExactResult@bytes:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @complete:Bool -> ExactResult
type ExactState source · line 22 · raw
Type
Represent ExactState data used by the database recovery effects.
ExactNeed@file:File -> @remaining:Nat -> @chunks:List<&1, 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes> -> ExactState
ExactRead@pair:Pair(File, Result<&1, &1, Pair(U32, String), 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes>) -> @remaining:Nat -> @chunks:List<&1, 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes> -> ExactState
type WalProgress source · line 27 · raw
Type
Represent WalProgress data used by the database recovery effects.
WalMore@file:File -> @offset:Nat -> @state:0x571fd57004366c423dfd4b51196743b5/src/Db.RotRes -> WalProgress
WalStop@result:Result<&1, &1, Pair(U32, String), 0x571fd57004366c423dfd4b51196743b5/src/Db.RotRes> -> WalProgress
type WalState source · line 32 · raw
Type
Represent WalState data used by the database recovery effects.
WalAt@file:File -> @offset:Nat -> @state:0x571fd57004366c423dfd4b51196743b5/src/Db.RotRes -> WalState
WalAfter@progress:WalProgress -> WalState
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.