2016-04-28 6 views

答えて

1

古いバージョンのcache2kには、永続化サポートが組み込まれていましたが、これは機能していましたが、本番用として完全に信頼できるレベルにはなりませんでした。

実際の問題はclear()操作でしたが、これはかなり複雑な実装でした。データの削除に時間がかかるストレージの実装に関係なく、クリアは速くなければなりません。だから私の考えはライトバックスキームに切り替えることです。ここでは、ストレージが再び利用可能になったときに操作がキューに入れられ、実行されます。部分的な書き戻しスキームを実装するだけで、明確になっています。

私は機能セットから永続性を落としましたが、私は安定版APIを備えた1.0バージョンは不要ですすでに多くの便利な機能があります。

cache2kホームページのロードマップからわかるように、現在のプランでは、バルクと非同期の機能を追加してストレージに戻しています。非同期機能が完了した後は、おそらくストレージインターフェイスが完全に異なっている必要があります。

現在のcache2k実装の中には、ストレージがフックされるインターフェースがまだあるので、すでに達成されているものを完全に放棄するわけではありません。 flush()purge()はまだまだ残っています。ですから、混乱を避けるために、1.0版の2つのメソッドを削除することをお勧めします。

ところで、私はあなたの質問をGuavaで見たので、cache2kはCacheLoaderの対応部分であるCacheWriterをサポートしています。キャッシュローダーとライターでは、自分でストレージに読み書きすることはできますが、キャッシュ自体のストレージサポートと同じではありません。たとえばcache.contains(...)はストレージをチェックしますが、少なくともJSR107と私が知っているすべてのキャッシュ実装ではキャッシュローダーをチェックしません。

+0

これは明らかです。ありがとう! – Dims

関連する問題