増分自動リフレッシュを使用した動的な読取り専用キャッシュ・グループに対する競合の削減

ほとんどの自動リフレッシュ処理および動的ロード処理で、Oracleデータベースへのアクセスを正確に調整します。TimesTenのデフォルトの調整動作により、自動リフレッシュ処理と動的ロード処理の間で競合が発生する可能性があります(極端な場合)。

増分自動リフレッシュが設定された動的な読取り専用キャッシュ・グループがある場合:

  • 自動リフレッシュ処理によって複数の動的ロード処理がブロックされる可能性があります。

  • 自動リフレッシュ処理が動的ロード処理の完了を待機している間に頻繁に遅延します。

DynamicLoadReduceContentionデータベース・システム・パラメータを有効にすることは、自動リフレッシュ処理と動的ロード処理が調整される方法を変更することで、動的キャッシュ・グループに役立ちます。これにより、自動リフレッシュ処理と動的ロード処理の間の競合が減少します。

  • (同期処理が追加されているため)自動リフレッシュ処理によって動的ロード処理がブロックされることがありません。

  • 自動リフレッシュ処理が動的ロード処理によって完全に遅延することはありません。かわりに、自動リフレッシュ処理は、新しい自動リフレッシュ処理が開始されたことが同時実行中の動的ロード処理に通知されるまでしばらく待機します。これにより、動的ロード処理は、同時実行中の動的ロード処理と並行して同期できるようになります。

ノート:

動的な読取り専用キャッシュ・グループがある場合、またはキャッシュまたはレプリケーション・エージェントが実行されている場合、DynamicLoadReduceContentionデータベース・システム・パラメータの値を変更することはできません。このパラメータの値を変更するには、既存の動的読取り専用キャッシュ・グループをすべてアンロードおよび削除(して後で再作成)してから、キャッシュおよびレプリケーション・エージェントを停止する必要があります。

次の例では、DynamicLoadReduceContentionを1に設定しています。

call ttDbConfig('DynamicLoadReduceContention','1');

DynamicLoadReduceContentionパラメータの現在の値を問い合せることができます。

call ttDbConfig('DynamicLoadReduceContention');

ノート:

『Oracle TimesTen In-Memory Databaseリファレンス』「ttDBConfig」を参照してください。