Cache
apidocでは、purge()
またはflush()
のようないくつかの方法は、設定された持続性ストレージに依存して動作すると言われています。cache2kに永続ストレージを定義する方法は?
残念ながら、私は見つけることができません、どのように構成するのですか?
本当に可能ですか?
Cache
apidocでは、purge()
またはflush()
のようないくつかの方法は、設定された持続性ストレージに依存して動作すると言われています。cache2kに永続ストレージを定義する方法は?
残念ながら、私は見つけることができません、どのように構成するのですか?
本当に可能ですか?
古いバージョンのcache2kには、永続化サポートが組み込まれていましたが、これは機能していましたが、本番用として完全に信頼できるレベルにはなりませんでした。
実際の問題はclear()
操作でしたが、これはかなり複雑な実装でした。データの削除に時間がかかるストレージの実装に関係なく、クリアは速くなければなりません。だから私の考えはライトバックスキームに切り替えることです。ここでは、ストレージが再び利用可能になったときに操作がキューに入れられ、実行されます。部分的な書き戻しスキームを実装するだけで、明確になっています。
私は機能セットから永続性を落としましたが、私は安定版APIを備えた1.0バージョンは不要ですすでに多くの便利な機能があります。
cache2kホームページのロードマップからわかるように、現在のプランでは、バルクと非同期の機能を追加してストレージに戻しています。非同期機能が完了した後は、おそらくストレージインターフェイスが完全に異なっている必要があります。
現在のcache2k実装の中には、ストレージがフックされるインターフェースがまだあるので、すでに達成されているものを完全に放棄するわけではありません。 flush()
とpurge()
はまだまだ残っています。ですから、混乱を避けるために、1.0版の2つのメソッドを削除することをお勧めします。
ところで、私はあなたの質問をGuavaで見たので、cache2kはCacheLoader
の対応部分であるCacheWriter
をサポートしています。キャッシュローダーとライターでは、自分でストレージに読み書きすることはできますが、キャッシュ自体のストレージサポートと同じではありません。たとえばcache.contains(...)
はストレージをチェックしますが、少なくともJSR107と私が知っているすべてのキャッシュ実装ではキャッシュローダーをチェックしません。
これは明らかです。ありがとう! – Dims