Teracotta と Hibernate の検索
-
23-08-2019 - |
質問
アプリケーションのクエリを満たすために Hibernate Search で Terracotta を使用した経験のある人はいますか?
もしそうなら:
「オブジェクトの更新」の大きさはどのような大きさを処理できますか?(パフォーマンスはどうですか)
クエリにはどのようなパフォーマンスがありますか?
- メモリ内のすべての「クエリ」を満たすためにバッキングデータベースを持たずにTerracotta Hibernate検索を使用することは可能ですか?
解決
私は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 が使用され、優れた Hibernate インターフェイスはなく、代わりに Compass インターフェイスが使用されます。
JBoss の支援を受けて、年末までに Hibernate Search をサポートする予定です (JBoss は JMS impl をプラグイン可能として考慮する必要があります)。
それでは、直接ご質問ください。
1. Hibernate または SearchableMap のオブジェクト更新/秒は、どちらもデルタのみを送信するため、非常に高いはずです。Hibernate の場合、これは JMS プロバイダーの機能です。Terracotta では、アレイに Terracotta サーバーを追加するだけで拡張可能です。
どちらのクエリのパフォーマンスも非常に高速です。ほとんどの場合、ローカル メモリのパフォーマンス。また、ディスクからページインする必要がある場合、ほとんどの OS が適切に機能し、ネットワーク ベースのクラスタリングよりもはるかに高速にクエリに応答できることがわかりました。
JBoss に JMS の想定などを考慮してもらったら、そうなると思います。
乾杯、
--アリ
他のヒント
は、Hibernateのフォーラムの人々は私が指摘することが必要に感じるこの記事に言及し続けているためという2009年の初めに正しいアリのコメントながら、我々が開発し、多くのことを改善してきた。
すでにベースのJMSおよびJGroupsのを使用して、より最近の追加を述べたが、我々は代替の実装にプラグインまたは一部をオーバーライドすることもかなり簡単に似ます。休止状態の検索は、箱から出してバックエンド・チャネルのセットを提供します
カスタムバックエンドを使用することに加えて、それはあなたが別のデザインを次のとまったくバックエンドを使用していないIndexManagerを使用することができ、全体の戦略とだけではなく、バックエンドの実装を変更するのを置き換えるために、バージョン4以降、今可能です。この時点で、我々は2つだけIndexManagersを持っているが、我々はより多くの選択肢に取り組んでいます。再びアイデアは、最も一般的な
のために素敵な実装を提供することですこれは、異なるノード間でインデックスの非常に迅速に配布するためInfinispanベースのバックエンドを持っている、そしてそれはテラコッタや他のクラスタリング技術に基づいて1を拠出するまっすぐ進むべきです。より多くのソリューションが来てます。