def flush.snapshot

mylsm-lsm-store@0.6.0.1 · src/ByteDurableDb.bend:862

import mylsm-lsm-store@0.6.0.1/src/ByteDurableDb.bend as ByteDurableDb
import Base
import mylsm-lsm-store@0.6.0.1/src/ByteMemTable.bend as ByteMemTable
import mylsm-lsm-store@0.6.0.1/src/ByteManifest.bend as ByteManifest
import mylsm-lsm-store@0.6.0.1/src/ByteManifestIo.bend as ByteManifestIo
import mylsm-lsm-store@0.6.0.1/src/DbLock.bend as DbLock

862# Retains the live table while an independently owned ordered copy is encoded.
863def flush.snapshot(
864  +path: String,
865  lock: DbLock.Lock,
866  table: ByteMemTable.Table,
867  pair: List<&1, ByteMemTable.Entry> & List<&1, ByteMemTable.Entry>
868) -> IO(Handle & Result<&1, &1, Error, Unit>):
869  match pair:
870    case (encoded, retained):
871      do IO<Handle & Result<&1, &1, Error, Unit>>:
872        manifest : Result<&1, &1, ByteManifestIo.Error, ByteManifest.ManifestValue> <-
873          ByteManifestIo.read(path ++ "/MANIFEST")
874        flush.snapshot.manifest(path, lock, table, (encoded, retained), manifest)

Uses (18)

Used by (2)