amduat-api/ops/asl-store-layout-1.md

139 lines
2.1 KiB
Markdown
Raw Normal View History

2026-01-17 10:33:23 +01:00
# ASL/STORE-LAYOUT/1 -- On-Disk Store Layout
Status: Draft
Owner: Architecture
Version: 0.1.0
SoT: No
Last Updated: 2026-01-17
Tags: [ops, store, layout, filesystem]
**Document ID:** `ASL/STORE-LAYOUT/1`
**Layer:** O2 -- Operational layout profile
**Depends on (normative):**
* `ASL-STORE-INDEX`
**Informative references:**
* `ASL/HOST/1`
---
## 0. Conventions
The key words **MUST**, **MUST NOT**, **REQUIRED**, **SHOULD**, and **MAY** are to be interpreted as in RFC 2119.
ASL/STORE-LAYOUT/1 defines a recommended filesystem layout for an ASL store. It does not define semantic behavior.
---
## 1. Purpose
Provide a practical, POSIX-friendly on-disk layout that preserves ASL store semantics while remaining compatible with ZFS or other backends.
---
## 2. Minimum Required Components (Informative)
An ASL store requires:
* Immutable blocks
* Append-only log
* Sealed snapshots
* Deterministic replay
Directory layout is an implementation choice. This document defines a recommended layout.
---
## 3. Recommended Domain Layout
Per domain, use:
```
/asl/domains/<domain-id>/
meta/
blocks/
index/
log/
snapshots/
tmp/
```
All paths are domain-local.
---
## 4. Blocks
```
blocks/
open/
blk_<uuid>.tmp
sealed/
00/
<blockid>.blk
ff/
<blockid>.blk
```
Rules:
* Open blocks are never visible.
* Sealed blocks are immutable.
* Sealed blocks are sharded by prefix for filesystem scalability.
---
## 5. Index Segments
```
index/
shard-000/
segment-0001.idx
segment-0002.idx
bloom.bin
shard-001/
...
```
Rules:
* Segments are append-only while open.
* Sealed segments are immutable and log-visible.
* Shards are deterministic per snapshot.
---
## 6. Log and Snapshots
```
log/
asl.log
snapshots/
<snapshot-id>/
```
Rules:
* Log is append-only.
* Snapshots pin index and block state for replay.
---
## 7. Temporary and Metadata Paths
* `tmp/` is for transient files only.
* `meta/` contains domain metadata (DAM, policy, host state).
---
## 8. Non-Goals
ASL/STORE-LAYOUT/1 does not define:
* Device selection or mount options
* Snapshot mechanism (ZFS vs other)
* Encryption or key management