クラスター間のトラフィック

ソース・クラスターとデスティネーション・クラスター間のトラフィックは、複数データ・センターの操作に関する許可、優先順位、構成可能な動作に従って管理されます。

ソース・クラスターとデスティネーション・クラスター間のトラフィックは、複数データ・センターの操作に関する許可、優先順位、構成可能なフェイルオーバー動作に従って管理されます。

許可

ソース・クラスターとデスティネーション・クラスター間のトラフィックは、許可に従って管理されます。許可を取得できない場合、メッセージは延期され、許可が取得できて処理されるまでレプリケーション・ログ内で待機します。許可はグローバルであり、各デスティネーションに限定されません。

許可を管理し、すべてのデスティネーションに同時にレプリケートできるメッセージの最大数を設定するには、dse advrep confを使用します。
dse advrep conf update --permits 1000
デフォルトは30,000です。

許可を取得する際は、優先順位の高いチャネルが優先されます。ソースからデスティネーションにデータを送信するには、許可が必要です。

優先順位とFIFO/LIFOの有効化

コミット・ログはメモリーからディスクにフラッシュされ、データが適切なテーブルに書き込まれます。Change-Data-Capture(CDC)収集エージェントは、書き込まれたデータをさらにフィルター処理し、ディスク上にレプリケーション・ログ・ファイルを作成します。チャネル・ソース・テーブルごとに個別のデータ・ディレクトリーがディスク上に作成され、コミット・ログがフラッシュされるたびにデータが追加書き込みされ、デスティネーションにレプリケートされるすべてのメッセージが格納されます。任意の時点で1つのソース・テーブルに複数のレプリケーション・ログ・ファイルが存在することがあります。各ファイルには、連続したタイムスライスが格納され、その条件はdse advrep conf updateコマンドと--collection-time-slice-widthオプション(デフォルト:60秒)で構成可能です。次にCDC送信エージェントは、レプリケーション・ログ・ファイルに格納されたメッセージをデスティネーションに送信します。そこでデータが処理され、適切なデータベース・テーブルに書き込まれます。ソース・テーブルのデータが送信される順序は、チャネルの作成時にpriorityオプションを使用して変更できます。また、ソース・テーブルのレプリケーション・ログ・ファイルを読み取る順序は、--fifo-enabledオプションと--lifo-enabledオプションで調整できます。

レプリケーション・ログ・ファイルは、レプリケーション・チャネルの時間と優先順位に従って処理されます。レプリケーション・チャネルの優先順位はテーブルごとに設定され、送信エージェントがソースからデスティネーションにレプリケーション・ログ・ファイルを送信する順序を決定します。レプリケーション・ログ・ファイルは、後入れ先出し(LIFO)または先入れ先出し(FIFO)のいずれかでデスティネーションに渡すことができます。FIFOがデフォルトです。最新のメッセージを最初に読み取るにはLIFOを使用し、最も古いメッセージを最初に読み取るにはFIFOを使用します。個々のレプリケーション・ログ・ファイルが送信されると、それに含まれているメッセージがFIFOで読み取られます。チャネル作成時に、優先順位と読み取り順序の両方のオプションを設定できます。
dse advrep --host 192.168.3.10 channel create --source-keyspace foo --source-table bar --source-id source1 --source-id-column source_id --destination mydest --destination-keyspace foo --destination-table bar --collection-enabled true --priority 1 --lifo-enabled
この例では、テーブルfoo.barのレプリケーション・ログ・ファイルが他のテーブルのレプリケーション・ログ・ファイルより先に送信されるように、テーブルfoo.barのチャネルを優先順位1位に設定しています。また、レプリケーション・ログ・ファイルを最新のファイルから順に読み取るように設定しています。

複数のデータ・センターを含むハブ・クラスターの自動フェイルオーバーを構成する

DSE Advanced Replication(DSE拡張レプリケーション)は、DSE Javaドライバーのロード・バランス機能ポリシーを使用してハブ・クラスターと通信します。DSE Javaドライバーが使用するデータ・センター認識ラウンド・ロビン・ポリシー(DCAwareRoundRobinPolicy)のローカル・データ・センターは明示的に定義できます。

ローカル・データ・センターからリモートデータ・センターへのフェイルオーバーは有効または無効にすることができます。複数のデータ・センター・フェイルオーバーが構成されていてローカル・データ・センターで障害が発生した場合、エッジからハブへのデータ・レプリケーションは、リモート・データ・センターを使用して継続されます。構成は、以下のパラメーターを使用して調整します。
driver-local-dc
複数のデータ・センターを持つデスティネーション・クラスターでは、ローカルと見なされるデータ・センターの名前を明示的に定義できます。通常、ソース・クラスターに最も近いデータ・センターがこれに該当します。この値は、複数のデータ・センターを持つクラスターにのみ使用されます。
driver-used-hosts-per-remote-dc
複数のデータ・センターを持つデスティネーション・クラスターに自動フェイルオーバーを使用するには、データ・センター認識ラウンド・ロビン・ポリシー(DCAwareRoundRobinPolicy)で使用可能と見なされるリモート・データ・センターごとのホストの数を定義する必要があります。
driver-allow-remote-dcs-for-local-cl
複数のデータ・センターを持つデスティネーション・クラスターで自動フェイルオーバーを有効にするには、trueに設定します。driver-consistency-levelパラメーターの値は、LOCAL_ONEまたはLOCAL_QUORUMに指定する必要があります。
LOCAL_QUORUMの整合性レベルで自動フェイルオーバーを有効にするには、dse advrep destination updateを使用します。
dse advrep destination update --name mydest --driver-allow-remote-dcs-for-local-cl true --driver-consistency-level LOCAL_QUORUM
Destination mydest updated
Updated driver_allow_remote_dcs_for_local_cl from null to true
Updated driver_consistency_level from ONE to LOCAL_QUORUM