Nov 5, 2011

スケーラビリティ自体に魅せられちゃいけない

自戒を込めた日記.

IT システムというのは何らかの問題を解決するために存在している.しかし,技術的な面白さから,システム自体にとりつかれていしまう人々が存在する.多くの場合,それは "hacker" と呼ばれている人々に多いように思う.それ自体はすばらしいことだ…仕事にさえしなければ.

仕事の場合,ユーザはITシステムを問題を解決するために導入している.中身がどうなっているかは知ったこっちゃない.言い換えると,ユーザがシステムにお金を払ってくれるのは「実際にある問題を解決しているから」である.「決して技術的に楽しそうだから」ではない.

さて,ここ1-2年で NoSQL という技術が流行している.RDBMSの提供しているセマンティクスのうち一部を弱めて,RDBMS では得ることが難しかった利点を得られる技術と心得ている.例えば,Cassandra は一貫性を犠牲として可用性を高め,さらに数百インスタンスまで書き込み性能がスケールするという.ここで一つ考えてほしいのは,そんなスケーラビリティが必要なサービスがどの程度存在するか,である.

最も分かりやすい例は,MapReduce 2.0 である.彼らは次世代 Hadoop で1万台のスケーラビリティを目標としているが,それを利用するユーザはどこに居るのだろう.恐らく,そのユーザは彼ら自身以外には存在しないのではないだろうか.技術的には面白いし,楽しいかもしれないが,その恩恵を預かるユーザは限りなく少ないであろう.

言い換えると,次世代 Hadoop (のうち,特にスケーラビリティの部分)は,プロダクトとしてのインパクトはさほど大きくない,むしろ小さいのではないだろうか.
  • 何のためのスケーラビリティなのか.
  • 何のための可用性なのか.
  • 何のための機能なのか.
研究をする上で,これらを自身に問い続けなければならない.さもなければ,使えない研究成果が世に出てしまうだろう.これを心に留めて,研究をしていきたいと思う.

P.S システムの話を主にまとめてみたが,これはエンドユーザ向けのサービスにもいえることだと思う.つまり,「これまでのサービスで解決されていなかった問題を新しいサービスで解く」というものでなければユーザはつかないだろう,ということだ.

No comments:

Post a Comment