6


私のDALはで実装されており、分散機能(スケーラビリティとHA用)を備えた第2レベルのキャッシュとしてHibernate使用したいと考えています。私の質問でのみ分散キャッシング を提供するように見えるのは、サーバーインスタンスの役割は何ですか?データも保持していますか?パーティション化されたキャッシュパーツ間の分散を調整するだけですか?私の混乱は主に、サーバーがデータを保持しているというTSAに関するこの説明 に由来しますが、私のシナリオでは、キャッシュとサーバーが一種のマージされていると思います。私は正しいですか? サーバーがデータを保持している場合、ボトルネックをデータベースからサーバーに移動するべきではないのはなぜですか? EHCache
EHCacheTerracottaTerracotta
Terracotta
Terracotta

更新: Affeの回答は、重要な部分である私の質問の2番目の部分に答えましたが、誰かが最初の部分を探しに来た場合に備えて、TCサーバーはメモリ内のEHCacheが保持するすべてのデータを保持する必要があると言います。分散キャッシュ(複製されない)が必要な場合は、L2(TCサーバー)がすべてのオブジェクト自体も保持する必要があります。

よろしくお願いします、
イッタイ

4

2 に答える 2

4

データベース接続を取得してSQLステートメントを実行するよりも、テラコッタドライバーを介してテラコッタクラスターに接続し、基本的にマップルックアップを実行する方がはるかに高速であるという考え方です。それがアプリケーションのチョークポイントになったとしても、全体的なスループットは、JDBC接続+SQLのチョークポイントよりも大幅に高いと予想されます。開いている接続と開いているカーソルはデータベースの大きなリソースを占有しますが、テラコッタクラスターへの開いているソケットはそうではありません!

于 2011-01-31T19:19:08.443 に答える
3

テラコッタを使用せずにehcacheをクラスター化できます。RMI、JGroups、JMSを介してそれを行うためのドキュメントがあります。すでに通信を処理するための重要なJMSインフラストラクチャがあるため、JMSを使用しています。長期的にどれだけ拡張できるかはわかりませんが、現在の懸念はHAだけです。

于 2011-02-01T02:44:30.123 に答える