うーん。もう7月半ばですよ。 とにかくどうでも良い事を書こう。
日曜はほぼダウン。 地震で一回起きたのだが、何か倒れた音がしたなぁと思いつつも放っといてすぐ寝る。
起きたら結構頭が痛い。
mozshot の話。
ruby-gnome2 のアップデートのおかげで(?)スクリーンショットデーモンの メモリリークが解決して刺さらなくなったと喜んでいたら、 今度はtuplespace を提供しているだけのプロセスが耐えられなくなってきた。
実消費メモリが段々増えて行き、300M位になると応答が猛烈に遅くなる。 定期的に強制的に GC をかけるスレッドを作ってみたけど変わらず。
そもそも増えるのが妙と言えば妙なのだけども。 スペース中のタプルの生存期間は(普通に処理が進んでいれば)最長でも3分くらい。 処理されなくても期限が設定してあるので、そのうち消えてゆくはず。 一応数としては800近くになったりすることはあるけども、 中身の大半は小さなリクエストである事を考えると、これで300〜400Mに達する と言うのはちょっと変だ。
まあしかし何というか、そろそろどう考えても限界。 むしろ1台で捌いているのに拍手。
cgi は一定時間応答がなかったら自力で諦める様にする。 TupleSpace#take に第2引数を指定しても、 ソケットからデータが何も帰ってこない時はタイムアウトしてくれない。
これのせいでリクエストが溜りすぎてapacheが無応答になっていた。
Rinda は確かに 手軽に分散環境を作ることが出来る。 でも中央にTupleSpaceが一つあるだけの構造だと、 当然そこが死んだり耐え切れなくなると終わってしまう。
各ノードが一つずつスペースを持って、 中身のタプルを交換するP2Pな仕組みを作るしかない。 丁度良いことに mozshot の場合、各リクエストの戻りを保証する必要がない (どこかのノードのクラッシュに巻き込まれ藻屑と消えても構わない) ので割りと作りやすそうだ。
面白そうだから是非やろう……と思いつつ手が付かないでそのまま。
ずいぶん前に持ち運び可能なコンパクトスピーカーを探していた時に 思わず買ってしまったのだけど、あんまり使わないまま現在に至る。 うーん勿体ない。
ちなみに鳴らしてみると、確かにこの値段のスピーカーにとしては 信じられない様な解像度を誇る。ボーカルとかの中音域は非常に綺麗だ。 ただ、低音は出ない。まあ、この大きさのユニットで重低音出すのは無理なのだろう。 例えばクラシックをかけると、コントラバスやティンパニー辺りの響きが 殆んどすっぽ抜けて聞こえる(鳴っている事は分かるけど)。
ちなみに最初の印象は「イベント会場のアナウンスに向いてるなぁ」 とかしょうもないものだった。持ち運び用の箱もあるしね。
キリストの
父よ、彼らをお赦しください。彼らは何をしているのか分からずにいるのです。
とハンロンの剃刀
Never attribute to malice that which can be adequately explained by stupidity.
[Hanlon's razor (Wikipedia)より引用]
は似てると思う?
まあどちらでも良いのだけど、 stupidity を "無能" と訳すのは何か変な気がする。