2.3 KiB
ECStore Layout Boundary
This document records the E-001 and E-SET-001 foundation slice for the
architecture migration.
Directory Skeleton
The ECStore migration uses these internal ownership buckets before any pure file moves:
api: facade and compatibility re-export ownership.core: store facade, object, bucket, list, multipart, and heal paths.layout: static endpoint, disk, pool, and set layout descriptions.disk: local disk, format, health, and disk error ownership.erasure: erasure coding and bitrot ownership.metadata: bucket metadata, config object-store, and data-usage ownership.cluster: remote disk, peer, lock, membership, and health-control-plane ownership.services: lifecycle, replication, tier, notification, rebalance, and metrics service ownership.
Static Set Layout
Static layout is derived from persisted FormatV3 data and input endpoint
expansion. It may describe:
- deployment id;
- set count and drives per set;
- disk UUID positions inside
format.erasure.sets; - distribution algorithm;
- endpoint grouping produced before runtime disk initialization.
Static layout must not own disk handles, lock clients, reconnect loops, repair state, or shutdown signaling.
Format And Disk Layout Ownership
layout::format owns persisted format structures and disk UUID position lookup.
layout::disks_layout owns command-line volume expansion into pool/set layout.
Compatibility paths remain available through disk::format and disks_layout
until downstream callers are moved or compatibility coverage allows removal.
Runtime Set Orchestration
Runtime orchestration remains owned by Sets and SetDisks until a later pure
move. It may describe:
- flat disk index to
(set_index, disk_index)mapping; - per-set local disk replacement after distributed setup detection;
- per-set lock-client host deduplication;
- endpoint reconnect monitoring and runtime shutdown signaling;
- read/write/heal/list orchestration over initialized disks.
Preservation Rules
- Object-to-set hashing and distribution algorithm selection must not change.
- Format
setsordering and disk UUID position lookup must not change. - Local disk replacement and lock-client mapping stay runtime-only.
- Later file moves must keep old public paths or add explicit compatibility coverage before deleting them.