13

I've been reading up on so-called "data grid" solutions for the Java platform including Terracotta, GigaSpaces and Coherence. I was wondering if anyone has real-world experience working any of these tools and could share their experience. I'm also really curious to know what scale of deployment people have worked with: are we talking 2-4 node clusters or have you worked with anything significantly larger than that?

I'm attracted to Terracotta because of its "drop in" support for Hibernate and Spring, both of which we use heavily. I also like the idea of how it decorates bytecode based on configuration and doesn't require you to program against a "grid API." I'm not aware of any advantages to tools which use the approach of an explicit API but would love to hear about them if they do in fact exist. :)

I've also spent time reading about memcached but am more interested in hearing feedback on these three specific solutions. I would be curious to hear how they measure up against memcached in the event someone has used both.

4

4 に答える 4

8

Hazelcastもチェックしてみてください。Hazelcast は、キュー、トピック、マップ、セット、リスト、ロック、およびエグゼキュータ サービスのオープン ソース トランザクション分散/パーティション実装です。操作は非常に簡単です。クラスパスに hazelcast.jar を追加してコーディングを開始するだけです。設定はほとんど必要ありません。

Hazelcastは Apache ライセンスの下でリリースされ、エンタープライズ グレードのサポートも利用できます。コードはGoogle Codeでホストされています。

于 2009-02-13T12:54:33.523 に答える
7

50 台のサーバーで Web サービス アプリケーションを実行しており、これらのサーバーはすべて bigIP を使用して負荷分散されていました。要件は、各ユーザー状態をキャッシュして、後続の状態が同じ処理を再度実行して前の状態からデータを取得しないようにすることでした。この方法では、Web サービスのクライアントは状態を維持する必要がありません。

Terracotta を使用して状態をキャッシュしましたが、パフォーマンスの問題に直面することはありませんでした。ピーク時には、アプリケーションが取得するリクエスト数は 1 秒あたり 100 です。

于 2009-02-12T06:35:32.240 に答える
3

どのライブラリを選択するかは、アプリケーションと何を達成しようとしているかによって異なります。

Coherence を使用して Web アプリケーションのスケーラビリティ (および冗長性など) を提供するショップで働いていました。Coherence の利点を得るには、約 4 ~ 5 個のノードが必要であることがわかりました (2 ~ 3 個のノードではパフォーマンスが低下する可能性があります)。Oracle のドキュメントによると、Coherence で実際にメリットを得るには、多数 (30 以上) のノードが必要であると書かれています。Coherence を使用する場合は、ハードウェアが適切にセットアップされていることを確認してください。これはレイテンシーに非常に敏感です。

私は個人的に「ドロップイン」のものには近づきません。それらは何かを提供するかもしれませんが、最終的には同期またはパフォーマンスの問題に遭遇し、とにかくグリッド層に固有のコードを書き始める必要があります. 基本的に、ライブラリよりも自分のアプリのことをよく知っているので、どのアイテムをキャッシュに入れる必要があるか、どれくらいの期間存続させる必要があるか、アプリがどのように使用されるかなどを把握できます。

于 2009-02-12T08:14:51.223 に答える
2

私はこれらのテクノロジーについて十分な経験がありませんが、Apache Hadoopはスケーラブルで信頼できることが証明されていると思います。Yahoo は10,000 コアの Linux クラスターでそれを実行しました。

Google MapReduceアルゴリズムに基づいています。

この記事では、MapReduce と、それを気にする必要がある理由について説明します。

于 2009-02-12T04:50:16.800 に答える