Skip to content

VersionLog Operations

Use this page when you operate a VersionLog-enabled engine in production or need to diagnose recovery, sidecar, retention, or parallel queue behavior.

VersionLog health is primarily visible through AkkEngine::stats().vlog. Stats are best-effort diagnostic snapshots, not transactionally consistent reads.

FieldMeaningWhat to do
recoveryDurationMicrosTime spent in the latest recovery pass.Track startup regression and compare with segment and entry counts.
recoveredSegmentCount, recoveredEntryCountSegments and entries accepted by recovery.Unexpected drops suggest retention, durable-tail truncation, or failed recovery.
segmentCount, activeSegmentBytesCurrent segment fan-out and active segment size.Tune segmentBytes and retention when history storage grows too quickly.
sidecarFallbackCountQueries that could not use .akvidx and scanned an authoritative segment.Repeated growth means reads remain correct but may degrade to scans.
sidecarRebuildFailuresBest-effort sidecar writes failed.Check permissions, full disks, antivirus/file locks, and filesystem errors.
retentionPrunedSegmentsClosed segments deleted by retention.Confirms retention is making progress.
retentionBaseEntriesWrittenSynthetic base entries written before pruning.High values mean many live keys cross the retention boundary.
parallelLaneCountActive PARALLEL lane count.Confirms the resolved lane count.
parallelPendingWrites, parallelPendingBytesLane work not yet persisted.Sustained growth means storage cannot keep up or the pending-byte limit is too low.
parallelQueueRejectsWrites rejected by the pending-byte limit.Alert on sustained non-zero growth.

The akkaradb_vlog_tool executable validates authoritative VersionLog segments and can rebuild derived sidecar indexes.

akkaradb_vlog_tool validate --log <path> [--json]
akkaradb_vlog_tool rebuild-indexes --log <path> [--json]

Both commands open the log through normal eager recovery. They validate .akvlog segments and may rewrite .akvidx sidecars. The tool refuses to create a new empty log when neither the base path nor a sibling segment exists.

Exit codeMeaning
0Recovery completed.
1Validation/open failed.
2rebuild-indexes completed recovery but sidecar regeneration reported failures.

Use --json when a supervisor or script should parse the result.

For recovery failures, the thrown VersionLog: error includes path context and, when available, the byte offset and sequence number. The segment file remains the source of truth.

Do not delete .akvlog or .akvtail files unless the data set is intentionally being discarded or restored from backup. Deleting or rewriting .akvidx sidecars is safe because they are derived.

Preserve VersionLog files together with the engine WAL, SST, Manifest, and Blob files. A filesystem-level backup should keep these components from the same engine point in time:

*.akvlog
*.akvtail
wal/
sstable/
manifest.akmf
blobs/

Sidecar .akvidx files are useful for faster startup and reads, but they are not the source of truth and can be rebuilt.