第四回 Erlang 分散システム勉強会で発表してきたよ - Tokyo Erlang Workshop #4

f:id:kuenishi:20100124130341j:image:right:w300
第四回 Erlang 分散システム勉強会の前説本番に参加して、いろいろ勉強し、私もそこでYatceの話をしてきました。今回から幹事が id:cooldaemon になりましたが、すばらしい運営でした。幹事力は大切な社会人スキルだと思います(私にはとてもできない)。私がいろいろな話を聴けたり、公衆の面前で話をできたりするのも cooldaemonさんのおかげです。感謝感謝です。(写真は記事の内容とはほとんど関係ありません)

前説

「分散ストレージに使えるかもしれないアルゴリズム(たけまる)」この発表が一番分からなかった。資料が事前公開されたし、個人的に参考資料ももらっていたし、発表も駆け足なりに割と丁寧に説明されていたし、懇親会でもたけまるさんを捕まえて訊いたのだけど、あまり理解できていなくて、実装できる気がしない。あのDynamoの発表を押さえてSOSP'07の分散システムのセッションでBest Paperを取った発表で、これはどうしても理解したいので、復習した後で論文読む(理解が遅くてすいません><)。今公式ページを見るとHPの中の人の発表、ということは特許がきっと取られていて、HP-UX辺りか、HPの自前クラウドに入ってたり…ということまで考えるようになってしまいました。BDDとZDDの話はシンプルかつとても効果があるみたいなので、これも要復習。

id:higeponさんのSkipGraphの話は、実用化を意識してるところがいいなーと思った。ふつうだったら1つのkey-valueに1 processを割り当てるなんて絶対しない(たしか1プロセス当たり数百wordくらい消費されるはず)のに、とりあえず動かすためと割り切っているようだった。こうすることで実装が極端にシンプルになるので、Concurrent Joinのような複雑なアルゴリズム(バカが実装すると複数ノードで2PCすることになる)もサッサと実装できてしまう。key-valueに対するロックなんかもメッセージングというかRPCで簡単に済ませられるようになる(と思う)。速攻でmioをwatchした。さらに、ストレージ作るだけじゃなくてサンプルアプリまでサクっと作ってしまっていて、掲示板のCSSのカッコ良さに引いた。SkipGraphで耐障害性とかレプリケーションどうするんだろ…と思って懇親会で訊こうと思っていたのにすっかり忘れてしまっていた。無念。
あとは「ユニットテストを自動化しなくていいのは中学生まで」という言葉がイタタタ…!!という感じで勉強になりました。


私の話はこんな感じです。

いくつか補足しようと思っていたのだけど、Linked-in Driverが一番よい根拠はもうひとつあって、ERTSのFile IOやNet IOの裏側にいるprim_inetとprim_fileとがLinked-in Driverで実装されているというのは重大な事実…というと大袈裟ですが、I/OにはLinked-in Driver、CPU intensiveなタスクにはNIFというスタイルが確立していくのでは…と思います。あとなんかUstされてた

@sleepy_yoshi の「ゆとりがErlangを始めるようです」はよいオチになっていて、話が固くなりがちなところに一服の清涼剤が入った気分でした。彼がゆとりかっていうと全然そんなことねー、ある意味ゆとりってレベルじゃねーぞって思うんですけどね*1

本番が始まる前に、ひげぽんさんや、alfyukioさん、jan021213さん*2などと初会話しました。atnd見ると id:vostok92 さんの名前があったのでどうしても話したかったのですが、今日見るとキャンセルされていたみたいで残念です。

本番

id:camlspotter さんと初会話。いろいろ教えてもらう。ErlangOCamlの使われ方の違いがとても参考になった。dialyzerは結局型推論には勝てないとかとか。結局One shit fits allなんてことはなくて、使い方に応じて言語仕様から選ばないといけないんだなとか思いました。

所感

本当はErlang Hackathonがあったりして、休日に時間かけてダラダラするとよいのだろうけど、既婚者言語なので当然子持ちの人が多く、集まらないんだろなぁと思いました。こんな風に平日に集まってサクっとやり切ってしまうのも、密度が高くて非常によいなと思いました。
とても楽しかったです。みなさん、ありがとうございました!

*1:とても優秀みたいなので彼がゆとりなら俺はなんなんだとか思うと悲しくなってしまいますね

*2:ipnutsの人だった!ちょっと失礼な態度をとってしまったことを後悔しています。すいませんでした