Minimum-storage regenerating code
A minimum-storage regenerating code minimizes repair download at the minimum-storage point for a specified recovery threshold and helper count.
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. [1]
Functional 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. [2]
Relations
- related
- Maximum distance separable code, Subpacketization, Repair locality, Repair-read amplification
Citations
- Dimakis et al. Network Coding for Distributed Storage Systems. IEEE TIT 56(9), 4539-4551 (2010), DOI 10.1109/TIT.2010.2054295; equation 5.
- Vajha et al. Clay Codes: Moulding MDS Codes to Yield an MSR Code. FAST 2018, 139-154; sections 2, 4 and 5.
- Ceph: CLAY code plugin, development documentation; helper ranges, sub-chunks and deprecation notice.
Further reading
Sources & caveats
- 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. [3]