1

Oracleデータベースとのキャッシュデータ同期にInfinispanを使用できるかどうかを知りたい。これが私のシナリオです。私には2つの主要なアプリケーションがあります。1つは高度な同時使用アプリで、もう1つは管理モジュールとして使用されます。同時実行性が高いため、データベース接続を減らしたいと思います(エンティティをキャッシュにロードし(読み取り/書き込み可能)、データベースを呼び出さずにこの場所から使用します)。しかし、その間、管理モジュールはデータベースを直接使用しているため、キャッシュの変更に応じてデータベースを更新したいと思います。その更新プロセス(データベースへのキャッシュ)は、アプリケーションを使用せずにエンティティレベルで処理できますか?Infinispanがこのシナリオをサポートしているかどうかを教えてください。サポートがあればアイデアを共有してください。

4

2 に答える 2

1

はい、可能です。Infinispan はこのユースケースをサポートしています。

これは単純な構成の「問題」にすぎません。使用する必要があるのは、 で適切に構成された CacheStore だけpassivation disabledです。これにより、キャッシュ (高度な同時実行アプリケーションで使用される) がデータベースと同期された状態が維持されます。

それは正確に何を引き起こしますか?

パッシベーションが無効になっている場合、要素が変更、追加、または削除されるたびに、その変更はキャッシュ ローダーを介してバックエンド ストアに永続化されます。エビクションとキャッシュのロードの間に直接的な関係はありません。エビクションを使用しない場合、永続ストアにあるものは基本的にメモリにあるもののコピーです。

ここでメモリとはキャッシュを意味します。これと他の興味深いオプションについてさらに知りたい場合は、https ://docs.jboss.org/author/display/ISPN/Cache+Loaders+and+Stores#CacheLoadersandStores-cachepassivation を参照してください。

たぶん、前述の立ち退きを検討する価値があります。無効にするか有効にするか。これは主に、並行性の高いアプリケーションによって生成される負荷に依存します。

于 2013-06-07T02:28:36.127 に答える