夢とガラクタの集積場

落ちこぼれ三流エンジニアである管理人の夢想=『夢』と、潰えた夢=『ガラクタ』の集積場です。

Twitter Stormの特徴は?

こんばんは。

1か月書かずに過ごしてしまいましたが、
Twitter Stormをとりあえず確認して、動かしてみる企画再開です。

まず、Twitter Storm Wikiから、
Twitter Stormの性質について確認します。

まず、Twitter StormはCEP(Complex Event Processing)という物のうちの一つです。
他のOSSプロダクト/商用プロダクトとしては下記のようなものがあります。

  • Yahoo S4(OSS
  • Esper(OSS
  • JBoss Drools Fusion(OSS
  • Jubatus(OSS
  • Oracle CEP(商用)
  • IBM Streams(商用)
  • Sybase CEP(商用?)
  • HStreaming(商用?)
  • StreamBase(商用?)

ちなみに、Twitter Stormの性質として書かれているもの自体はCEPとしては
極々ポピュラーなものであり、特に特別こう、というものはありませんでした。

そのため、「何が他のプロダクトと違うのかな?」と確認したところ、
やはりありました。

Guarantees no data loss: 
A realtime system must have strong guarantees about data being successfully processed. 
A system that drops data has a very limited set of use cases. 
Storm guarantees that every message will be processed, 
and this is in direct contrast with other systems like S4. 

どうやら、『メッセージの処理が保証される』事が大きな特徴となっているようです。

実際、StormをTwitterの内部で使用しているとした場合、CEPと言いながらも
飛び交うデータはツイートですからね。
他のCEPのように「大量にある計測データのうちの一つ」とは扱えないようです。

これはYahoo S4と比べてかなり大きな差分になりますね。

大量の検索クエリの中から傾向抽出を行うために使用されるYahoo S4
大量イベント処理でありながら、メッセージの処理を保証する必要があるTwitter Storm

・・・といった感じでしょうか。

当然、保証した結果何かしらのデメリットを背負っているんでしょうけど、
適用先アプリケーションによってプラットフォームの特徴が変わってくるのは面白いですね。