OSCacheのディスクキャッシュに要注意!

少し前にOSCache(オープンソースJavaキャッシュライブラリ)のバグで悩まされたことがあったので書いておきます。たぶん以下のバグレポートが該当のバグだと思います。
http://jira.opensymphony.com/browse/CACHE-309
OSCacheはメモリキャッシュとディスクキャッシュを選択することができるのですが(併用することもできます)、ディスクキャッシュを使用する場合、一度も読み込まれていないキャッシュはflushGroup()メソッドを呼んでも削除されないという問題がありました。OSCacheはディスクキャッシュを行う場合でもキーだけはメモリ上に保持しています。ただし、一度もディスクから読み込んでいないエントリについてはキー自体がメモリ上に存在しない状態になっています。flushGroup()メソッドはメモリ上にキーが存在するエントリだけを削除するため、アプリケーションの起動後に一度もアクセスされていないエントリが削除されないという状況が起こりうるわけです。
trunkではすでに修正されているようですが、修正されたバージョンはまだリリースされていないようです。上記のバグレポートのコメントには以下の場所にナイトリービルドがあるとのことです。
http://ivyrep.opensymphony.com/opensymphony/oscache/
OSCacheは結構大規模なサイトに実戦投入したのですが、システムの運用開始後に設定ミスやら、このバグやら、いくつか問題が出てしまい、若干冷や汗モノでした…。とはいえ、実戦で使えるという感触とそれだけのノウハウは得ることができたので、また機会があれば使ってみようと思います。