イレイジャーコーディング (Erasure Coding)
イレイジャーコーディングとは、データを分割・拡張し、冗長な情報を加えて符号化することで、複数の場所に保存する手法です。これにより、一部の断片が失われても、断片の一部だけから元のデータを復元できます。
重要な理由
データの完全なコピーを複数の場所に保存する方法はシンプルですが、コピーを1つ増やすたびに同じ容量が丸ごと必要になるため、コストがかかります。イレイジャーコーディングははるかに少ない容量で同等の耐障害性を実現できるため、データセンターやクラウドストレージ、そしてファイルの断片を独立した運用者に分散させる分散型ストレージネットワークで使われています。一部のブロックチェーンのスケーリング設計も、データ可用性サンプリングのためにこの手法を利用しています。ブロックデータに冗長性を持たせて拡張することで、ライトノードはランダムに選んだ少数の断片をダウンロードするだけで、データが公開されたことを確認できます。その代償として、データの符号化と復元に余分な計算が必要になり、失われた断片を修復する際には余分なネットワーク通信も発生します。
具体例
リード・ソロモン符号を使って、ファイルを4つのデータ断片に分割し、そこから2つの追加のパリティ断片を計算します。6つの断片は6台の異なるサーバーに保存され、そのうち任意の4つがあればファイルを復元できます。このファイルは、元のサイズの1.5倍の容量で任意の2台のサーバーの喪失に耐えられます。一方、2台の障害に耐えるために完全なコピーを3つ保持すると、3倍の容量が必要になります。