OceanBaseデータベースは、汎用オブジェクトストレージを基盤としてシェアードストレージ(Shared-Storage、SS)モードを実装しています。シェアードナッシング(Shared-Nothing、SN)モードとは異なり、シェアードストレージモードでは計算ノードとデータストレージが完全に分離されており、ストレージリソースは必要に応じて購入でき、計算ノードは柔軟にスケーリングできるため、極めて高いリソースの弾力性とコスト最適化を実現します。
ストレージと計算の分離アーキテクチャとは
シェアードストレージを基盤として、クラウド上でストレージと計算が分離されたクラウドネイティブなデータベースサービスが提供されます。クラスタ内の複数の計算ノードは、シェアードストレージ技術によりストレージと計算が分離され、計算とストレージが分離・階層化されています。全量のデータはオブジェクトストレージに保存され、各計算ノードはホットデータをローカルキャッシュします。キャッシュヒット率は一般的に100%未満ですが、ホットデータとコールドデータを明確に区別できる業務では、シェアードストレージのキャッシュヒット率は通常99%〜99.9%に達します。キャッシュヒットしたリクエストの遅延はストレージと計算が統合されたアーキテクチャと同じですが、依然として少数のリクエストはオブジェクトストレージから読み取られ、オブジェクトストレージへのアクセス遅延は80ms以上になります。業務はある程度の遅延ジッターを許容する必要があり、遅延ジッターに非常に敏感な業務には適していません。このアーキテクチャは、ストレージと計算が統合されたアーキテクチャと比較してストレージコストを削減し、拡張も計算層とストレージ層で独立して実現できるため、より柔軟な弾力性を提供します。
アーキテクチャの利点
- 低コスト:
- 安価なオブジェクトストレージを主要なストレージ媒体として使用することで、ストレージコストを削減します。
- データストレージと計算の高可用性が分離されているため、単一レプリカに基づく高可用性モードを実現できます。
- 柔軟なリソース管理:ストレージリソースと計算リソースをそれぞれ独立してスケーリングできるため、ハードウェアリソースをより効率的に利用できます。高速なスケーリング:計算リソースを水平方向にスケーリングする際、物理的にデータを移動する必要がありません。
- 高可用性:RPO=0、単一レプリカのRTOは数分、複数レプリカのRTO<=8秒。
技術的特徴
- 独立した拡張性:計算リソースとストレージリソースをそれぞれ独立して拡張できるため、業務要件を満たすことができます。
- 高可用性:ストレージ層は通常分散型ストレージシステムを採用しており、データの信頼性と災害復旧能力が高くなります。
- リソースの分離:計算タスクとストレージタスクは互いに独立しており、リソースの競合を減らし、システム全体の安定性を向上させます。
- 柔軟な拡張性:計算とストレージが分離・階層化されているため、ストレージと計算が統合されたアーキテクチャと比較してストレージコストを削減し、拡張も計算層とストレージ層で独立して実現できるため、より柔軟な弾力性を提供します。
適用シナリオ
現在、適している主な業務シナリオは、遅延ジッターに敏感ではなく、ホットデータとコールドデータの明確な分離特性を持つ、大規模データ量のシナリオです。
- TP 複雑なクエリと分析をサポートする履歴データベース、バックアップデータベース、注文データベース、請求書データベース、メッセージデータベース、アクセス履歴データベース、ログデータベース、IoT監視データなどのストレージに適しています。例えば、規制コンプライアンス要件を満たすために、銀行は長年の履歴データを保持する必要があります。OceanBaseのシェアードストレージを使用してこれらのデータを管理することで、ストレージコストを大幅に削減できます。 このシナリオでは高可用性が求められ、無損失の災害復旧を保証する必要があります。IDCまたはAZに障害が発生した場合、RPO=0、RTO<8秒が求められます。データ読み取り遅延に対する要求は低く、大容量のコールドストレージが主で、ホットデータはローカルキャッシュされます。自動的なホット/コールド分離と手動でのホットデータルール設定をサポートします。これらは使用シナリオに対する要件であり、クラウド上の関連機能へのリンクを追加することができます。 以下の図を例に、単一リージョン・複数ゾーンのデプロイメント方式を採用し、独立したログサービス(LogService)を設定します。
- AP 海量データの低コストストレージと分析をサポートするレイクハウス業務に適しています。例えば、インターネット企業やソーシャルメディアプラットフォームは、毎日膨大なユーザー行動データを生成し、リアルタイムでランキングを生成・表示します。 このシナリオでは高可用性に対する要求は低く、IDCまたはAZに障害が発生した場合、RPO>0、RTO数十分で済みます。同時に高スループットが求められ、クエリ遅延には敏感ではありません。ホットデータはローカルキャッシュが求められ、自動的なホット/コールド分離と手動でのホットデータルール設定をサポートします。 単一レプリカのデプロイメント方式は以下のとおりです。このデプロイメント方式は単一ゾーンのデプロイメント方式であり、ゾーン内でテナントUnitを追加・削除することで水平スケーリングを実現できます。オブジェクトストレージでは、同一リージョン内の冗長ストレージまたはローカル冗長ストレージを選択できます。このデプロイメント方式では、単一ノードOBServerに障害が発生した場合、RPO=0、RTOは数分に達します。ゾーンに障害が発生した場合、RPO=0、RTOは数分に達します。
- KV 海量データストレージとクエリシナリオをサポートします。例えば、ユーザー行動ログのストレージと分析、ユーザーのクリック、閲覧、検索などの行動データを収集し、ストレージと分析を行います。 このシナリオでは高可用性に対する要求は低く、IDCまたはAZに障害が発生した場合、RPO>0、RTO数十分で済みます。同時にストレージは多くクエリは少なく、クエリ遅延には敏感ではありません。ホットデータはローカルキャッシュが求められ、自動的なホット/コールド分離と手動でのホットデータルール設定をサポートします。このシナリオでは、より低コストでワイドテーブルとKV型データストレージを実現できます。 単一レプリカのデプロイメント方式は以下のとおりです。このデプロイメント方式は単一ゾーンのデプロイメント方式であり、ゾーン内でテナントUnitを追加・削除することで水平スケーリングを実現できます。オブジェクトストレージでは、同一リージョン内の冗長ストレージまたはローカル冗長ストレージを選択できます。このデプロイメント方式では、単一ノードOBServerに障害が発生した場合、RPO=0、RTOは数分に達します。ゾーンに障害が発生した場合、RPO=0、RTOは数分に達します。