2

Infinispan JPA キャッシュ ローダーを実装するにはどうすればよいですか?infinispan API で実装するパターンまたは方法はありますか?

4

1 に答える 1

2

Infinispan の既存の CacheLoader 実装のほとんどは、データがストレージを必要とするだけであると想定しており、盲目的にバイトの配列と見なしています。Infinispan の統合 API は、「store(Key,Value)」または「load(Key)」以外のコンテキストの多くを公開しません。少し単純化しすぎていますが、それが核心です。

LuceneCacheLoaderである 1 つの例外があります。これは、Infinispanの Lucene Directory と組み合わせてのみ動作するように設計されています。

  • どのタイプが期待されるかを知っています
  • ディレクトリの既知のニーズ (アクセス パターンなど) を活用します。

ソースを見てインスピレーションを得てください。読み込みのみを実装したことに注意してください (これは CacheLoader です)。

Infinispan を使用してアプリケーションと CacheLoader の両方を制御する場合は、これらの詳細も利用できます。

トリッキーな側面:

  • 同じトランザクションでも複数のキーを書き込んでいる間は、CacheLoader ロジックのスコープ内で一度に 1 つのエントリにアクセスできます -> 関係をマッピングするのが難しい: 一度に 1 つのエンティティを処理し、「接続を復元する」必要があります
  • 後書きを使用すると、順不同のエントリを受け取る可能性があります -> 参照整合性を処理する方法がわからない
  • write behindを使用すると、同じトランザクション コンテキストを使用できなくなります -> 許容できるでしょうか?

これらを考慮して、あなたはそれを書くことができると確信しています。どのように簡単ですか?それはあなたのアプリに依存します。

汎用ソリューションが機能するかどうかはわかりません。それが可能であることがわかった場合は、プロジェクトへの素晴らしい追加になるので、貢献してください。

于 2012-10-06T17:21:22.260 に答える