La forma habitual de sobrevivir a un fallo de disco o de servidor es mantener múltiples copias, lo que significa pagar tres veces el almacenamiento para datos replicados convencionalmente 3x. Para un proveedor de copias de seguridad este es el costo dominante.
La codificación por borrado Reed-Solomon ofrece una alternativa más barata. Backblaze divide un archivo en 17 fragmentos iguales, calcula 3 fragmentos de paridad y almacena los 20 en unidades separadas. Cualesquiera 17 de las 20 piezas restauran el original, de modo que un archivo sobrevive a la pérdida de hasta 3 fragmentos.
Ese es el punto del diseño: en lugar de tres copias completas, mantiene una copia más una pequeña cantidad de paridad, obteniendo una durabilidad casi igual mientras gasta una fracción del almacenamiento.
Comprar durabilidad con matemáticas de paridad, no con copias duplicadas
Los fragmentos de paridad cuestan mucho menos que las copias duplicadas completas.
Cualesquiera 17 de 20 piezas reconstruyen el archivo, tolerando la pérdida de múltiples unidades.
Una menor sobrecarga de almacenamiento reduce directamente el costo unitario del proveedor.
Cuando se paga por confiabilidad copiando datos, se compra en costosas unidades completas; las matemáticas de codificación permiten comprar una cantidad precisa por una sobrecarga fija en su lugar.
Backblaze liberó como código abierto su biblioteca Java de Reed-Solomon, y la codificación por borrado se convirtió en una forma común en que tanto los proveedores de nube como los servicios de copias de seguridad intercambian un poco de CPU por una durabilidad mucho más barata.
CONSULTA LAS PRUEBAS
Las fuentes
- Backblaze open-sources Reed-Solomon erasure coding source code Backblaze · backblaze.com ·
- Erasure coding OpenStack Wiki · wiki.openstack.org