アプリケーションのクエリを満たすために、Hibernate Search で Terracotta を使用した経験のある人はいますか?
もしそうなら:
どの程度の「オブジェクトの更新」を処理できますか? (出来栄えはどうですか)
クエリにはどのようなパフォーマンスがありますか?
- メモリ内のすべての「クエリ」を満たすバッキング データベースがなくても、Terracotta Hibernate Search を使用することは可能ですか?
アプリケーションのクエリを満たすために、Hibernate Search で Terracotta を使用した経験のある人はいますか?
もしそうなら:
どの程度の「オブジェクトの更新」を処理できますか? (出来栄えはどうですか)
クエリにはどのようなパフォーマンスがありますか?
TerracottaのCTOです。先月、Hibernate Search について調べました。Terracotta によって透過的にクラスター化されるようには構築されていません。その理由を簡単に説明すると、Hibernate には、JVM 間での Lucene インデックスのカスタム構築された JMS レプリケーションがあります。
Search の基本的な考え方は、lucene の下でローカル ディスクと通信することは非常にうまく機能するのに対し、ネットワーク全体で Lucene インデックスを断片化または分割すると、非常に多くのレイテンシが発生し、Lucene のせいではないのに Lucene が悪いように見えるということです。そのために、HIbernate Search は JBossCache やインメモリ パーティショニング/キャッシュ スキームに依存せず、代わりに JMS と各 JVM のローカル ディスクに依存して、クラスター全体で同時に低レイテンシーで最新のインデックス作成を提供します。次に、Hibernate Search の優れた点は、標準の Hibernate クエリなどを、各マシンのこれらの自然言語インデックスで Hibernate を介して起動できることです。
Terracotta では、Emmanuel と同様のアイデアを持ち、Compass の上に SearchableMap 製品を構築したことが判明しました。各マシンは独自の Compass ストアを取得し、ストアはローカルにディスクにスピルするように構成されています。Terracotta は、任意の JVM がインデックスに追加できるマルチマスター書き込み機能を作成するために使用され、デルタは Terracotta を介して送信され、各ディスクにローカルで再生/再適用されます。Hibernate Search と同じように機能しますが、JMS の代わりにネットワーク プロトコルとして DSO を使用し、Nice Hibernate インターフェースを使用せずに代わりに Compass インターフェースを使用します。
年末までに JBoss の助けを借りて Hibernate Search をサポートすると思います (JMS impl をプラグ可能として除外する必要があります)。
今すぐあなたの質問に直接:
1. Hibernate または SearchableMap のオブジェクト更新/秒は、どちらもデルタのみを送信しているため、非常に高くなるはずです。Hibernate の場合、これは JMS プロバイダーの機能です。Terracotta では、Terracotta サーバーをアレイに追加するだけで拡張できます。
両方のクエリ パフォーマンスは非常に高速です。ほとんどの場合、ローカル メモリのパフォーマンス。また、ディスクからページ インする必要がある場合、ほとんどの OS が適切に機能し、ネットワーク ベースのクラスタリングよりもはるかに高速に応答できることがわかります。
JBossにJMSの仮定などを考慮に入れたら、それになると思います.
乾杯、
――アリ
Hibernateフォーラムの人々はこの投稿を参照し続けているので、2009年の初めにAriのコメントが正しかった一方で、私たちは多くの開発と改善を行ってきたことを指摘する必要があります。
Hibernate Searchは、すでに述べたJMSベースやJGroupsを使用した最近の追加のように、すぐに使用できる一連のバックエンドチャネルを提供しますが、代替実装をプラグインしたり、一部をオーバーライドしたりすることも非常に簡単になりました。
カスタムバックエンドの使用に加えて、バージョン4以降、戦略全体を置き換えることが可能になりました。バックエンドの実装を変更する代わりに、異なるデザインに従い、バックエンドをまったく使用しないIndexManagerのみを使用できます。現時点では、IndexManagerは2つしかありませんが、さらに多くの代替案に取り組んでいます。繰り返しになりますが、アイデアは最も一般的なものに優れた実装を提供することです
さまざまなノード間でインデックスを非常に迅速に分散するためのInfinispanベースのバックエンドがあり、Terracottaまたはその他のクラスタリングテクノロジーに基づいたバックエンドを提供するのは簡単です。より多くのソリューションが来ています。