Wakameの話ではなくisonoについての話

この記事はWakame Users Group Advent Calendar 2013の12/13分です。

12/12の記事はこちらです。

ご存知な方々もそうでない方々もはじめまして。

2年ほど前にWakame-vdcと大いにまみれさせていただいた、平田と申します。

その際にやったことは↓。

で、今日はWakame-vdc内で使ってるisonoの話をちょっと書いてみます。

詳しい中身は↓を。

https://github.com/axsh/isono

何をするためのものか

AMQP/EventMachineといったあたりが依存パッケージとして入っている、という点でピンとくる人もいるかもですが。

Wakame-vdc内部で行われている、様々なメッセージング処理の際(内部通信をつかさどる、という書き方のほうがいいかもしれません)に登場します。

使い方もシンプルで、

https://github.com/axsh/wakame-vdc/tree/master/dcmgr/bin

それぞれ必要に応じてload_moduleで呼び出す、といった感じ。

話戻って、2年前

当時Wakame-vdcを使って空恐ろしい数のインスタンスを立てては落とし、立てては落とし。

その年のWakameTechで「日本で一番Wakame-vdcインスタンスを立てたかも」というよく分からない肩書きで参加させていただいたのですが。

立てては落としの中で「なぜかhvaが落ちる」という現象がありまして。

当時いろいろ調べていた中で、coredumpから追いかけた際に頻繁に登場するのがisonoさんでした。

調べた結果

で、実際のところisonoではなく、その先のEventMachineとかに当時問題が。

gavage collectionが実行されるタイミングで、状態によってはたまに落ちる、という問題をはらんでおりまして。

最終的にはRubyのバージョンを1.8.7から1.9.3にすることで解決したのですが、これを追いかける経緯でよくisonoのコードを読んだりしていたのです。

「うぁーまたisonoかー」とか何度か叫んだこともありますが、isonoは何も問題なかったという。

※ いやまあisono起因だとは思っていなかったんですが、何度も目にすると、ですね。。。

某nakajima君風に言うなら「ごめんよisonoー」といったところでしょうか。

というわけで

とりとめのない昔話と、普段あまり話題に挙がってこないけどすごく大事なisonoの話でした。