Yahoo!のS4

Yahoo! LABSの「Project: Real-Time MapReduce」を読みました。

Yahoo! LabsはS4と呼ばれる、リアルタイムのMapReduceフレームワークを構築しました。これにより、突発的な事件などによって刻々と変化するユーザの興味にリアルタイムで応えられるようになったそうです。

ブログによると、発生した入力データを処理するコンピュータをintelligentlyに割り振る方法がS4のキーテクノロジな雰囲気です。

続いて S4 OverView にざっと目を通しました。
アーキテクチャはActorモデルに似ていると言っています。

Processing Element(PE)のインスタンスがcount、aggregate、joinなどの機能を持っていて、それらが「イベント」を処理し、ときにイベントを新たに作り出しながら計算を進めていく。

イベントの内容によって新たにPEのインスタンスを作ることもあるそうで、そのインスタンスをどのマシンに作るのか、というあたりがキモなように思えます。もちろん、分散処理においては「イベント」の粒度も重要でしょう。

いずれこのあたりの詳細も調べてみたいものです。