外部データとしてRDBを参照する場合、RDB参照定義を作成します。RDB参照定義はRDBとの接続情報です。
ここでは次の項目について説明します。
以下にRDB参照定義を設計する場合の留意点を示します。
作成単位
RDB参照定義は、CEPエンジンごとに1つだけ配備できます。
期限付きキャッシュの利用
RDBを初回に参照すると、クエリのキーと結果がCEPエンジンの期限付きキャッシュに格納されます。二回目以降の同一キーによるRDB参照は、キャッシュからデータを取得する動作となります。期限付きキャッシュの利用にはRDB参照定義にキャッシュ保持期間とキャッシュ破棄間隔の設定が必要です。
期限付きキャッシュ利用時は、期限付きキャッシュに必要なメモリ使用量の見積もりが必要です。
キャッシュに格納するデータ数が多くなれば、CEPエンジンのメモリ使用量が増大していくため、キャッシュの指定値を考察する必要があります。
キャッシュ保持期間は、キャッシュに保持する期間を秒単位で0~2147483647の範囲で指定します。
キャッシュ破棄間隔は、保持期間を超えたキャッシュを破棄するためにキャッシュをチェックする間隔で、秒単位で1~2147483647の範囲で指定します。
以下、キャッシュの保持期間と破棄間隔を指定する場合の考え方について説明します。
RDBデータの更新がない場合
キャッシュの保持期間を大きくしておいて問題ありません。大量のキャッシュ破棄はGC発生となり、処理性能が一時的に落ちます。キャッシュに入れるデータ量を考察したうえでGCを避けるような破棄間隔を設定してください。
RDBデータの更新が予期される場合
RDBデータが更新されても、最大で保持期間+破棄間隔の間は古いキャッシュのデータが使われる可能性があります。RDBデータ更新後、どのくらいの間なら古いデータでも許されるかにより保持期間と破棄間隔を設定してください。また、キャッシュはクエリごとに保持されるため、あるクエリではキャッシュに保持された古いデータが取得され、別のクエリでは更新された新しいデータが取得されるという可能性があります。RDB参照を行うルールを設計する際に、そのようなケースが起こり得るか考慮してください。