Documentation
¶
Overview ¶
Command elastickv-snapshot-encode is the Phase 0b M6 snapshot encoder described in docs/design/2026_06_01_proposed_snapshot_encode_cli.md (parent: docs/design/2026_05_25_partial_snapshot_logical_encoder.md).
It reads a vendor-independent per-adapter directory tree (produced by elastickv-snapshot-decode or by a future Phase 1 live extractor) and writes a native EKVPBBL1 .fsm a stopped node can load via the stop-replace-restart restore runbook (parent §"Restore via stop-replace-restart").
The CLI is offline-only. It does not talk to a running cluster; the receiving cluster loads the output .fsm via its existing snapshot loader on next restart.
Atomic publish: the .fsm is written to <output>.tmp-<random> first, fsync+close, then renamed to <output> only after the optional self-test matches. A self-test failure removes the temp file, so a known-bad .fsm never reaches the restore path (codex P2 v2 #896).
version is stamped at build time via -ldflags "-X main.version=$(git rev-parse HEAD)". Test builds keep the literal "dev" so CLI-level tests can assert the field is present without depending on a release tag.