1

多数の同時ユーザーが予想されるプロジェクトでは、接続ユーザー (セッション) ごとに名前付きキャッシュを使用するか、すべてのセッション状態に対して 1 つの大きな名前付きキャッシュを使用するかを選択できます。データをセッションにアタッチするための柔軟なメカニズムが必要なため、1 つの大きなキャッシュを使用するのはより複雑になりますが、パフォーマンスは向上する可能性があります。セッションごとに一意の名前付きキャッシュを使用する主な理由は、名前付きキャッシュを破棄するだけで、それに関連するすべてのデータを破棄できるという単純さです。これはメモリ内でのみ実行されることが予想され、アクセス レートは非常に低くなります。

1 つの大きなキャッシュを使用すると、どれだけパフォーマンスが向上しますか? Coherenceを使用して多数の名前付きキャッシュ・インスタンスを使用することは「悪い習慣」とみなされますか? つまり、Coherence で新しい名前付きキャッシュを割り当てるには、どのくらいのオーバーヘッドがかかるのでしょうか?

4

2 に答える 2

2

一般に、NamedCachesに関連する最大のオーバーヘッドは、統計を追跡するためのMBeanの作成です。これらのMBeanのレプリケーションは、望ましいよりも多くのネットワーク帯域幅を消費する可能性があります。また、JConsoleを開いて数百または数千のキャッシュMBeanを表示するのも扱いにくいでしょう。

ユーザーに関連するデータを格納するために複数のキャッシュエントリを使用する必要がある場合は、キーの関連付けを使用してこれを実装します。このアプローチを使用すると、キャッシュエントリの識別子とともにユーザーIDを含む複合キーを作成できます。このアプローチでは、特定のユーザーのすべてのデータが同じパーティション、つまり同じストレージメンバーに存在するように強制されます。

次に、これを使用して、フィルターとエントリープロセッサーを関連するキーにターゲティングできます。これには、ユーザーのセッションの有効期限が切れたときにキャッシュエントリーを削除するエントリープロセッサーが含まれます。これは、クラスター全体がキャッシュを破棄する要求に応答する必要がなく、ユーザーの要求に応答するために1つのキャッシュサーバーのみを必要とするため、はるかに効率的です。

これらのリンクから始めることができます。

http://docs.oracle.com/cd/E24290_01/coh.371/e22837/api_dataaffinity.htm

http://blackbeanbag.net/wp/2010/06/06/coherence-key-howto/

于 2013-02-27T16:13:06.950 に答える
0

CoherenceWebを使用しない理由

CoherenceWeb はまさにこの目的のためのものであり、ユーザー/メンバーのセッション データを維持するために使用されます。

CoherenceWebでは、1つのキャッシュを使用してすべてのユーザーのセッション・データを維持し、メンバーごとに1つのエントリを保持します。

于 2013-02-27T02:07:02.153 に答える