第2回 Erlang 分散システム勉強会 に参加させて頂きました
勉強会ってぇのは初めての参加だったのですが、良いものですね!
普段よく拝見させて頂いている blog オーナーの方々とお会いする事が出来、ヒジョーに刺激的でした。
懇親会でもどなたかがおっしゃってましたが、 Erlang の勉強会というよりは、分散システムに重きを置いた勉強会でしたね。
Process Design and Polymorphism: Lessons Learnt from Development of Kai |資料
たけまるさんによる発表。
パフォーマンスを上げるために、どのような処理を spawn すべきか、すべきではないのかというお話がとても参考になりました。
- spawn しなきゃだめ
- 外部から呼ばれるモジュール
- spawn する必要は無い
- Stateless なモジュール
- spawn した方が良い
- Stateful なモジュール
- ただし、プロセスを生成する場合には、State の一貫性を保つ為に、 1 プロセスで行った方が良い。また、「待ち状態」を防ぐために、そのプロセスが更に別のプロセスを呼び出すことは避けた方が良い。
また、Java で言うところの、interface や abstract class を Erlang で実装してみるというアイディアもおもしろかったです。
詳しくは、スライドで!
Logical Clocks | 資料
id:ita-wasa (a.k.a. shino) さんによる発表。
分散システムの中では、並列イベントを一意に順序付けられないよ。じゃあ、どうやってそれを解決しましょうか。というお話。
,. -‐'''''""¨¨¨ヽ (.___,,,... -ァァフ| あ…ありのまま 今 起こった事を話すぜ! |i i| }! }} //| |l、{ j} /,,ィ//| 『おれは Erlang 勉強会に参加したと i|:!ヾ、_ノ/ u {:}//ヘ 思ったらいつのまにか特殊相対性理論の講義が始まった』 |リ u' } ,ノ _,!V,ハ | /´fト、_{ル{,ィ'eラ , タ人 な… 何を言ってるのか わからねーと思うが /' ヾ|宀| {´,)⌒`/ |<ヽトiゝ おれも何をされたのかわからなかった ,゙ / )ヽ iLレ u' | | ヾlトハ〉 |/_/ ハ !ニ⊇ '/:} V:::::ヽ 頭がどうにかなりそうだった… // 二二二7'T'' /u' __ /:::::::/`ヽ /'´r -―一ァ‐゙T´ '"´ /::::/-‐ \ 分散システムだとか時計合わせだとか / // 广¨´ /' /:::::/´ ̄`ヽ ⌒ヽ そんなチャチなもんじゃあ 断じてねえ ノ ' / ノ:::::`ー-、___/:::::// ヽ } _/`丶 /:::::::::::::::::::::::::: ̄`ー-{:::... イ もっと恐ろしいものの片鱗を味わったぜ…
出だしから特殊相対性理論の話しが出てきて、おいてけぼりにされそうでしたが、
肝心の lamport clock と vector clock のお話しはとても丁寧にして頂き何とか理解できました。
以前はよく分からなかった、この辺りの資料も分かるようになったよ! 最高!
Ermlia: Erlang implementation of Kademlia |資料
id:cooldaemon さんによる DHT アルゴリズムの一つである Kademlia についての発表。
- Kademlia の良いところ
- churn 耐性がある (ノードの参加・離脱が容易)
DHT の知識が乏しく、殆ど理解できませんでした。予習して行けば良かった。。すいませんすいません。。
Comet on mochiweb |資料
id:Voluntas さんによる mochiweb のお話し。
今回の勉強会の中で唯一デモがあり、また身近な web サーバのお話しということで、とても楽しかったです。
あとでやる → mochiweb のソースを追ってみる。