主なユースケースと解決策
ケース1:TPとAPを区別できる場合(読み書き分離を推奨)
概要:業務において、オンライントランザクション(TP、例:注文処理)と分析(AP、例:ユーザー行動統計)を明確に区別でき、かつAP系の分析処理では結果整合性を許容できる場合には、ルーティングポリシーを用いてリソースを分離します。
解決策:
読み書き分離の設定:
- 実装方法:
- TPリクエストを**リーダーレプリカ(Leader)**にルーティングし、トランザクションの一貫性と低レイテンシを保証します。
- APリクエストをカラムストアレプリカントにルーティングします。これにより、APリクエストはカラムストア上で実行され、集計クエリが高速化されます。
- 実装方法:
詳細は、ドキュメントOceanBase読み書き分離の設定およびカラムストアレプリカの使用を参照してください。
フォロワー優先読み取りポリシー:
- 実装方法:AP系のクエリはフォロワーレプリカ(Follower)から優先的に読み取り、リーダーレプリカはTPリクエストのみを処理します。
詳細は、ドキュメントフォロワー優先読み取りの設定を参照してください。
ケース2:TPとAPを分離できない場合
概要:AP系の分析処理で強力な整合性が求められる、あるいはTPとAPの業務を切り分けることが困難な場合。
解決策:
- 実装方法:すべてのリクエストをリーダーレプリカ(Leader)に強制的にルーティングします。例えば、以下のパラメータを設定します。
-- 弱い整合性読み取りを無効化
SET GLOBAL OB_READ_CONSISTENCY='STRONG';
注意
クラウド版のOceanBaseデータベースは、OceanBaseデータベースの挙動が一部異なります。クラウド版ではプライマリエンドポイント(primary endpoint、OceanBase Cloud独自の概念)に直接接続するため、すべてのリクエストはデフォルトで強力な整合性でルーティングされます。ただし、この設定ではAP系のクエリがリーダーレプリカのリソースを占有してしまう可能性があるため、クラウドコンソールからリソースグループの分離を有効にする必要があります。詳細は、OceanBase Cloudプライマリエンドポイントの設定を参照してください。
その他のルーティングポリシー
| ポリシーの種類 | 適用シナリオ |
|---|---|
| LDCルーティング | 複数リージョンにまたがるデプロイメントで、最寄りのレプリカにアクセスする |
| 重み付けルーティング | ノードの負荷に応じて動的にリクエストを分散する |
| ランダムルーティング | 読み取りリクエストをすべての利用可能なレプリカに均等に分散する |
詳細は、ドキュメントODPルーティングのベストプラクティスを参照してください。