A forma usual de sobreviver a uma falha de disco ou de servidor é manter múltiplas cópias, o que significa pagar três vezes o armazenamento para dados convencionalmente replicados em 3x. Para um provedor de backup, esse é o custo dominante.

A codificação de apagamento Reed-Solomon oferece uma troca mais barata. A Backblaze divide um arquivo em 17 shards iguais, calcula 3 shards de paridade e armazena todos os 20 em unidades separadas. Quaisquer 17 das 20 partes restauram o original, então um arquivo sobrevive à perda de até 3 shards.

Esse é o ponto do projeto: em vez de três cópias completas, ele mantém uma cópia mais uma pequena quantidade de paridade, obtendo durabilidade quase igual enquanto gasta uma fração do armazenamento.

Comprar durabilidade com matemática de paridade, não com cópias duplicadas

Shards de paridade custam muito menos que cópias duplicadas completas.

Quaisquer 17 das 20 partes reconstroem o arquivo, tolerando a perda de múltiplas unidades.

Menor overhead de armazenamento reduz diretamente o custo unitário do provedor.

Quando você paga por confiabilidade copiando dados, está comprando em unidades inteiras caras; a matemática de codificação permite comprar uma quantidade precisa por um overhead fixo.

A Backblaze abriu o código de sua biblioteca Java Reed-Solomon, e a codificação de apagamento tornou-se uma forma comum de tanto provedores de nuvem quanto serviços de backup trocarem um pouco de CPU por durabilidade muito mais barata.

CONFIRA AS EVIDÊNCIAS

As fontes

  1. Backblaze open-sources Reed-Solomon erasure coding source code Backblaze · backblaze.com ·
  2. Erasure coding OpenStack Wiki · wiki.openstack.org