0

Java プロジェクトでインメモリ データ グリッドを使用したいと考えています。VMWare GemFire、GigaSpaces XAP、IBM eXtreme Scale などの関連製品がいくつかあることは知っています。誰かがこれらのツールのいずれかを使用した経験と、それらを互いに比較する方法から詳しく説明できますか? ありがとう、アレックス

4

2 に答える 2

5

(免責事項 - 私は GigaSpaces で働いています)

やあアレックス

比較する基準はたくさんありますが、それは実際に何をしようとしているのかによって異なります。メモリ内のデータ グリッドには、キャッシング、OLTP、高スループットのイベント処理など、多くのユース ケースがあります。一般に、注目すべき主な基準は次のとおりです。

  • プログラミング モデル: Spring などの一般的な Java フレームワークをサポート (XAP および Gemfire はネイティブでサポート)
  • クエリとインデックス作成: 些細なキー/値データ アクセス以上のものが必要な場合。ほとんどの人は、SQL のようなセマンティクスや全文検索さえも必要としています。データ グリッドがそれをすぐに提供できるのであれば、それは大きな利点です。
  • グリッド ノードでコードを実行し、コードをグリッド ノードと同じ場所に配置して、グリッドに注入されたイベント (書き込みまたは更新されたオブジェクトなど) を処理する機能。これは大きなスケーラビリティの利点であり、非常に効率的なシェアード ナッシング アーキテクチャを実装できます。
  • 言語と API のサポート: ほとんどのデータ グリッドは、少なくとも Java および JVM ベースの言語 (Scala など) をサポートしていますが、それらの多くは他の言語もサポートしており、さまざまなプログラミング言語から同じデータにアクセスできます。たとえば、XAP は Java、.Net、C++、および REST と memcached インターフェースを使用するその他の言語をネイティブにサポートします。API に関する限り、一部のグリッドは複数の API をサポートしています。GigaSpaces では、Map、Spring/POJO、JPA、JDBC などをサポートしています。
  • トランザクション: これは、キャッシング以外のことをしたい場合にも重要です。メモリを記録システムとして使用する場合、エラーやバグが発生した場合に備えて状態をロールバックできる必要があります。そうしないと、データが破損してしまいます。もう 1 つの重要なことは、サポートされているトランザクションの種類です。多くのデータ グリッドは、「ローカル」トランザクションのみをサポートしています。つまり、単一のノード / パーティション / シャードの境界内 (これは、パフォーマンス上の理由から、ほとんどの場合に実行したいことです)。しかし、より高度なグリッドは分散トランザクションもサポートしており、必要に応じてローカルから分散にシームレスにアップグレードする方法を知っています。
  • レプリケーション: ここにはさまざまなモデル (同期、非同期、ハイブリッド) があり、ユース ケースに最適なモデルを決定する必要があります。一部のグリッドでは、DR を実装する場合に重要な、WAN を介したクロス クラスター レプリケーションも明示的にサポートされています。
  • データのパーティショニングとスケーラビリティ: グリッドはデータをどのように分割するか (固定/一貫性のあるハッシュ)、ユーザーがそれを制御するレベルは何か、キャパシティを増やすためにグリッドにサーバーを動的に追加することをサポートしていますか。
  • 管理と監視: 最後になりましたが、監視および管理フック (JMX または別の管理 API)、ユーザー インターフェイス、他のサード パーティ システムとの統合など、すぐに使用できる機能の種類について説明します。

次のリンクは、開始するのに適した場所です。

  1. http://gojko.net/2009/06/01/oracle-coherence-vs-gigaspaces-xap/ . コメントも読んで
  2. http://www.neovise.com/neovise-data-caching-performance-technical-white-paper - GigaSpaces と GemFire の最近の比較は、それ自体が物語っていると思います :)

HTH、ウリ

于 2012-06-28T10:29:57.160 に答える
0

Gartner による「競合環境: インメモリ データ グリッド」と呼ばれるインメモリ データ グリッド市場の概要があります。コピーはhttp://www.gartner.com/technology/reprints.do?id=1-1HCCIMJ&ct=130718&st=sbで見ることができます。

Oracle Coherence (以前の Tangosol Coherence) は、この分野で長い間市場をリードしてきましたが、商用製品です。私が最近他の場所で説明したように:

長所:

  • 伸縮性があります。ノードを追加するだけです。自動検出。自動負荷分散。データ損失なし。中断なし。ノードを追加するたびに、データ容量とスループットが向上します。
  • RAM とフラッシュの両方を使用します。透過的に。Coherence ノードごとに数十または数百ギガバイト (物理サーバーごとに最大 1 TB 以上) を簡単に処理できます。
  • 自動高可用性 (HA)。プロセスを強制終了します。データは失われません。サーバーを強制終了しても、データは失われません。
  • データセンターの継続的な可用性 (CA)。データセンターを停止しても、データの損失はありません。
  • RESTful API はあらゆる言語から利用できます。C/C++、C#、.NET、Java 用のネイティブ API とクライアント ライブラリ。
  • 単純なキー値 (K/V) キャッシュに加えて、クエリ (一部の SQL を含む)、並列クエリ、インデックス (カスタム インデックスを含む)、豊富なイベント モデル (交換などのイベント駆動型システム用)、トランザクション (を含む) もサポートします。 MVCC)、スカラー (EntryProcessor) 関数と集約 (ParallelAwareAggregator) 関数の両方の並列実行、キャッシュ トリガーなど。
  • リードスルー、リードアヘッド、ライトスルー、ライトビハインド キャッシングにより、データベースと簡単に統合できます。データベースに変更が発生すると、変更されたデータのみが自動的にリフレッシュされます(Oracle GoldenGateテクノロジーを活用)。
  • Coherence インキュベーター: Coherence インキュベーター
  • memcache プロトコルのサポート: github の Oracle Coherence プロジェクトの Memcached インターフェース
  • 何千もの顧客の中に、10 年以上にわたって Coherence を本番環境で使用している顧客もあります。

短所:

  • Coherence 12.1.2以降、キャッシュ自体は永続的ではありません。
  • お金がかかります。

完全な開示のために、私はオラクルで働いています。この投稿で表明された意見や見解は私自身のものであり、必ずしも私の雇用主の意見や見解を反映するものではありません.

于 2013-08-11T22:19:14.360 に答える