wikipediaの分散処理をちらっと見ていて面白かったので、メモしています。
分散コンピューティングの落とし穴
- ネットワークは信頼できる。
- レイテンシはゼロである。
- 帯域幅は無限である。
- ネットワークはセキュアである。
- ネットワーク構成は変化せず一定である。
- 管理者は1人である。
- トランスポートコストはゼロである。
- ネットワークは均質である。
分散処理を説明するときに、これらの事実に触れない or 仮定を持ちだした場合、その説明におけるパフォーマンスアピールは参考値にすらならない。参考資料どころか理解不足と一蹴して良いと思います。
このうち、ネットワーク構成が変わったり、管理者をまとめられるのがHadoopなので、Hadoopが管理してくれる範囲についてはある意味かもしれませんが。
分散処理をするまえに、そのマシンのスペックアップしたほうがコストパフォマンスが良い事のほうが多いです。1+1=2にならないんで、そういう面倒なところは、IntelがCPUでやってくれたり、SSDでやってくれてたり、MySQLがマスタスレーブでやってくれてたり、そういうことなんだと思います。
なにがボトルネックになっている。なぜ分散処理をしたいのかを考えないと痛い目にあうと思います。
実際に痛い目にあったので、この落とし穴一覧を見ると苦い思い出が蘇ります。。。。