NCache は、スケーラビリティと高可用性を提供するパフォーマンス最適化ソリューションです。 さまざまなキャッシュ トポロジを提供し、データの一貫性と信頼性とともに線形のスケーラビリティを提供します。 これらのトポロジは、サーバー XNUMX 台の小規模なキャッシュ環境から数百のキャッシュ サーバーを備えた巨大なキャッシュ クラスターまで、さまざまなキャッシュ ニーズに対応するように設計されています。
以下は、キャッシング トポロジの特徴です。 NCache 提供しています:
複製されたキャッシュ
このトポロジーは、複数のキャッシュ サーバーでデータを複製することにより、データの信頼性を保証します。 の 複製されたキャッシュ 読み取り操作に対して非常に高速でスケーラブルです。 ただし、書き込み操作はクラスター内のすべてのサーバーと同期しているため、書き込み操作のスケーラビリティはあまり高くありません。 このトポロジは、書き込み操作よりも読み取り操作の数が多い小規模なキャッシュ環境を対象としています。 次に、レプリケート キャッシュ トポロジがどのように機能するかについての簡単な概要を示します。
レプリケートされたキャッシュ トポロジのしくみ
レプリケート キャッシュ トポロジは、高いデータ可用性を提供し、既存のキャッシュを停止することなく、動的なサーバーの追加と削除をサポートします。
パーティションおよびパーティション レプリカ トポロジとは異なり、各クライアント アプリケーションは、キャッシュ サーバーによって決定される負荷分散アルゴリズムに基づいて、XNUMX つのサーバー ノードのみに接続します。 接続されたサーバーがダウンすると、クライアント アプリケーションはリスト内の次のサーバーに接続します。
ミラー キャッシュ トポロジ
ミラーリングされたキャッシュ は、小規模なキャッシュ環境向けに設計された 2 ノードのアクティブ/パッシブ キャッシュ クラスターです。 このトポロジは、アクティブ ノードからパッシブ ノードへの非同期レプリケーション/ミラーリングを通じて、データの信頼性と可用性を提供します。
ミラーリングされたキャッシュ トポロジのしくみ
ミラー キャッシュ トポロジでは、クライアント ノードは、すべての読み取りおよび書き込み操作について、クラスター内のアクティブなサーバー ノードにのみ接続します。 アクティブなサーバー ノードがダウンした場合、クライアント アプリケーションは以前のパッシブ ノードに自動的に接続します。 このフェイルオーバーのサポートにより、ミラー キャッシュが常に稼働していることが保証されます。 このトポロジは、複数の書き込みがパッシブ サーバー ノードで BULK 操作として実行されるため、アプリケーションのパフォーマンスの向上に役立つ書き込み操作の非同期ミラーリングを提供します。
パーティション化されたキャッシュ
これは、によって提供される最速かつ最もスケーラブルなキャッシング トポロジの XNUMX つです。 NCache。 トポロジは、読み取り操作と書き込み操作の両方で同等に効率的です。 クラスターにサーバーを追加することで、線形のスケーラビリティを実現します。 以下は、パーティション化キャッシュ トポロジがどのように機能するかの概要です。
パーティション化されたキャッシュ トポロジのしくみ
パーティション キャッシュ トポロジでは、キャッシュは実行時にキャッシュ サーバーごとに 1000 つのパーティションに分割されます。 これらのパーティションは集合的に、すべてのパーティションに均等に分散された XNUMX 個のバケットを持つクラスター化されたキャッシュを作成します。 クラスタは、異なるパーティション内のバケットのマッピングを含む配布マップを作成します。 このマップにより、クライアント ノードとサーバー ノード間の意味のある通信が保証されます。
このトポロジは、すべてのクライアント アプリケーションをキャッシュ サーバーに接続することで、データの高可用性も提供します。 接続しているサーバーがダウンしてもアプリケーションが必要なデータを取得できるように、他のサーバーに要求します。
パーティション レプリカ キャッシュ トポロジ
これは、最も一般的なキャッシング トポロジです。 NCache. 線形のスケーラビリティと高いデータ信頼性という両方の長所をユーザーに提供するためです。 このトポロジは、パーティション化されたトポロジとほぼ同じくらいスケーラブルであり、同期および非同期のレプリケーション モードで有望なパフォーマンスと高いデータ可用性を提供します。 以下は、このトポロジがどのように機能するかの簡単な概要です。
パーティション レプリカ キャッシュ トポロジのしくみ
動的パーティションの作成に加えて、トポロジはこれらのパーティションの動的レプリカも異なるサーバー ノードに作成します。これは、接続障害やノード ダウンのシナリオが発生した場合のバックアップとして機能します。 そのような場合、 NCache レプリカ ノードからデータを取得し、 redisそれを賛辞します。 ただし、これらのレプリカは、追加されたすべてのサーバー ノードがアクティブ パーティションとレプリカ パーティションに分割されるため、クラスターのスケーラビリティを制限します。
トポロジには XNUMX つのレプリケーション モードがあります。 同期と非同期。 非同期レプリケーションでは、すべてのレプリカがバックグラウンドで作成されるため、パフォーマンスの遅延はゼロになります。 ただし、レプリカがダウンすると、データがそこに到達しないため、データが失われる可能性がわずかにあります。 このような損失を回避するために、トポロジは同期レプリケーションも提供します。ここでは、レプリカのランタイム作成があり、レプリカで失敗したすべての操作はパーティションでも失敗したと見なされます。 このトポロジーは完全なサーバー接続を提供し、高いデータ可用性を保証します。
クライアント キャッシュ トポロジ
クライアントキャッシュ トポロジでは、キャッシュはアプリケーションのすぐ近くにあり、分散キャッシュからデータをすばやくキャッシュできます。 クライアント キャッシュは、「キャッシュ上のキャッシュ」と見なすこともできます。 これは読み取りが集中するアプリケーションに適していますが、アプリケーションが同じ数の読み取り操作と書き込み操作を実行する必要がある場合、書き込み操作では XNUMX つの場所でデータを更新する必要があるため、動作が遅くなります。
クライアント キャッシュはローカルですが、クラスター化されたキャッシュと常に同期されるため、スタンドアロンではありません。 この同期により、クライアント キャッシュ内のデータが常に更新されます。 以下は、クライアント キャッシュ トポロジの主な特徴の概要です。
クライアント キャッシュ トポロジのしくみ
クライアント キャッシュは、InProc (プロセス内) または OutProc モード (Web/アプリ サーバーに対してローカル) のいずれかに存在します。 どちらの場合も、アプリケーションのパフォーマンスが向上します。 InProc モードでは、「アプリケーション ヒープ」にオブジェクトをキャッシュできます。これにより、「InProc Speed」の他の分散キャッシュが得られます。 クライアント キャッシュの最も優れた点は、アプリケーションのコードを変更する必要がないことです。 代わりに、構成を変更してプラグインするだけです。
このトポロジーは、楽観的および悲観的なデータ同期を提供します。 クライアント キャッシュのデフォルトの同期は楽観的です。 NCache クライアントは、クライアント キャッシュにあるデータが最新のコピーであると想定します。 ペシミスティック同期では、キャッシュ クライアントは最初に、クラスター化キャッシュに新しいバージョンのキャッシュ項目があるかどうかをチェックします。 存在する場合、クライアントはそれをフェッチし、クライアント キャッシュに入れ、クライアント アプリケーションに返します。
まとめ
NCache は、顧客のさまざまなキャッシング ニーズを満たすために、さまざまなキャッシング トポロジを提供します。 それらはすべて分散型で、高度にスケーラブルで信頼性があります。 データのサイズ、実行する必要がある操作の性質、および実行する必要があるトランザクションの数に応じて、上記のトポロジのいずれかを選択できます。 詳細を調べるには NCache の 60 日間無料試用版をダウンロードすることを躊躇しません。 NCache.