ODPはスタンバイ優先読み取りルーティングポリシーをサポートしており、ユーザー変数proxy_route_policyでスタンバイ優先読み取りルーティングを制御します。スタンバイ優先読み取りは弱い一貫性読み取り時にのみ有効であり、プライマリ/スタンバイの均等な選択ではなく、フォロワーを優先的に読み取ります。
OceanBaseデータベースがサポートするクライアントツールでクラスタの業務テナントにログインした後、以下のステートメントを実行してセッション変数proxy_route_policyを設定します:
obclient> SET @proxy_route_policy='[policy]';
パラメータ[policy]の値には3種類あります:
値が
follower_firstの場合、ルーティングロジックはスタンバイを優先します(クラスタがコンパクション状態であっても)。優先順位は以下のとおりです:同じデータセンター内でコンパクションされていないスタンバイ --> 同じ都市内で異なるデータセンター内でコンパクションされていないスタンバイ --> 同じデータセンター内でコンパクションされているスタンバイ --> 同じ都市内で異なるデータセンター内でコンパクションされているスタンバイ --> 同じデータセンター内でコンパクションされていないプライマリ --> 同じ都市内で異なるデータセンター内でコンパクションされていないプライマリ --> 異なるデータセンター内でコンパクションされていないスタンバイ --> 異なるデータセンター内でコンパクションされていないスタンバイ --> 異なるデータセンター内でコンパクションされていないプライマリ --> 異なるデータセンター内でコンパクションされているプライマリ
値が
unmerge_follower_firstの場合、ルーティングロジックはクラスタのコンパクション状態にないスタンバイ(フォロワーノード)を優先的に送信します。優先順位は以下のとおりです:同じデータセンター内でコンパクションされていないスタンバイ --> 同じ都市内で異なるデータセンター内でコンパクションされていないスタンバイ --> 同じデータセンター内でコンパクションされていないプライマリ --> 同じ都市内で異なるデータセンター内でコンパクションされていないプライマリ --> 同じデータセンター内でコンパクションされているスタンバイ --> 同じ都市内で異なるデータセンター内でコンパクションされているスタンバイ --> 異なるデータセンター内でコンパクションされていないスタンバイ --> 異なるデータセンター内でコンパクションされていないプライマリ --> 異なるデータセンター内でコンパクションされていないスタンバイ --> 異なるデータセンター内でコンパクションされているスタンバイ --> 異なるデータセンター内でコンパクションされているプライマリ
その他の値を指定した場合、通常の弱い一貫性読み取りのプライマリ/スタンバイ均等なルーティングロジックに劣化します。優先順位は以下のとおりです:
同じデータセンター内でコンパクションされていないプライマリまたはスタンバイ --> 同じ都市内で異なるデータセンター内でコンパクションされていないプライマリまたはスタンバイ --> 同じデータセンター内でコンパクションされているプライマリまたはスタンバイ --> 同じ都市内で異なるデータセンター内でコンパクションされているプライマリまたはスタンバイ --> 異なるデータセンター内でコンパクションされていないプライマリまたはスタンバイ --> 異なるデータセンター内でコンパクションされているプライマリまたはスタンバイ