メンテナンス
sekai --store ./sekai-store gc --dry-run
sekai --store ./sekai-store gc
gc はどのスナップショットからも参照されていない CAS Blob を回収します。
計画(プランニング)フェーズは読み取り専用です。
適用フェーズでは削除(unlink)前に最新のメタデータと照らし合わせて候補を再検証するため、CLIが1回の実行で両方を行う場合でも、2フェーズ構成(gc plan の後に適用)が保持されます。
gc --dry-run は計画のみを表示し、--timing と組み合わせることができます(計画フェーズが計測され、apply_ms は 0 になります)が、報告すべき適用フェーズが存在しないため --progress との組み合わせはできません。
GCは孤立した Blob のみを削除し、メタデータを削除することはありません。
スナップショットの削除は prune が担います(次保持への fold 後に gc で回収)。
スナップショットの削減
sekai --store ./sekai-store prune --keep-last 10 --dry-run
sekai --store ./sekai-store prune --keep-last 10
sekai --store ./sekai-store prune --before @stable
prune は古いスナップショットを削除します。
保持対象は最新の --keep-last N 件と --before 以降の積集合です(少なくとも一方の指定が必須)。何も残さない選択はストア全消去ではなく loud に失敗します。
削除は古い順の fold です。削除される各スナップショットは、有効な行を次の保持スナップショットへ移し、既に置換済みの行を捨てるため、保持スナップショットの復元結果は不変です。
削除スナップショットのタグは一緒に消えます。
prune は blob を unlink しません。外れた blob の回収は後続の gc が担います。
--dry-run は削除予定の一覧のみ表示します。
スナップショット、メタデータ、Blob など、すべてを含む完全な二次バックアップを作成するには、ストアディレクトリ全体を外部の場所にコピーまたはアーカイブしてください。 コマンドごとのファイル書き込みはクラッシュに強い順序(メタデータのコミット前に Blob、その後にアンリンク)で行われるため、コピーされたストアは一貫性が保たれます。