{
  "slug": "subpacketization",
  "term": "Subpacketization",
  "aliases": [
    "sub-packetization"
  ],
  "definition": "Subpacketization is the number of base-field symbols stored by each node for one codeword in a vector erasure code.",
  "note": "Repair can select part of a fragment rather than fetch the entire fragment. A storage chunk can contain many codewords, so a coding symbol is not necessarily one network packet or one disk read. [clay]\n\nThe layout and size of sub-chunks determine whether selected data can be read efficiently. Nonconsecutive units smaller than the storage read granularity can require extra bytes to be fetched. [ceph-clay]",
  "related": [
    "minimum-storage-regenerating-code",
    "erasure-coding",
    "codeword",
    "repair-read-amplification"
  ],
  "status": "shipping",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-18",
  "citations": [
    {
      "id": "clay",
      "title": "Vajha et al. Clay Codes: Moulding MDS Codes to Yield an MSR Code. FAST 2018, 139-154; sections 2, 4 and 5.",
      "url": "https://www.usenix.org/system/files/conference/fast18/fast18-vajha.pdf",
      "accessed": "2026-10-18"
    },
    {
      "id": "ceph-clay",
      "title": "Ceph: CLAY code plugin, development documentation; helper ranges, sub-chunks and deprecation notice.",
      "url": "https://docs.ceph.com/en/latest/rados/operations/erasure-code-clay/",
      "accessed": "2026-10-18"
    },
    {
      "id": "hesela-lrc",
      "title": "Hesela: Local repair is not whole-node repair",
      "url": "https://hesela.com/analyses/lrc-repair-costs-locality/",
      "accessed": "2026-10-18"
    }
  ]
}
