第5章 継続的なクエリーの作成


アプリケーションはリスナーを登録して、クエリーフィルターに一致するキャッシュエントリーに関する継続的な更新を受け取ることができます。

5.1. 継続的なクエリー

継続的なクエリーは、クエリーでフィルターされる Data Grid キャッシュのデータに関するリアルタイムの通知をアプリケーションに提供します。エントリーがクエリー Data Grid と一致する場合は、更新されたデータを任意のリスナーに送信します。これは、クエリーを実行するアプリケーションではなく、イベントのストリームを提供します。

継続的なクエリーは、セットに参加した値についてアプリケーションに通知します。一致する値に対して一致し、変更して一致し続けた値については、そのセットを残す値について通知できます。

たとえば、継続的なクエリーはアプリケーションにすべてについて通知できます。

  • 18〜25 歳の人で、Person エンティティーに age プロパティーがあり、ユーザーアプリケーションによるエンティティー更新を想定する場合。
  • 2000 ドルを超える金額のトランザクション。
  • キャッシュにラップエントリーが含まれ、レース中にラップが入力されたと仮定して、F1 レーサーのラップ速度が 1:45.00 秒未満であった時間。
注記

継続的なクエリーは、グループ化、集約、およびソート操作以外のすべてのクエリー機能を使用できます。

継続的なクエリーの仕組み

継続的なクエリーは、以下のイベントでクライアントリスナーに通知します。

Join
キャッシュエントリーがクエリーと一致します。
Update
クエリーに一致するキャッシュエントリーが更新され、引き続きクエリーに一致します。
Leave
キャッシュエントリーがクエリーと一致しなくなりました。

クライアントが継続的なクエリーリスナーを登録すると、クエリーに一致するエントリーの Join イベントをすぐに受信します。クライアントリスナーは、キャッシュ操作がクエリーに一致するエントリーを変更するたびに、後続のイベントを受け取ります。

Data Grid は、以下のように JoinUpdate、または Leave イベントをクライアントリスナーに送信するタイミングを決定します。

  • 古い値と新しい値のクエリーが一致しない場合、Data Grid はイベントを送信しません。
  • 古い値のクエリーが一致しず、新しい値を指定すると、Data Grid は Join イベントを送信します。
  • 古い値と新しい値の両方のクエリーが一致する場合、Data Grid は Update イベントを送信します。
  • 古い値のクエリーが一致しても、新しい値がない場合、Data Grid は Leave イベントを送信します。
  • 古い値のクエリーが一致し、エントリーが削除されるか、期限切れになると、Data Grid は Leave イベントを送信します。

5.1.1. 継続クエリーと Data Grid のパフォーマンス

継続的なクエリーは、アプリケーションに更新の定数ストリームを提供しており、大量のイベントを生成できます。Data Grid は、生成する各イベントにメモリーを一時的に割り当てます。これにより、メモリー不足が発生し、特にリモートキャッシュに対して OutOfMemoryError 例外が発生する可能性があります。このため、パフォーマンスへの影響を回避するために、継続的なクエリーを慎重に設計する必要があります。

Data Grid は、継続的なクエリーのスコープを必要な情報の最小量に制限することを強く推奨します。これを実行するには、プロジェクションおよび述語を使用できます。たとえば、以下のステートメントでは、エントリー全体ではなく基準に一致するフィールドのサブセットのみに関する結果を表示します。

SELECT field1, field2 FROM Entity WHERE x AND y

また、各 ContinuousQueryListener は、ブロッキングスレッドを使用せずに受信したすべてのイベントを迅速に処理できるようにすることが重要です。これを実行するには、イベントを不必要に生成するキャッシュ操作を回避する必要があります。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.