twitterの遅延を肴にやんややんや
拝啓、会話などなしにソースコードの内側に潜って考えが読み取れる不思議な夜*1をみなさまいかがお過ごしでしょうか。
おとといの夜にtwitterが遅延していたのだけど、まるでよっぱらったオヤジが野球中継をみながら監督の采配にいちゃもんつけて俺ならこうするみたいに管を巻くがごとく、僕らはそのときの挙動からシステムの構成はこんな感じじゃないの?なんて話をしていた。*2
2009-03-04 - きしだのはてなが詳しいのだけど、自分はなんかちょっと違うんじゃない?って思ってエントリを書こうとした。書こうとしたんだけど、よくよく読むとどうも結局のところ大筋では同じことを思ってるんじゃないかという考えに至った。だったら差分だけ書けばいいや。
件のエントリでは書いてないのだけど*3僕はDBサーバは分散していると考えていた。いくつかの並列なDBサーバがあってユーザ毎に振り分けられているような感じ。このユーザの発言が格納されるDBに対して、メッセージキュー*4を通したあとのユーザ別タイムラインは、ある種のキャッシュのようなものでユーザ発言を分散して格納してるマスターのDBとは別のDBだと考えていた。
遅延しているタイムラインは、発言者によっては比較的早くタイムラインに反映されるが、タイムラインへの反映が非常に遅れる別の発言者もいた。この発言者単位でばらばらにモザイク状にタイムラインに反映がされるようなシステム構造はどういうものだろう?というのを考えていたわけ。
追記
そういえば以前、id:nipotanがタイムラインの抜けが激しい原因がなんとなくわかった - nipottern - はてなグループ::ついったー部でタイムラインの抜けが発生するのが時計の狂ったサーバが追加されたせいではないかという考察をだしてましたね。