しばらく前のTwitterはしばらくやたらとクジラを表示していたような気がする(…ま、いわゆる503ってヤツですな)が、その裏でTwitterのエンジニアがどうやって、クジラを出さないようにしていったかというエントリーを発見。

ま、答えに至る過程はいろいろとあるんだけど、結局、負荷が高まった時のmemcachedに対するIOのレイテンシーが増えていることに気がついて、無駄なmemcachedへのアクセスをなくすこととその他の対策を講じることによって50%ほどのキャパシティ改善を実現したそうな。へー。

ぱっと見た感じ、無駄なデータの読み込みが原因ってことで、結論としては思ったより凡庸というか、ありがちな話ではあるけれど、ここに至る道筋が大変だったんだろうなと思う。特にTwitter級のデカさになると、データの巨大さ故に全体を把握するのがすさまじく大変だろうなー。まさに、

Unfortunately, we collected a huge amount of data and it was hard to understand.

って書いてある通りだろう(遠い目)。

でも、最近、パッと見た感じで、この辺が怪しいと思われるようなヤヤコシイ部分よりも、シンプルで大したことないと思い込んでいる部分に問題が潜んでいることが多くて困惑するので、なんだか考えさせられた。上記のTwitterの事例でいえば、普通に考えてmemcachedへのアクセスなんて高速に違いないと思うわけで、個人的には、シンプルで大したことない部分に分類してしまう(=ボトルネックなんて考えない)だろうし、関係ない部分をちびちびちいじって、ハマってしまうんだろうな。

…やっぱり、Webアプリは難しいなどと考えてしまう次第。