src/Recover.bend relies on unsafe/foreign
raw source on the hub · import mylsm-lsm-store@0.5.0.0/src/Recover.bend as Recover
16 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 ./FsPolicy.bend as FsPolicy 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 19 · raw
Type
Represent ExactResult data used by the database recovery effects.
ExactResult@bytes:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @complete:Bool -> ExactResult
type ExactState source · line 23 · 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 28 · raw
Type
Represent WalProgress data used by the database recovery effects.
WalMore@file:File -> @offset:Nat -> @state:0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes -> WalProgress
WalStop@result:Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes> -> WalProgress
type WalState source · line 33 · raw
Type
Represent WalState data used by the database recovery effects.
WalAt@file:File -> @offset:Nat -> @state:0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes -> WalState
WalAfter@progress:WalProgress -> WalState
type LoadTablesState source · line 116 · raw
Type
Represents loadtablesstate data in recover.
LoadTablesNames@names:List<&2, String> -> @ldir:String -> @dir:String -> @acc:List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table> -> LoadTablesState
LoadTablesRead@result:Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table> -> @names:List<&2, String> -> @ldir:String -> @dir:String -> @acc:List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table> -> LoadTablesState
type LoadLevelsState source · line 121 · raw
Type
Represents loadlevelsstate data in recover.
LoadLevelsNames@levels:List<&2, List<&2, String>> -> @idx:Nat -> @dir:String -> @acc:List<&2, List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table>> -> LoadLevelsState
LoadLevelsPath@ldir:Maybe<&2, String> -> @names:List<&2, String> -> @levels:List<&2, List<&2, String>> -> @idx:Nat -> @dir:String -> @acc:List<&2, List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table>> -> LoadLevelsState
LoadLevelsRead@result:Result<&1, &1, Pair(U32, String), List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table>> -> @levels:List<&2, List<&2, String>> -> @idx:Nat -> @dir:String -> @acc:List<&2, List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table>> -> LoadLevelsState
type SweepReadState source · line 817 · raw
Type
Represents sweepreadstate data in recover.
SweepReadNeed@path:String -> @idx:Nat -> @remaining:Nat -> @names:List<&1, String> -> SweepReadState
SweepReadResult@result:Result<&1, &1, Pair(U32, String), String> -> @path:String -> @idx:Nat -> @remaining:Nat -> @names:List<&1, String> -> SweepReadState
type SweepCheckedState source · line 892 · raw
Type
Represents sweepcheckedstate data in recover.
SweepCheckedDirs@dirs:List<&2, String> -> @dir:String -> SweepCheckedState
SweepCheckedResult@result:Result<&1, &1, Pair(U32, String), Unit> -> @dirs:List<&2, String> -> @dir:String -> SweepCheckedState
Definitions
def wal_corruption_error_code source · line 38 · raw
U32
Returns the typed corruption code for malformed WAL data.
def exact.max source · line 41 · raw
@large:Bool -> @+remaining:Nat -> U32
def exact.result source · line 48 · 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 56 · raw
@fuel:Nat -> @state:ExactState -> IO(Pair(File, Result<&1, &1, Pair(U32, String), ExactResult>))
def load_tables source · line 127 · raw
@fuel:Nat -> @state:LoadTablesState -> IO(Result<&1, &1, Pair(U32, String), List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table>>)
Loads the SSTables referenced by a Manifest and propagates failures.
def ldir_of source · line 149 · raw
@idx:Nat -> Maybe<&2, String>
Handle ldir of in the database recovery effects.
def load_levels source · line 169 · raw
@fuel:Nat -> @state:LoadLevelsState -> IO(Result<&1, &1, Pair(U32, String), List<&2, List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table>>>)
Builds recovered levels from the Manifest table entries.
def wal.empty source · line 199 · raw
0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes
def exact.start source · line 202 · raw
@file:File -> @+needed:Nat -> IO(Pair(File, Result<&1, &1, Pair(U32, String), ExactResult>))
def wal.truncate.synced source · line 205 · raw
@result:Result<&1, &1, Pair(U32, String), Unit> -> @state:0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes -> IO(WalProgress)
def wal.truncate.result source · line 215 · raw
@result:Result<&1, &1, Pair(U32, String), Unit> -> @+path:String -> @state:0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes -> IO(WalProgress)
def wal.truncate source · line 228 · raw
@+path:String -> @+offset:Nat -> @state:0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes -> IO(WalProgress)
def wal.u32.pair source · line 237 · raw
@pair:Pair(0x185ae03c75e3e75be1171471f68b43cb/bytes.Cursor, Maybe<&2, U32>) -> Maybe<&2, U32>
def wal.u32 source · line 242 · raw
@bytes:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> Maybe<&2, U32>
def wal.apply source · line 245 · raw
@batch:0x4fcd94fa965aa1443134557fd075a483/src/Wal.Batch -> @state:0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes -> 0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes
def wal.frames.decoded source · line 250 · raw
@result:Result<&1, &1, 0x4fcd94fa965aa1443134557fd075a483/src/Wal.Error, 0x4fcd94fa965aa1443134557fd075a483/src/Wal.Batch> -> @file:File -> @+next_offset:Nat -> @state:0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes -> IO(WalProgress)
def wal.frames.decode source · line 265 · raw
@pair:Pair(File, Result<&1, &1, Pair(U32, String), ExactResult>) -> @prefix:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @+offset:Nat -> @+next_offset:Nat -> @state:0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes -> @+path:String -> IO(WalProgress)
def wal.frames.body.bound source · line 286 · raw
@enough:Bool -> @file:File -> @prefix:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @+frame_size:Nat -> @+offset:Nat -> @+next_offset:Nat -> @state:0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes -> @+path:String -> IO(WalProgress)
def wal.frames.body source · line 306 · raw
@file:File -> @prefix:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @+frame_size:Nat -> @+size:Nat -> @+offset:Nat -> @state:0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes -> @+path:String -> IO(WalProgress)
def wal.frames.bound source · line 319 · raw
@within:Bool -> @file:File -> @bytes:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @frame_len:U32 -> @+size:Nat -> @+offset:Nat -> @state:0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes -> @+path:String -> IO(WalProgress)
def wal.frames.length.checked source · line 338 · raw
@enough:Bool -> @within:Bool -> @file:File -> @prefix:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @frame_len:U32 -> @+size:Nat -> @+offset:Nat -> @state:0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes -> @+path:String -> IO(WalProgress)
def wal.frames.length.value source · line 358 · raw
@file:File -> @maybe_len:Maybe<&2, U32> -> @+size:Nat -> @+offset:Nat -> @state:0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes -> @+path:String -> IO(WalProgress)
def wal.frames.length source · line 378 · raw
@pair:Pair(File, Result<&1, &1, Pair(U32, String), ExactResult>) -> @+size:Nat -> @+offset:Nat -> @state:0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes -> @+path:String -> IO(WalProgress)
def wal.frames.remaining source · line 400 · raw
@file:File -> @+size:Nat -> @+offset:Nat -> @state:0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes -> @+path:String -> @remaining:Nat -> IO(WalProgress)
def wal.frames.end source · line 430 · raw
@at_end:Bool -> @file:File -> @+size:Nat -> @+offset:Nat -> @state:0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes -> @+path:String -> IO(WalProgress)
def wal.frames source · line 447 · raw
@+fuel:Nat -> @+size:Nat -> @+path:String -> @state:WalState -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes>)
def wal.header.decoded source · line 478 · raw
@result:Result<&1, &1, 0x4fcd94fa965aa1443134557fd075a483/src/Wal.Error, Unit> -> @file:File -> @+size:Nat -> @+path:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes>)
def wal.header.synced source · line 493 · raw
@result:Result<&1, &1, Pair(U32, String), Unit> -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes>)
def wal.header.truncated source · line 502 · raw
@result:Result<&1, &1, Pair(U32, String), Unit> -> @+path:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes>)
def wal.header source · line 514 · raw
@pair:Pair(File, Result<&1, &1, Pair(U32, String), ExactResult>) -> @+size:Nat -> @+path:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes>)
def wal.open.file source · line 532 · raw
@size:Nat -> @opened:Result<&1, &1, Pair(U32, String), File> -> @+path:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes>)
def wal.open.size source · line 545 · raw
@result:Result<&1, &1, Pair(U32, String), Nat> -> @+path:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes>)
def wal.open.present source · line 557 · raw
@present:Bool -> @+path:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes>)
def wal_open.exists source · line 569 · raw
@result:Result<&1, &1, Pair(U32, String), Bool> -> @+dir:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes>)
def wal_open source · line 580 · raw
@+dir:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes>)
Handle wal open in the database recovery effects.
def tmp_pick source · line 588 · 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 596 · raw
@+ok:Bool -> @+name:String -> Maybe<&2, String>
Handle tmp some in the database recovery effects.
def tmp_map_list source · line 604 · raw
@xs:List<&1, String> -> List<&2, Maybe<&2, String>>
Handle tmp map list in the database recovery effects.
def cat_go source · line 612 · raw
@xs:List<&2, Maybe<&2, String>> -> List<&2, String>
Handle cat go in the database recovery effects.
def tmp_names source · line 624 · raw
@xs:List<&1, String> -> List<&2, String>
Handle tmp names in the database recovery effects.
def sweep_one source · line 628 · 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 638 · raw
@+dir:String -> @+sub:String -> IO(Unit)
Handle sweep get in the database recovery effects.
def sweep_cnt source · line 644 · 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 652 · raw
@+dir:String -> @+sub:String -> IO(Unit)
Handle sweep dir in the database recovery effects.
def wal_part.initialized source · line 659 · raw
@result:Result<&1, &1, Pair(U32, String), Unit> -> @+dir:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes>)
def wal_part source · line 670 · raw
@+dir:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes>)
Splits the WAL replay stream at the recovery boundary.
def open_assemble source · line 676 · raw
@res:0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes -> @+dir:String -> @+mfst:0x4fcd94fa965aa1443134557fd075a483/src/Manifest.Manifest -> @levels:List<&2, List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table>> -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Open assemble for the database recovery effects.
def open_levels.wal source · line 687 · raw
@result:Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.RotRes> -> @+dir:String -> @+mfst:0x4fcd94fa965aa1443134557fd075a483/src/Manifest.Manifest -> @levels:List<&2, List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table>> -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
def open_levels_checked source · line 700 · raw
@ok:Bool -> @+dir:String -> @+mfst:0x4fcd94fa965aa1443134557fd075a483/src/Manifest.Manifest -> @levels:List<&2, List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table>> -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Loads Manifest levels and checks WAL recovery errors.
def open_levels.loaded source · line 714 · raw
@result:Result<&1, &1, Pair(U32, String), List<&2, List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Sstable.Table>>> -> @+dir:String -> @+mfst:0x4fcd94fa965aa1443134557fd075a483/src/Manifest.Manifest -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
def open_levels.fuel source · line 725 · raw
@+mfst:0x4fcd94fa965aa1443134557fd075a483/src/Manifest.Manifest -> Nat
def open_levels source · line 729 · raw
@+dir:String -> @+mfst:0x4fcd94fa965aa1443134557fd075a483/src/Manifest.Manifest -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Opens levels through the legacy recovery result path.
def open_names_go source · line 735 · raw
@ok:Bool -> @+dir:String -> @+mfst:0x4fcd94fa965aa1443134557fd075a483/src/Manifest.Manifest -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Open names go for the database recovery effects.
def sweep_root_go source · line 743 · raw
@+dir:String -> IO(Unit)
Handle sweep root go in the database recovery effects.
def sweep_root_cnt source · line 749 · 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 757 · raw
@+dir:String -> IO(Unit)
Handle sweep root in the database recovery effects.
def open_db.swept source · line 762 · raw
@+dir:String -> @+mfst:0x4fcd94fa965aa1443134557fd075a483/src/Manifest.Manifest -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
def open_db.manifest source · line 771 · raw
@result:Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Manifest.Manifest> -> @+dir:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
def open_db.ensured source · line 781 · raw
@ensured:Result<&1, &1, Pair(U32, String), Unit> -> @+dir:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
def open_db source · line 794 · raw
@+dir:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Opens the legacy database and applies best-effort recovery cleanup.
def sweep_checked_path.select source · line 799 · raw
@root:Bool -> @+dir:String -> @+subdir:String -> String
def sweep_checked_path source · line 807 · raw
@+dir:String -> @+subdir:String -> String
Removes one temporary path and propagates removal failures.
def sweep_checked_remove_list source · line 811 · raw
@+names:List<&2, String> -> IO(Result<&1, &1, Pair(U32, String), Unit>)
Removes every temporary path with checked errors.
def sweep_read_checked source · line 822 · raw
@fuel:Nat -> @state:SweepReadState -> IO(Result<&1, &1, Pair(U32, String), List<&1, String>>)
Reads a directory listing through checked indexed IO.
def sweep_read_checked_count source · line 846 · raw
@result:Result<&1, &1, Pair(U32, String), Nat> -> @+path:String -> IO(Result<&1, &1, Pair(U32, String), List<&1, String>>)
Handles the checked directory-entry count result.
def sweep_read_checked_path source · line 858 · raw
@+path:String -> IO(Result<&1, &1, Pair(U32, String), List<&1, String>>)
Reads one indexed directory entry and preserves errors.
def sweep_checked_read_error source · line 864 · raw
@allow_missing:Bool -> @+code:U32 -> @message:String -> IO(Result<&1, &1, Pair(U32, String), Unit>)
Converts a directory-read failure to the recovery result.
def sweep_checked_dir.result source · line 873 · raw
@result:Result<&1, &1, Pair(U32, String), List<&1, String>> -> @allow_missing:Bool -> @+path:String -> IO(Result<&1, &1, Pair(U32, String), Unit>)
def sweep_checked_dir source · line 885 · raw
@+dir:String -> @+subdir:String -> IO(Result<&1, &1, Pair(U32, String), Unit>)
Sweeps temporary files from one optional level directory.
def sweep_checked_dirs source · line 897 · raw
@fuel:Nat -> @state:SweepCheckedState -> IO(Result<&1, &1, Pair(U32, String), Unit>)
Sweeps temporary files from all optional level directories.
def sweep_checked source · line 922 · raw
@+dir:String -> IO(Result<&1, &1, Pair(U32, String), Unit>)
Runs the checked temporary-file sweep across database levels.
def open_existing_sweep_result source · line 927 · raw
@result:Result<&1, &1, Pair(U32, String), Unit> -> @+dir:String -> @+manifest:0x4fcd94fa965aa1443134557fd075a483/src/Manifest.Manifest -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Continues existing-open recovery after the checked sweep.
def open_existing_manifest source · line 939 · raw
@result:Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Manifest.Manifest> -> @+dir:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Loads the Manifest before opening existing database levels.
def open_existing_checked source · line 952 · raw
@manifest_present:Bool -> @+dir:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Recovers an existing database and propagates filesystem errors.
def open_existing.present source · line 964 · raw
@result:Result<&1, &1, Pair(U32, String), Bool> -> @+dir:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
def open_existing_locked source · line 975 · raw
@+dir:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Opens an existing database while the caller retains its lock.
def create_initialized source · line 981 · raw
@synced:Result<&1, &1, Pair(U32, String), Unit> -> @+dir:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Initializes the database state after creating its directories.
def create_published source · line 992 · raw
@renamed:Result<&1, &1, Pair(U32, String), Unit> -> @+dir:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Writes and publishes the initial Manifest.
def create_written source · line 1005 · raw
@written:Result<&1, &1, Pair(U32, String), Unit> -> @+dir:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Initializes the WAL after publishing the Manifest.
def create_locked source · line 1018 · raw
@+dir:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Creates a new database without acquiring another lock.
def flush_dec source · line 1028 · raw
@full:Bool -> @+db:0x4fcd94fa965aa1443134557fd075a483/src/Db.Db -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Flush dec for the database recovery effects.
def flush_gate source · line 1036 · raw
@db:0x4fcd94fa965aa1443134557fd075a483/src/Db.Db -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Flush gate for the database recovery effects.
def l0_full source · line 1042 · raw
@db:0x4fcd94fa965aa1443134557fd075a483/src/Db.Db -> Bool
Handle l0 full in the database recovery effects.
def drain_once.flushed source · line 1048 · raw
@result:Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db> -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Flushes one full MemTable and returns the updated database.
def drain_once source · line 1058 · raw
@+db:0x4fcd94fa965aa1443134557fd075a483/src/Db.Db -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Flushes one full MemTable and returns the updated database.
def drain_pick source · line 1064 · raw
@full:Bool -> @+db:0x4fcd94fa965aa1443134557fd075a483/src/Db.Db -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Handle drain pick in the database recovery effects.
def drain_go source · line 1072 · raw
@+db:0x4fcd94fa965aa1443134557fd075a483/src/Db.Db -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Handle drain go in the database recovery effects.
def maintain.flushed source · line 1075 · raw
@result:Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db> -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
def maintain.drained source · line 1084 · raw
@result:Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db> -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
def maintain source · line 1096 · raw
@+db:0x4fcd94fa965aa1443134557fd075a483/src/Db.Db -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Runs the required flush and compaction maintenance.
def maintain_unwrap source · line 1102 · raw
@res:Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db> -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Handle maintain unwrap in the database recovery effects.
def write source · line 1110 · raw
@+db:0x4fcd94fa965aa1443134557fd075a483/src/Db.Db -> @+batch:0x4fcd94fa965aa1443134557fd075a483/src/Wal.Batch -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Handle write in the database recovery effects.
def put source · line 1116 · raw
@+db:0x4fcd94fa965aa1443134557fd075a483/src/Db.Db -> @+key:String -> @+val:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Handle put in the database recovery effects.
def del source · line 1120 · raw
@+db:0x4fcd94fa965aa1443134557fd075a483/src/Db.Db -> @+key:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Handle del in the database recovery effects.