Skip to content

sgns::PruneCycleStats

Counters of ONE prune cycle (RECL-03; counts only). More...

#include <TxPruner.hpp>

Public Attributes

Name
uint64_t examined
Candidates the evaluator enumerated this cycle (eligible + ineligible).
uint64_t eligible
Candidates the evaluator marked eligible (PRUNE-01 verdicts).
uint64_t erased
uint64_t held_blocks
uint64_t skipped
uint64_t errors
uint64_t duration_ms
Wall-clock duration of the cycle in milliseconds.
uint64_t generation
bool generation_superseded

Detailed Description

struct sgns::PruneCycleStats;

Counters of ONE prune cycle (RECL-03; counts only).

Per-tx EVIDENCE (reasons, spend heights, block verdicts) lives in the evaluator's PruneEvaluationResult — the stats carry the cycle-level arithmetic an operator needs in the per-cycle INFO line and PruneStatus. bytes_reclaimed is deliberately absent: deletes alone reclaim nothing and no byte measurement exists before Phase 20's CompactRange proof — a fabricated number is worse than none.

Public Attributes Documentation

variable examined

uint64_t examined = 0;

Candidates the evaluator enumerated this cycle (eligible + ineligible).

variable eligible

uint64_t eligible = 0;

Candidates the evaluator marked eligible (PRUNE-01 verdicts).

variable erased

uint64_t erased = 0;

Transactions physically erased through the atomic pruned-erase driver this cycle (never more than max_erases_per_cycle).

variable held_blocks

uint64_t held_blocks = 0;

Erasable block groups DEFERRED whole because the remaining K budget could not fit the group (D-04 group-or-defer — the stranding edge, Pitfall 1). Deferred groups retry next cycle.

variable skipped

uint64_t skipped = 0;

Candidates inside taken groups whose FRESH spent-ness re-verify refused the erase (a spend reverted between evaluation and erase, or the value could not be re-fetched) — skipped, never erased.

variable errors

uint64_t errors = 0;

Per-tx erase failures inside taken groups (recorded and skipped past — the cycle continues; the tx stays enumerated for a later cycle). Per-tx failures are NOT hard errors: the cycle still ran to completion.

variable duration_ms

uint64_t duration_ms = 0;

Wall-clock duration of the cycle in milliseconds.

variable generation

uint64_t generation = 0;

The account-generation tag the caller passed for this cycle (D-C4). Informational: the service cannot observe generations.

variable generation_superseded

bool generation_superseded = false;

CALLER-OWNED (D-C4): true when the caller detected that the account generation moved past generation while this cycle described it. RunCycle itself CANNOT detect supersession (it never touches the snapshot lifecycle) — the wiring arm checks before invoking the cycle and tags its own reporting; the flag stays false as produced by the service.


Updated on 2026-10-22 at 19:28:22 +0000