Ehcache vs OSCache

オープンソースJavaのキャッシュライブラリというとEhcacheとOSCacheが有名です。どちらも基本的な機能は似ていますが、いろいろと違いもあります。
単純に機能面で見るとEhcacheのほうがJMXモニタリングが可能だったり、トランザクションに対応していたり、RESTやSOAPでアクセスするキャッシュサーバとしての利用が可能だったり、Terracottaレプリケーションができたりなど、かなり高機能です。デコレータという仕組みで機能を追加することもできるようになっていますし、ディスクキャッシュにスプールバッファが設定できるなど性能面の配慮も行き届いている印象です。
これだけだとOSCacheの出番がなさそうですが、OSCacheはキャッシュエントリをグループ化することができるという特徴があります。1つのエントリを複数のグループに割り当てることもでき、グループ単位でキャッシュを削除することができます。これは任意のタイミングでキャッシュのクリアやリフレッシュを行う必要があるケースでは非常に便利な機能です。
実際にとあるシステムでキャッシュを使ってHTMLの断片をキャッシュするという仕組みを作りこみましたが、キャッシュの削除タイミングや粒度が複雑だったため、OSCacheのグルーピング機能がなければ要件を満たすことはできなかったのではないかと思います。ただ、OSCacheは結構やばいバグがあったりしたので、TerracottaがついているEhcacheのほうが品質面での心配は少ないかもしれません。
というわけで基本的にはEhcacheを使っていれば間違いないと思いますが、キャッシュエントリのグループピング機能が活かせそうなケースではOSCacheの利用を検討してもよいのではないでしょうか(Ehcacheでも外付けでグルーピングする仕組みを作ることは可能だと思いますが…)。