src/DbIo.bend relies on unsafe/foreign
raw source on the hub · import mylsm-lsm-store@0.5.0.0/src/DbIo.bend as DbIo
7 imports
import Base import ./Db.bend as Db import ./Wal.bend as Wal import ./Fs.bend as Fs import ./CrashPoint.bend as CrashPoint import ./DurableCommit.bend as Commit import bend-kit-bytes@0.3.2.0/bytes.bend as Bytes
Definitions
def wal_tail source · line 13 · raw
@fr:Pair(File, Result<&1, &1, Pair(U32, String), Unit>) -> @+dir:String -> IO(Result<&1, &1, Pair(U32, String), Unit>)
Handle wal tail in the database filesystem effects.
def wal.initialize.fsync source · line 25 · raw
@result:Result<&1, &1, Pair(U32, String), Unit> -> @+path:String -> IO(Result<&1, &1, Pair(U32, String), Unit>)
def wal.initialize.synced source · line 35 · raw
@result:Result<&1, &1, Pair(U32, String), Unit> -> @+path:String -> IO(Result<&1, &1, Pair(U32, String), Unit>)
def wal.initialize.written source · line 47 · raw
@pair:Pair(File, Result<&1, &1, Pair(U32, String), Unit>) -> @+path:String -> IO(Result<&1, &1, Pair(U32, String), Unit>)
def wal.initialize.opened source · line 57 · raw
@opened:Result<&1, &1, Pair(U32, String), File> -> @+path:String -> IO(Result<&1, &1, Pair(U32, String), Unit>)
def wal.initialize.header source · line 69 · raw
@+path:String -> IO(Result<&1, &1, Pair(U32, String), Unit>)
def wal.initialize.header_if_empty source · line 74 · raw
@empty:Bool -> @+path:String -> IO(Result<&1, &1, Pair(U32, String), Unit>)
def wal.initialize.existing source · line 84 · raw
@result:Result<&1, &1, Pair(U32, String), Nat> -> @+path:String -> IO(Result<&1, &1, Pair(U32, String), Unit>)
def wal.initialize.present source · line 94 · raw
@present:Bool -> @+path:String -> IO(Result<&1, &1, Pair(U32, String), Unit>)
def wal.initialize.exists source · line 106 · raw
@result:Result<&1, &1, Pair(U32, String), Bool> -> @+path:String -> IO(Result<&1, &1, Pair(U32, String), Unit>)
def wal_initialize source · line 117 · raw
@+dir:String -> IO(Result<&1, &1, Pair(U32, String), Unit>)
Creates the WAL only when it is absent.
def wal_encoded source · line 123 · raw
@+dir:String -> @result:Result<&1, &1, 0x4fcd94fa965aa1443134557fd075a483/src/Wal.Error, 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes> -> IO(Result<&1, &1, Pair(U32, String), Unit>)
Handle wal encoded in the database filesystem effects.
def wal_append source · line 138 · raw
@+dir:String -> @batch:0x4fcd94fa965aa1443134557fd075a483/src/Wal.Batch -> IO(Result<&1, &1, Pair(U32, String), Unit>)
Handle wal append in the database filesystem effects.
def append_synced source · line 142 · raw
@result:Result<&1, &1, Pair(U32, String), Unit> -> @file:File -> IO(0x4fcd94fa965aa1443134557fd075a483/src/DurableCommit.Stage)
Turns the fsync result into a durable or uncertain commit stage.
def append_written source · line 155 · raw
@pair:Pair(File, Result<&1, &1, Pair(U32, String), Unit>) -> @+path:String -> IO(0x4fcd94fa965aa1443134557fd075a483/src/DurableCommit.Stage)
Syncs the WAL after a successful append and closes the file.
def append_opened source · line 168 · raw
@opened:Result<&1, &1, Pair(U32, String), File> -> @frame:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> @+path:String -> IO(0x4fcd94fa965aa1443134557fd075a483/src/DurableCommit.Stage)
Rejects an open failure before append or writes the encoded frame.
def append_frame source · line 179 · raw
@+path:String -> @frame:0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes -> IO(0x4fcd94fa965aa1443134557fd075a483/src/DurableCommit.Stage)
Opens the WAL and appends one encoded frame.
def encoded_append source · line 185 · raw
@result:Result<&1, &1, 0x4fcd94fa965aa1443134557fd075a483/src/Wal.Error, 0x185ae03c75e3e75be1171471f68b43cb/bytes.Bytes> -> @+dir:String -> @muts:List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Wal.Mut> -> IO(Pair(0x4fcd94fa965aa1443134557fd075a483/src/DurableCommit.Stage, List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Wal.Mut>))
Rejects encoding errors before opening the WAL.
def wal_commit source · line 199 · raw
@+dir:String -> @+batch:0x4fcd94fa965aa1443134557fd075a483/src/Wal.Batch -> IO(Pair(0x4fcd94fa965aa1443134557fd075a483/src/DurableCommit.Stage, List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Wal.Mut>))
Encodes a batch and appends it to the WAL.
def db_write_durable source · line 205 · raw
@+db:0x4fcd94fa965aa1443134557fd075a483/src/Db.Db -> @+batch:0x4fcd94fa965aa1443134557fd075a483/src/Wal.Batch -> IO(Pair(0x4fcd94fa965aa1443134557fd075a483/src/Db.Db, 0x4fcd94fa965aa1443134557fd075a483/src/DurableCommit.Stage))
Persists a batch before applying its pure commit transition.
def db_write source · line 213 · raw
@+db:0x4fcd94fa965aa1443134557fd075a483/src/Db.Db -> @+batch:0x4fcd94fa965aa1443134557fd075a483/src/Wal.Batch -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Persists a batch and rotates the MemTable when needed.
def db_put source · line 223 · raw
@+db:0x4fcd94fa965aa1443134557fd075a483/src/Db.Db -> @+key:String -> @+val:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Writes one key/value pair through the legacy core path.
def db_write_staged source · line 227 · raw
@+db:0x4fcd94fa965aa1443134557fd075a483/src/Db.Db -> @+staged:List<&2, 0x4fcd94fa965aa1443134557fd075a483/src/Wal.Batch> -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Restores staged mutation order before writing the batch.
def db_del source · line 233 · raw
@+db:0x4fcd94fa965aa1443134557fd075a483/src/Db.Db -> @+key:String -> IO(Result<&1, &1, Pair(U32, String), 0x4fcd94fa965aa1443134557fd075a483/src/Db.Db>)
Writes one tombstone through the legacy core path.