elips/docs
Chapter XI · internals

Open & recovery flow

open() is the most important code path in any storage engine. ELIPS' is six steps long.

open()path · cfgflock LOCKRW excl · RO sharedIDENTITYdim · metric · idxEMBEDDER manifestrehydratemanifest + segs?vs snapshotload segmentselips.manifestload snapshotelips.snapshotWAL replayvalid prefix onlyRO ↛ attaches no WAL writer
lock → identity → embedder manifest → segments-or-snapshot → WAL replay → attach live WAL (skipped for read-only).
  • 1. Acquire advisory lock (exclusive for RW, shared for RO)
  • 2. Read IDENTITY (dimension, metric, index)
  • 3. Resolve TEXT_EMBEDDER.manifest, rehydrate built-in embedder if applicable
  • 4. Load elips.manifest + segments if present, else elips.snapshot
  • 5. Replay the valid WAL prefix; truncate at first invalid frame
  • 6. Attach live WAL unless read-only or ephemeral

Corrupt WAL tails are tolerated by design — the database is the longest valid prefix that hashed cleanly.