エラー忘却型コンピューティング(Failure-oblivious computing)とは,米Massachusetts Institute of TechnologyのMartin Rinard氏らが2004年に提唱した概念。メモリーに何らかのエラーが発生しても,プログラムの処理を停止せず,エラーを無視して処理を継続する考え方だ。

 例えば,データをキーと値(Value)の対として扱うハッシュテーブルのような手法を使用する場合に,あるキーに対応する値が2個存在するという「エラー」があると,通常のプログラムはそこで処理を停止する。それに対してエラー忘却型コンピューティングでは,そのエラーを「無かったこと」にして(忘却して)処理を進める。

 現在の情報システムは,ACID,原子性(Atomicity),一貫性(Consistency),独立性(Isolation),耐久性(Durability),という特性を満たすよう開発されている。エラー忘却型コンピューティングは,ACID特性を無視するのだ。

 Googleが開発した,GFS(Google File System)やMapReduceといった大規模分散データ処理技術に特化したプロシージャ言語「Sawzall」も,エラー忘却型コンピューティングの考え方を取り入れている。Swazallでは,データのエラーが発生しても,プログラムを中止せず,「エラーがあった」というフラグを立てるだけで,処理を継続する。

 GoogleがGFSやMapReduceを使って分散処理する数百ペタ・バイト級のデータの中には,ハードウエアやソフトウエアのエラーによって,時として開発者の予想しないような無効なデータが交じる可能性がある。Sawzallでは,そのようなエラーをプログラムが無視することによって,システムの安定稼働やデータの大量処理を実現する。

 楽天技術研究所の森正弥所長は「エラー忘却型コンピューティングは,データの完全性や保全性を犠牲にしてでも,分散処理の大規模化や高速化を実現しようとする考え方だ。このような考え方を,世界で初めて大規模に実用化した点が,Googleと他社の最大の差だろう」と指摘する。