{
  "slug": "minimum-storage-regenerating-code",
  "term": "Minimum-storage regenerating code",
  "aliases": [
    "MSR code"
  ],
  "definition": "A minimum-storage regenerating code minimizes repair download at the minimum-storage point for a specified recovery threshold and helper count.",
  "note": "With k fragments sufficient to recover the data, n stored fragments, d helpers and S bytes per fragment, symmetric single-loss repair downloads dS/(d-k+1), where k <= d < n. This budget is conditional on a suitable code and repair procedure, not a property of every MDS implementation. [dimakis]\n\nFunctional repair preserves recoverability but can change a fragment's contents; exact repair reproduces the lost fragment. Clay provides a practical exact-repair construction. Lower download volume does not by itself establish lower physical disk reads or shorter recovery time. [clay]",
  "related": [
    "maximum-distance-separable-code",
    "subpacketization",
    "repair-locality",
    "repair-read-amplification"
  ],
  "status": "limited",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-18",
  "provenance": [
    "Theory and a historical implementation are distinguished. The Ceph development documentation marks Clay deprecated since Umbrella, with removal planned for Vampire; check the deployed release. [ceph-clay]"
  ],
  "citations": [
    {
      "id": "dimakis",
      "title": "Dimakis et al. Network Coding for Distributed Storage Systems. IEEE TIT 56(9), 4539-4551 (2010), DOI 10.1109/TIT.2010.2054295; equation 5.",
      "url": "https://pbg.web.engr.illinois.edu/papers/coding-journal.pdf",
      "accessed": "2026-10-18"
    },
    {
      "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"
    }
  ]
}
