def scan.work_budget.copied

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

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

2303def scan.work_budget.copied(
2304  +path: String,
2305  lock: DbLock.Lock,
2306  state: HandleState,
2307  base_entries: Nat & Nat,
2308  payload_bytes: Nat,
2309  copies: List<&1, ByteMemTable.Entry> & List<&1, ByteMemTable.Entry>
2310) -> Handle & Nat:
2311  match base_entries:
2312    case (retained_base_entries, budget_base_entries):
2313      match copies:
2314        case (entries, copied):
2315          +delta_count = List.length(&1, ByteMemTable.Entry, copied)
2316          (Handle{path, lock, ByteMemTable.Table{entries}, state,
2317              VisibleStats.Stats{retained_base_entries, payload_bytes}},
2318            ScanWorkPolicy.writer_transitions(budget_base_entries, delta_count))

Uses (13)

Used by (1)