データ処理を分散させるMapReduce設計パターン(source)が2004年にGoogleによって導入され、それにはC++の実装がついてきた。今では、Adam Pisoni氏(サイト・英語)がSkynet(サイト・英語)という名称でリリースした新しいRubyでの実装版が利用可能だ。 Skynetは順応性があり、自動アップグレード機能付きで耐障害性の完全分散型システムで、単一障害点は皆無です。 GoogleのデザインペーパーとSkynetには著しく重要な相違点が2つある。 Skynetが生コードをワーカーに送れないこと。 Skynetはピア・リカバリシステムを利用しており、ワーカーがお互いを監視していること(サイト・英語)。 理由が何であれワーカーが故障する、あるいは機能しなくなると、別のワーカーが気付いて、そのタスクを引き継ぎます。また、Skynetには特別な「マスター」サーバは存在せ
![Skynet−新しいRubyのMapReduce](https://cdn-ak-scissors.b.st-hatena.com/image/square/1dea079f3c8eee49f636638a061b722d42b294d5/height=288;version=1;width=512/https%3A%2F%2Fcdn.infoq.com%2Fstatics_s1_20240521072209%2Fstyles%2Fstatic%2Fimages%2Flogo%2Flogo-big.jpg)