AOPによる呼び出しキャッシュについて喋ってきた

2008年11月1日のわんくま勉強会@大阪にて『AOPによるキャッシュがいいよ』というお題目でスピーカーをしてきました。
(1600GET/s来るような携帯電話向けWebアプリケーションでも満足に使えているよ、というお題目ながら、いまだ満足できないところがあって 0.1-SNAPSHOT という) S2Cachingについても売り込みらしきものをしてきました。

AOPによるキャッシュの要点は以下の通りです。

  • 呼び出し側、呼び出され側のコードをともに汚染しない (ここ一番重要)
  • キャッシュをどこにどう仕掛けるか、は外部の設定ファイル(.diconなど)で後付けで決めることができる
  • AOPによるキャッシュ実装は、柔軟性については自前の実装とくらべるとやや劣る
  • S2Cachingはキャッシュの機構を提供するのではなくて S2のAOPを利用して、ehCacheの透過的な利用を促進するものである
  • 変更が入るようなテーブル(のDao)に仕掛けるのは 最後の最後でいい。まずは毎回同じ値を返してくるところに。
  • キャッシュとは最適化作業である。Knuth先生曰く、『あまりに時期尚早な最適化は諸悪の根源である』

S2Cachingなしではボロボロですが、こいつのおかげでうちのサービスは今日も元気です。

さあ、早く分散キャッシュとか キャッシュキーの生成部分を外だしにして選択パージできるようにするとか実装して 1.0をリリースする作業に戻るんだ! > 自分