- **Основная статья:** Myna Vajha и соавт. — [Clay Codes: Moulding MDS Codes to Yield an MSR Code](https://www.usenix.org/conference/fast18/presentation/vajha). FAST 2018.
- **Кратко о статье:** Обычные MDS-коды экономно хранят данные, но восстановление потерянного узла может потребовать чтения и передачи большого объёма фрагментов. Clay Codes строят minimum-storage regenerating code, который сохраняет MDS-свойство и сокращает объём данных, загружаемых от вспомогательных узлов. В проекте Clay сравнивается с Reed–Solomon по трафику, вычислениям и полному времени восстановления.
- **Почему результат актуален:** [Ceph планирует прекратить поддержку плагина CLAY](https://ceph.io/en/news/blog/2025/ending-support-for-ec-plugins/) в будущем выпуске V, но открытая переносимая реализация позволяет прямо проверить механизм. [Современные работы о векторных кодах](https://www.usenix.org/conference/osdi26/presentation/cai) по-прежнему исследуют тот же обмен между сетевым трафиком, вычислениями и дробностью данных.
- **Артефакты и данные:** независимая библиотека [spool-labs/clay](https://github.com/spool-labs/clay) под Apache-2.0 реализует Clay Codes и коды Рида — Соломона на Rust, содержит тесты и измерения производительности на CPU. Зафиксированные ревизии: `spool-labs/clay@aa6a1f986866` (Apache-2.0).
- **Что уже предоставляет артефакт:** Библиотека содержит кодирование и восстановление, тесты побайтовой корректности, CPU-benchmarks и расчёт объёма восстановления. Кодеки разрешено использовать; готовые примеры и формулы служат эталоном для нового стенда. Проверенные исходные материалы: [CPU-benchmark](https://github.com/spool-labs/clay/blob/aa6a1f986866/benches/clay_bench.rs), [восстановление](https://github.com/spool-labs/clay/blob/aa6a1f986866/src/repair.rs).
- **Проверяемый вопрос или утверждение:** Clay уменьшает объём чтения и сетевой передачи при восстановлении, но выигрывает по полному времени только в режимах, где экономия ввода-вывода превышает дополнительные вычисления и накладные расходы разбиения.
- **Технический результат:** Создать CPU-стенд, который кодирует одинаковые данные кодами Clay и Рида — Соломона, удаляет один фрагмент и восстанавливает его с побайтовой проверкой. Добавить модель чтения и передачи от нескольких помощников с управляемой пропускной способностью и параллелизмом. Учитывать байты по событиям чтения и передачи, сверять их с формулами кода и отдельно измерять CPU-время и оценивать полное время с учётом модели.
- **Обязательное приращение команды:** Добавить собственную модель чтения и передачи от нескольких помощников с управляемой пропускной способностью и числом параллельных передач. Считать прочитанные и переданные байты по событиям модели и независимо сверять с теоретическими формулами для параметров кода; исследовать, как ограничения меняют выигрыш по времени.
- **Эксперимент:** Сравнить Clay и Reed–Solomon при разных параметрах кода, размерах блоков и допустимом числе помощников. Для восстановления одного узла варьировать ограничения чтения, сети и параллелизма, проверять учёт байтов по теории и объяснить, в каких режимах экономия передачи даёт выигрыш по полному времени.
- **Границы выводов:** стенд проверяет корректность восстановления и объём чтения и передачи для выбранных параметров кода; модель сети на одной машине не воспроизводит полное время ремонта в распределённом хранилище с реальными дисками и сетью.
- **Ресурсный профиль:** Локально, Rust, CPU, 8–16 ГБ памяти. Чтение и сеть моделируются на одной машине; при проблемах с библиотекой использовать независимый малый кодировщик, сохранив нескольких помощников, ограничения пропускной способности и параллелизма, побайтовую проверку и независимый учёт объёма восстановления.
Исследовать неоднородных помощников, несколько отказов либо адаптивный выбор кода по наблюдаемой цене CPU и сети.
## История уточнений
| Дата | Версия | Основание | Изменение обязательного результата |
|---|---|---|---|
| 07.09.2026 | 1.1 | Статический просмотр закреплённого артефакта: готовые сценарии частично покрывают задание. | Добавлены модель нескольких помощников с ограничениями чтения, сети и параллелизма и независимая сверка байтов с теорией. |