2010年4月16日金曜日

appengineでMapReduce。は無料の間は多分無理

グーグルといえば、appengine。
appengineといえばクラウド。
クラウドといえばMapReduce。

などという、変な3段論法があり、
appengineで頑張ってMapReduce使うぜー、
みたいな風潮がありますが。

正直、判ってねえなあ、としか思えません。
いや承知でやってるなら本人の勝手だけど。

グーグル内部のリソースを消費してもらっちゃ困る訳です。
そうならないような絶妙のサジ加減が、Quotaなのでしょう。
逆に、無料なのは、「勘弁できる負荷」だからでしょうよ。

HTTPで外部を叩くのは多分ありえません。
2秒のタイムアウトがあるので。
しかもこれを撤廃することは無いでしょう

appengineでは、taskqueue経由で、
バックグラウンドプロセスを幾つか動かせますが、
そもそもtaskqueueは「すぐ動く」ことを保証してない上に、
実行した後も、CPUタイム制限があります。DeadlineExceedですね。
実行時間の累積にも制限があります。

Mapはtaskqueueでいいでしょうけど、
Reduceは(taskqueue頼みじゃあ)、何時戻ってくるか判らんでしょう。

Reduceが3秒ぐらいで戻ってくる話なら、タスク1個で良くね?

分散しなくて処理できる分量を、わざわざ分散して、
何が楽しいんだ?的な。

仕事を増やす仕事に絶望した!

サイエンスとしては面白いでしょう。
無料Quotaの範囲内で、ある程度の実装は可能でしょう。
それで、もの凄い処理を動かせるか?っていったら困難。

「可能」と「実用」は違うだろ、って話ね。

筆者は気にしてなかったんですが、
アマゾンでもMapReduceが有るらしいんで、
どうしてもやりたければ、そっちでいいんじゃね?と思う。
http://aws.amazon.com/elasticmapreduce/