Открыть сервис

Erasure coding

Erasure coding (также стирающее кодирование, избыточное кодирование с удалением) — это метод кодирования данных, применяемый в системах хранения и передачи информации, который позволяет восстанавливать утерянные или повреждённые данные, используя математические вычисления, а не их полное копирование. В отличие от репликации (зеркалирования), erasure coding позволяет добиться высокой отказоустойчивости при значительно меньших затратах дискового пространства и сетевого трафика.

Принцип работы

В основе erasure coding лежит принцип разделения исходных данных на фрагменты (k — data chunks), из которых с помощью математических операций (как правило, в поле Галуа) вычисляются дополнительные избыточные фрагменты (m — parity chunks). Полученный набор из n = k + m фрагментов называется «кодовым словом» (codeword). Фрагменты распределяются по независимым узлам хранения (дискам, серверам, дата-центрам).

При потере или повреждении любого количества фрагментов, не превышающего m, данные могут быть восстановлены с помощью операций декодирования без обращения к исходному источнику. Для восстановления потерянных k фрагментов достаточно получить любые k уцелевших фрагментов из общего набора n.

Ключевые параметры

Система erasure coding характеризуется двумя параметрами — k и m, которые определяют её эффективность и отказоустойчивость:

Коэффициент избыточности

Коэффициент избыточности (storage overhead) вычисляется как (k + m)/k. Например:

При репликации (например, тройное зеркалирование) избыточность критически выше — 300% (коэффициент 3).

История и развитие

Математические основы кодов с исправлением ошибок были заложены в 1940-х — 1950-х годах:

Виды и схемы erasure coding

По типу используемых кодов

По способу применения

Применение в системах хранения

Erasure coding широко применяется в:

Распределённые файловые системы

Облачные хранилища

Встроенные системы — RAID

Крупные интернет-компании

Системы долговременного архивирования

Преимущества и недостатки

Преимущества

Недостатки

Принципы выбора параметров

На практике выбор параметров k и m зависит от:

Типовые сочетания в промышленных системах:

Сравнение с репликацией

ПараметрErasure codingРепликация
Коэффициент избыточности1,2–1,72–3
Экономия пространства30–80% от репликации
Время восстановления (RS)Высокое (чтение k блоков)Быстрое (чтение 1 блока)
Вычислительная нагрузкаВысокаяОчень низкая
Сложность реализацииВысокаяНизкая
Расходы на сетьНизкие при записи, высокие при восстановленииВысокие при записи

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →