Кодирование стирания в HDFS: к... Заметка
DEV Community на русском

Кодирование стирания в HDFS: как снизить стоимость репликации с 200% до 50%

Кодирование с избыточностью предлагает более эффективный способ устранения потери данных по сравнению с простой репликацией. Вместо хранения нескольких полных копий файлов, кодирование с избыточностью разделяет данные на фрагменты и добавляет контрольные фрагменты, рассчитанные с использованием математики конечных полей. Для восстановления исходного файла требуется лишь определенное количество этих объединенных фрагментов данных и контрольных фрагментов, даже если некоторые из них будут утеряны. Этот подход значительно снижает накладные расходы на хранение; например, схема 6+3 (шесть фрагментов данных, три контрольных фрагмента) использует на 50% больше места по сравнению с 200% для тройной репликации. Системы, такие как HDFS, объектное хранилище S3 и RAID 6, используют кодирование с избыточностью для обеспечения долговечности данных при сбоях оборудования. Лежащая в основе математика, в первую очередь коды Рида-Соломона, отличается исключительной надежностью и находит применение в различных технологиях. Реализация кодирования с избыточностью включает выбор схемы k+m в зависимости от желаемой отказоустойчивости и понимание компромиссов. Несмотря на эффективность, кодирование с избыточностью влечет за собой затраты на процессорное время во время восстановления данных и может вызывать задержки при необходимости восстановления данных. Оно особенно выгодно для холодных или редко используемых данных из-за потенциальных накладных расходов на небольшие файлы. Тщательное рассмотрение распределения фрагментов также имеет решающее значение для эффективной отказоустойчивости. Та же арифметика конечных полей, которая обеспечивает кодирование с избыточностью, также обеспечивает коррекцию ошибок в QR-кодах, компакт-дисках и даже в связи в глубоком космосе.