跳至內容

儲存

此內容適用於 0.1。 切換至最新版本以取得最新文件。

Chronicle 目前會將 recording 與 canonical session 儲存在本機檔案系統。Storage 負責持久化與發佈的基礎原語;發佈決定、發佈驗證與 checkpoint advancement ordering 由 ETL 擁有。replay 讀取已持久化的 canonical artifact,而不是 WAL 內部細節。

公開命令依照以下順序解析 data directory:

  1. --data-dir DIR
  2. 設定檔中的 data_dir
  3. CHRONICLE_DATA_DIR
  4. 平台預設值。

會修改資料的命令只在需要時建立私有目錄,並拒絕不安全的 root 或 symlink 形式。doctor 會回報既有或預計使用的位置,不會建立 probe artifact。

<data-dir>/
.chronicle-domain.lock
catalog.json
recordings/<bare-recording-uuid>/
sessions/<session-uuid>/

在本機檔案系統部署內,標準化的 .chronicle-domain.lock 會保護 name claim、capture、ETL、publication 與 catalog update,將它們視為一個 transaction。此 lock 是本地部署的協調機制,不是 Recorder 與 ETL 之間的架構性所有權機制。

每個 session 會以以下形式發佈:

sessions/<session-id>/
manifest.json
session.json
payloads/<sha256>

在 Unix 上,staging directory 使用 0700,檔案使用 0600。最後才寫入 manifest,publication 只會將 destination 重新命名為尚不存在的位置。Inspect 會驗證 artifact metadata;replay 會 hydrate payload 並檢查 SHA-256。

PostgreSQL metadata storage、S3 相容的 artifact storage、遠端 WAL 封存、靜態資料加密、redaction policy 與 tenant isolation 尚未實作。不要從 storage interface 或 protocol registry 推論這些功能已存在。