Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ADR-005: Erasure Coding and Chunk Durability

Status: Accepted Date: 2026-04-17 Context: I-C4, escalation point 10

Decision

EC parameters are per affinity pool, configured by cluster admin.

Default profiles

Pool typeStrategyRationale
fast-nvme (metadata, hot data)EC 4+2Balance of space efficiency and rebuild speed
bulk-nvme (cold data, checkpoints)EC 8+3Higher space efficiency for bulk data
meta-nvme (log SSTables, key manager)Replication-3Lowest latency for consensus-critical data

Chunk-RDMA alignment (C-ADV-3)

Content-defined chunking produces variable-size chunks. For RDMA:

  • Chunks are stored with 4KB-aligned padding on disk
  • RDMA scatter-gather lists map logical chunk boundaries to aligned physical blocks
  • One-sided RDMA transfers use pre-registered memory regions at 4KB alignment
  • Padding overhead is bounded: max 4KB per chunk, typically <1% for chunks >256KB

Consequences

  • Pool-level EC config means all chunks in a pool share the same protection level
  • Changing EC parameters requires re-encoding existing chunks (background process)
  • RDMA alignment adds trivial storage overhead but enables zero-copy transfers