def batch.prepare.cloned

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

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/ByteWal.bend as ByteWal
import mylsm-lsm-store@0.6.0.1/src/scan/VisibleStats.bend as VisibleStats

1713# Counts records before preparing a state that owns both the original and adjusted aggregates.
1714def batch.prepare.cloned(
1715  handle: Handle,
1716  mutations: List<&1, ByteWal.Mutation>,
1717  copies: VisibleStats.Stats & VisibleStats.Stats,
1718  counted: List<&1, ByteMemTable.Entry> & Nat
1719) -> IO(Handle & Result<&1, &1, Error, BatchPrepared>):
1720  match handle:
1721    case Handle{path, lock, table, state, _}:
1722      match copies:
1723        case (original_stats, base_stats):
1724          match counted:
1725            case (retained_entries, count):
1726              batch.stats.loop(Nat.add(Nat.mul(Nat.add(count, 1n), 4n), 1n),
1727                BatchNeed{Handle{path, lock, table, state,
1728                  VisibleStats.Stats{0n, 0n}}, mutations, retained_entries,
1729                  original_stats, base_stats})

Uses (16)

Used by (1)