REST APIを介してのみ公開されるXDCRの内部設定があります。これらの設定は、レプリケーションの動作、パフォーマンス、およびタイミングを変更します。次のとおり、ノードごとに並列レプリケーションストリーミングについてのXDCR設定をアップデートします:
shell> curl -X POST -u Administrator:password1 \ http://10.4.2.4:8091/internalSettings \ -d xdcrMaxConcurrentReps=64
Couchbase Serverが正常にこの設定値を更新した場合、次のようにレスポンスを送信します:
HTTP/1.1 200 OK Server: Couchbase Server 2.0.0-1941-rel-community Pragma: no-cache Date: Wed, 28 Nov 2012 18:20:22 GMT Content-Type: application/json Content-Length: 188 Cache-Control: no-cache
これらの変数を調整する方法は、クラスタ間の単方向または双方向のレプリケーションを実行するかどうかにより異なります。クラスタ環境での読み書き操作の強度を含む検討に対するその他の要因は、宛先クラスタ環境と利用中のシステム環境でのディスクの永続化の割合があります。これらのパラメータを変更すると、クラスタのパフォーマンスだけでなく、XDCRレプリケーションのパフォーマンスに影響を与えます。調整可能なXDCR関連の設定は次のように定義されています:
xdcrMaxConcurrentReps
(Integer)
バケットあたりの同時レプリケーションの最大値で、8から256の間で指定可能です。これは、ノードごとに並列レプリケーションストリーム数を制御します。高性能CPUを搭載したハードウェア上で、クラスタを実行している場合は、レプリケーションの速度を向上させるために、この値を増やすことができます。
xdcrCheckpointInterval
(Integer)
チェックポイントの間隔であり、60から14400(秒)の間で指定可能です。デフォルトは1800秒です。この時間間隔で、XDCRレプリケーション?を介したデータのバッチが、ディスク永続キューの先頭に置かれます。この時間間隔は、レプリケーションが再起動する必要があるときに、XDCR経由でレプリケートされるデータの量を決定します。この値が大きいければ大きいほど、XDCRキューが増加するので長い時間がかかります。たとえば10分に設定し、ネットワークエラーが発生した場合で、XDCRのレプリケーションが再起動されたとき、10分ぶんのアイテムがレプリケーションの対象として増加します。
宛先のクラスタ上の書き込み操作がかなりの量あり、XDCRで双方向のレプリケーションを実行しているときは、小さい値に変更すると、クラスタ操作に影響を与える可能性があります。例えば、これを5分に設定した場合、XDCRレプリケーションを介したデータの着信バッチは、宛先クラスタの着信書き込みワークロード上のディスクへの書き込みキューよりも優先されます。これは、宛先クラスタ上で増え続けるディスク書き込みキューを持ち続けるという問題が発生する可能性があり、XDCRアイテムよりも優先されるべきディスク書き込みキュー内のアイテムが、永続化される前に古くなってしまいます。
xdcrWorkerBatchSize
(Integer)
ドキュメントのバッチ数であり、500から10000の間で指定可能です。デフォルトは500です。大きなデータのバッチが一定の間隔で送信されますので、一般的には、デフォルトの2、3倍程度にこの値を大きくすると、XDCR伝送速度を向上します。ソースから宛先クラスタへの単一方向レプリケーションの場合、デフォルトの2、3倍にこの設定を調整すると、ディスクへの永続化が宛先クラスタで十分な速さである限り、全体のレプリケーションのパフォーマンスが向上します。しかしながら、2つのクラスタの間で双方向レプリケーションを実行し、なおかつ宛先で既に読み込み/書き込みでかなりの量を処理している場合、宛先クラスタに悪影響を及ぼすことがあることに注意してください。
xdcrDocBatchSizeKb
(Integer)
ドキュメントのバッチ容量であり、10から100000(KB)の間で指定可能です。デフォルトは2048(KB)です。大きなデータのバッチが一定の間隔で送信されますので、一般的には、デフォルトの2、3倍程度にこの値を大きくすると、XDCR伝送速度を向上します。ソースから宛先クラスタへの単一方向レプリケーションの場合、デフォルトの2、3倍にこの設定を調整すると、ディスクへの永続化が宛先クラスタで十分な速さである限り、全体のレプリケーションのパフォーマンスが向上します。しかしながら、2つのクラスタの間で双方向レプリケーションを実行し、なおかつ宛先で既に読み込み/書き込みでかなりの量を処理している場合、宛先クラスタに悪影響を及ぼすことがあることに注意してください。
xdcrFailureRestartInterval
(Integer)
失敗したXDCRの再起動の間隔であり、1から300(秒)の間で指定可能です。デフォルトは30(秒)です。より頻繁にネットワークやサーバの障害が予想される場合には、低い値に設定したい場合があります。サーバまたはネットワークに障害が発生した後、レプリケーションの再起動を試行する前にXDCRが待機する時間です。
XDCRについての詳細は、「クロスデータセンターレプリケーション(XDCR)」を参照してください。