my opinion is my own

GoldenGate 12.3新機能のParallel Replicatの概要

はじめに

従来のReplicatのモードは「Classic Replicat」と「Integrated Replicat」の2つでした。GoldenGateの12.3以降のバージョンからReplicatの新モードであるParalell Replicatが登場しました。この新しい特徴を確認する限り従来のモードで実現出来なかったこと(特に性能問題)を解決出来るのでは、と感じています。

本記事では、概略レベルを整理して、次回の記事で具体的な動作を確認したいと思います。

概要

Classic Replicat、及びIntegrated Replicatの場合、大規模なトランザクション(数千万件を更新後に1度だけcommitされる場合等)はレプリケーション遅延が起こりやすい処理でした。

上記の「単一の大規模トランザクションを並列化する機能」や「Integrated Replicatよりも5倍高速」という製品メッセージが事実であれば性能的に高速化が見込めます。

プロセス概略

マッパーはパラレルに動作し、証跡の読取り、証跡レコードのマッピング、マップされたレコードの統合Replicat LCR形式への変換、および後続の処理のためのマージャへのLCRの送信を実行します。

マスター・プロセスにはコレータとスケジューラの2つのスレッドがあります。コレータはマスターからマップされたトランザクションを受け取り、依存関係の計算のために証跡の順序に戻します。スケジューラがトランザクション間の依存関係を計算し、トランザクションを独立したバッチにグループ化し、ターゲット・データベースに適用するためにバッチをアプライアに送信します。

別モードの統合Replicatの場合はこのプロセスが「Reader」となっており、パラレルではなくシリアルです。

参考

こちらはIntegrated Repliatの場合です。Applierがパラレル化されるのは同一ですが、Applier以前のアーキテクチャが大きく違います。

プロセス作成方法

従来通りプロセス自体はADD Replicatコマンドで作成します。

ggsci > ADD REPLOCAT R1 , INTEGRATED , PARALLEL , EXTTRAIL ./dirdat/ra checkpointtable ggadmin.ggs_checkpoint

使用するパラメータ

パラメータ 説明
MAP_PARALLELISM マッパーの数を構成します。これは証跡ファイルを読み取るために使用されるスレッドの数を制御します。最小値は1、最大値は100、デフォルトは2です。
APPLY_PARALLELISM アプライアの数を構成します。これは変更を適用するために使用されるターゲット・データベースの接続の数を制御します。デフォルト値は4です。
MIN_APPLY_PARALLELISM``MAX_APPLY_PARALLELISM 並列化の適用が自動チューニングされます。最小値と最大値を設定して、Replicatが並列化を自動的に調整する範囲を定義できます。デフォルト値はありません。APPLY_PARALLELISMと同時に使用しないでください
SPLIT_TRANS_REC 大きなトランザクションを指定のサイズのピースに分割して、パラレルに適用するように指定します。ピース間の依存関係は保持されます。デフォルトでは無効です。
COMMIT_SERIALIZATION FULL直列化モードのコミットを有効にし、証跡の順序でトランザクションを強制的にコミットします。
高度なパラメータ
LOOK_AHEAD_TRANSACTIONS トランザクションをバッチ化するときに、スケジューラがどの程度先まで対象にするかを制御します。デフォルト値は10000です。
CHUNK_SIZE 並列Replicatで、どの程度の大きさのトランザクションを大きいトランザクションとみなすかを制御します。並列Replicatは、このサイズより大きいトランザクションを検出すると、そのトランザクションをシリアライズするためにパフォーマンスが低下します。ただし、この値を大きくすると、並列Replicatによって消費されるメモリーも増加します。

その他注意事項

•Integrated Parallel Replicatの場合、COMMIT_SERIALIZATIONのFULLモードはサポートされていません。使用できるモードはデフォルトのDEPENDENTになります。

•DBのバージョンはターゲットが12.2以降である必要があります。

•並列Replicatは完全なメタデータを持つ証跡からのデータ・レプリケーションのみをサポートします。したがって、ソース側はGG12.2以降のバージョンを使用する必要があります。

---

関連しているかもしれない記事


#Oracle #GoldenGate