テナント容量とは、本質的にはテナントのサービス能力を指し、計算能力とストレージ能力が含まれます。
OceanBaseデータベースは、テナント容量の動的な調整をサポートしており、単一ノードのサービス能力を調整することも、サービスノード数を調整することも可能です。前者は垂直スケーリングに、後者は水平スケーリングに対応します。これはまた、従来のデータベースと比較したOceanBaseデータベースのアーキテクチャ上の利点の一つであり、使いやすい水平スケーラビリティにより、容易に単一マシンの容量上限を突破できる点です。
前節の説明から、テナントリソースは複数のUnitで構成されており、各Unitがノード上の一定の物理リソースを占有していることがわかりました。Unitのリソース仕様のサイズやUnit数、および業務トラフィックのUnit上での分散を調整することで、テナント容量を調整することができます。
スケーリングの実装方法によって、以下の2種類に分けられます:
垂直スケーリング
Unitのリソース仕様を調整することは、従来のデータベースにおける垂直スケーリングに相当します。
リソース仕様は、CPU、メモリ、ディスク容量、IOPSなどの一般的な物理リソース項目のサイズを定義しています。リソース仕様を調整することで、単一ノード上でテナントが占有する物理リソースを調整し、テナント容量を調整することができます。リソース仕様の調整は、容量ボトルネックに対する最も効率的かつ便利な緊急対応手段であり、データの移動が不要で、秒単位で即時に反映されます。各ノードでは、テナントの緊急拡張用に一定の物理リソースを予約する必要があります。予約リソースが不足した場合は、同ノード上の他のテナントのリソース仕様を一時的に引き下げて物理リソースを解放することができます。リソース仕様の調整によるスケーリング方式は、単一マシンの容量上限に制限されますが、OceanBaseデータベースの水平スケーリング能力はこのようなシナリオに適しており、容易に単一マシンの容量上限を突破できます。
詳細な操作手順については、リソース仕様の調整によるテナントのスケーリングを参照してください。
水平スケーリング
テナントのUnit数および業務トラフィックのUnit上での分散を調整することは、OceanBase独自の水平スケーリング方式に相当します。具体的には、Unit NumberとPrimary Zoneを増やすことでサービスノードを増加させ、テナント全体のサービス能力を向上させます。
Unit Numberの増加:このテナントが配置されているZone内のUnit数が増加し、より多くのストレージリソースと計算リソースを利用できることを意味します。
詳細な操作手順については、Unit Numberの調整によるテナントのスケーリングを参照してください。
Primary Zoneの増加:このテナントのLeaderのZone配置が増加することを意味し、Leaderは強い整合性を持つ読み書きトラフィックを担当するため、より多くの計算リソースを利用できます。垂直スケーリングと比較して、水平スケーリングはサービスノード数を増加させるため、業務データのUnit間での分散を慎重に設計し、分散トランザクションによるパフォーマンスへの影響を避ける必要があります。業務量が単一マシンの容量上限を突破する見込みがある場合は、事前にデータシャーディングの設計を行う必要があり、データシャーディングでは分散トランザクションをできるだけ回避する必要があります。
詳細な操作手順については、Primary Zoneの調整によるテナントのスケーリングを参照してください。