キャッシュ操作のトポロジごとの動作
NCache キャッシュ操作の実行時に異なる動作をするさまざまなキャッシュトポロジを提供します。 以下は NCache トポロジとその動作。
- ミラーキャッシュ (エンタープライズ版のみ)
- 複製されたキャッシュ
- パーティション化されたキャッシュ
- パーティション化されたレプリカキャッシュ (エンタープライズ版のみ)
- クライアントキャッシュ (エンタープライズ版のみ)
ミラートポロジ
Note
この機能はでのみ利用可能です NCache Enterprise エディション.
In ミラー トポロジでは、クライアントはアクティブノードとのみ通信しますが、パッシブノードはアクティブノードのレプリカであり、バックアップに使用されます。
一括操作はアクティブノードで実行され、アプリケーションは操作がパッシブノードに複製されるのを待ちます。
非同期操作もアクティブノードで実行されますが、制御はすぐにアプリケーションに返されるため、両方のノードで操作が実行されるのを待つことはありません。 コールバックが登録されている場合、操作の成功または失敗時にトリガーされます。
複製されたトポロジー
In 複製された トポロジでは、クライアントは一度にXNUMXつのノードに接続されます。 したがって、バルク/非同期操作は、クライアントが接続されている特定のノードに送信されます。 これらの操作はノード間で同期的に複製され、データの一貫性が確保されます。
一括操作の場合、操作はクライアントが接続されている特定のノードに送信されます。 クラスターのすべてのノードでレプリケーションが発生した後、コントロールがユーザーに返されます。
非同期操作の場合、複製が発生するのを待たずに、制御がアプリケーションにすぐに返されます。 ただし、レプリケーションが発生すると、コールバックがトリガーされてクライアントに返されます。
パーティション化されたトポロジ
In 仕切られた or パーティションレプリカ トポロジでは、クラスター全体のデータ分散を担当する分散マップが維持されます。 実行される操作の詳細に入る前に、分布マップが何であるかを理解することが重要です。 分布マップはキーと値のペア構造であり、キーはノードIDを表し、値にはそのノードに存在する(データの)バケットの情報が含まれます。 このようにして、マップ全体がキャッシュ用に生成され、サーバー側で維持されます。 NCache コーディネーターノードがマップに基づいてデータ分布を決定できるようにします。
Note
分散マップは、クラスターが完全に接続されている場合(クラスターのすべてのノードが接続されている場合)にすべてのデータを分散します。 ノードがクラスターから切断された場合、 NCache 分散マップに基づいてデータをそれ以上分割せず、次に接続されているノードにデータを送信します。
配布マップ操作からバケットが存在するノードアドレスを取得した後、宛先ノードに送信されます。 NCache 分散マップをクライアント側に保持するため、キーに対して次の操作を実行すると、操作はデータが存在するノードに直接送信されます。 これにより、データが存在するノードに操作が直接送信されるため、パフォーマンスが向上します。
分布図に従って、データ項目1-500がN1にあり、501-1000がN2にあると仮定します(ただし、データは順番に分割されず、ランダムにシャッフルされます)。 バルクアイテムに対して実行される操作では、操作はXNUMX回の呼び出しでそれぞれのノードに送信されます。 分散マップをクライアント側に配置することの主な容易さは、操作がデータ常駐ノードで直接実行されるため、パフォーマンスが向上することです。 操作が完全に実行されると、コントロールは(以降の操作のために)ユーザーに戻されます。
非同期操作の場合、書き込み操作が実行されると、操作がバックグラウンドで実行され続けている間、呼び出しはすぐに返されます。 NCache (クライアントの操作に影響を与えない)バックグラウンドでキューを維持し、データを使用して操作を追跡します。 これは、操作の実行に非常に長い時間がかかる広範なデータセットで大きな快適さを提供します。
パーティション化されたレプリカトポロジ
Note
この機能はでのみ利用可能です NCache Enterprise エディション.
In パーティションレプリカ トポロジでは、クライアント操作は最初に割り当てられたノードで実行され、次にユーザーの指定に従って同期的または非同期的にそのレプリカに複製されます。
一括操作の場合、 sync モードの場合、操作は割り当てられたノードで実行され、アプリケーションはパーティションのレプリカでレプリケーションが発生するまで待機します。 の場合 非同期 モードの場合、制御はパーティションノードで操作が実行されるとすぐにアプリケーションに戻され、非同期であるためレプリケーションを待機しません。
非同期操作の場合、指定された同期モードに関係なく、操作は割り当てられたパーティションノードに送信され、制御はすぐにユーザーに返されます。
クライアントキャッシュ
Note
この機能はでのみ利用可能です NCache Enterprise エディション.
A クライアントキャッシュ リモートクラスター化キャッシュと同期されたローカルキャッシュです。 この同期はポーリングによって行われます。クラスター化されたキャッシュが、デフォルトのポーリング間隔である1秒後にクライアントキャッシュの変更を検出すると、変更されたデータをポーリングするようにクライアントキャッシュに通知します。 それ以外の場合、デフォルトの10秒間隔の後、クライアントキャッシュは、変更されたデータがある場合はそれを提供するようにクラスター化されたキャッシュに要求します。
書き込み操作の場合、各操作は最初にクライアントキャッシュで実行され、次に内部のライトビハインドメカニズムを介してリモートキャッシュで実行されます。
一括操作の場合、クライアントキャッシュとリモートキャッシュの両方で操作が実行されると、制御はアプリケーションに返されます。 非同期操作の場合、コールバックは、操作がキャッシュで実行された後、リモートキャッシュからクライアントキャッシュに返されます。
ただし、読み取り操作の場合、キーは最初にクライアントキャッシュで検索されます。 見つからない場合、クライアントキャッシュはリモートキャッシュからキーアイテムをフェッチし、それをクライアントに返します。 これにより、データの整合性を損なうことなく、アプリケーションのパフォーマンスとスケーラビリティを最大限に高めることができます。
も参照してください
キャッシュにデータを追加する
キャッシュ内の既存のデータを更新する
既存のキャッシュデータを取得する
キャッシュからデータを削除する