6/17 Erlang分散システム勉強会 感想
Erlang 分散システム勉強会行ってきました。
遅刻したけど、最初に自己紹介してたらしく、はじめから聞けたみたい。
http://teahut.sakura.ne.jp/b/2008-06-02-1.html
ejabberd
メッセージングサービス
死活監視
サーバは相互に通信して、お互いの死活を監視する。
でも、もし、通信が途絶えたら、多数決の理論で、
データに不整合が発生するのをふせぐために、更新を受け付けないようにする。
この図の場合、サーバAが、B、Cと通信取れなくなったら、
サーバAは自ら死亡して、データ不整合を防ぐ。
良い仕組みだと思いました。
リモートシェルを抜けるときにq().
「リモートで接続時に、q().コマンドを実行すると、そのサーバが死亡する。」
このトラップはひどい。
Erlang使いは、シェルを抜けるには、q().する、と教育されているので、
これでは誰でも引っかかってしまう。
シェルを抜けるには、q().ではなく、Ctrl-Cで抜けろ、と。
プログラムを自分自身で置き換える
beamファイルを配置して、l(File)で、プログラムをノンストップで置き換えられる。
へーへーへー。
本には載っているが、実際にそんな方法が使われることがあるとは。
CouchDB
ドキュメント指向DB。6635行。
スキーマレスで、好きなデータを自由に出し入れできる。
でも、結局、アプリケーションを作るには、どういうデータを入れるか、少しは考える必要があるよね。
データはファイルで持つ。小さなアプリを作る場合に使ってもいいかも。面白い。
Tokyo Tyrant
mixiの最終ログイン時刻管理DBで使用しているらしい。
最終ログイン時刻の記録に対する、mixiのこだわりが聞けた。
決して、
「最終ログイン日時なんて、データ飛んでもいいよね」
とか、
「データ不整合が発生するかもしれないけど、あんまり正確じゃなくてもいいじゃん。どうせ、最終ログイン時刻だし。」
とか、そういう感じの話は聞いていない。
固定長DB
使い道は限定されるけど、早い・・!!
mochiweb
ソースが読みやすいから、勉強するなら向いているそうな。
Web インターフェイスをもつアプリを作るのが簡単とか。