Scalaの可用性

最近、経済や哲学の話題が続いてきた感じなので、ちょっと気分転換に情報システムの話題でも。
Googleに代表されるようにウェブサービスでは大量のデータをリーズナブルなコストで処理していますが、「幻影随想: 次世代高速シーケンサーの解析コストとか日本の出遅れ具合とか」を読んでいたら、バイオインフォマティクスの世界でも同じ問題に直面しているようで。大量なデータを処理するための大規模システムのアーキテクチャとしては、当面はグリッドコンピューティングが主流となるのはほぼ確定した感じですが、その実現方法についてときどき見たり考えたりしています。OpenMPIみたいにアプリレベルで明示的に記述するか、MapReduceみたいにフレームワークで問題の単純化を図るか、Erlang、Clean、ScalaFortressなどのように言語レベルで実現するか、GemStoneやTerracottaのように仮想マシンで隠蔽するか、いろんなやり方が有るかなと。
言語レベルで考えた場合、Javaのライブラリ群が活用できることからScalaが気にはなっていました。ただ、ErlangでOTPで実現できる程度の可用性を実現できるんだろうかと疑問で、自分で処理しなければいけないとしたら面倒だとあまり深入りするのは避けていました。そんな中、「私がScalaを選んだ理由:CodeZine」を読んだことがきっかけで再度関心を持つことに。ScalaJVM上で動くので、オープンソースJVMクラスタリングソフトウェアであるTerracottaが使えないかと前から思っていたんですが、調べてみると実際あるんですね。
Jonas Bonér » Blog Archive » Clustering Scala Actors with Terracotta
まだざっとしか読んでいないのですが、Terracotta上でScalaのActorを動かすようにしたようですね。これでErlang OTPレベルの可用性は実現できるかな。まだScala自体もかじり始めたばかりなので、もう少し調べてみようと思っています。