TDSQL-C for MySQLは、クラウドネイティブの設計理念に基づいており、商用データベースの安定性、信頼性、高性能、拡張性の特徴を融合するとともに、オープンソースのクラウドデータベースが持つシンプルでオープン、効率的なイテレーションの利点を兼ね備えています。同時に、拡張されたLibraDBエンジンにより、より大規模なデータ量における高性能データ分析とリアルタイムの複雑なクエリ処理のニーズをサポートできます。本稿では、TDSQL-C for MySQLの製品アーキテクチャおよび特徴を紹介します。
プロダクトアーキテクチャ図
シングルライター・マルチリーダー
TDSQL-C for MySQLでは、1つのクラスタに1つのプライマリノードと最大15個のリードレプリカノードが含まれます。プライマリノードは読み書きリクエストを処理し、リードレプリカノードは読み取りリクエストのみを処理します。
コンピューティングとストレージの分離
TDSQL-C for MySQLはコンピュートとストレージの分離設計思想を採用し、パブリッククラウド環境におけるビジネス成長に応じたクラスタの弾力的な拡張という必須要件を満たします。データベースのコンピュートノード(Database Engine Server)はメタデータのみを保存し、データファイルやRedo Logなどはリモートのストレージノード(Database Storage Server)に保存されます。各コンピュートノード間ではRedo Log関連のメタデータ情報の同期のみで済むため、プライマリノードとリードレプリカノード間のレプリケーション遅延が大幅に低減されます。さらに、プライマリノードに障害が発生した場合、迅速に新しいノードを起動してシームレスな置換を実現します。
自動リードライト分離
自動読み書き分離は、TDSQL-C for MySQLが提供する透過的で高可用性かつ自適応的なCLB機能です。データベースプロキシアドレスを設定することで、SQLリクエストが自動的にTDSQL-C for MySQLの各ノードに転送され、集約された高スループットの並列SQL処理能力を提供します。
ハイスピードリンク相互接続
全リンクRDMA(Remote Direct Memory Access)伝送をサポートしており、これによりデータを一方のコンピュータのメモリから他方のコンピュータへ直接転送でき、双方のOSの介入が不要となります。これによりクリティカルパスのシステムパフォーマンスがさらに最適化され、リクエスト遅延が低減し、I/O性能がボトルネックではなくなります。また、ストレージの複数レプリカ間でもRDMAネットワークを採用しています。
共有分散ストレージ
複数のコンピュートノードが単一のデータセットを共有するため、各ノードが個別にデータを保持する必要がなく、ユーザーのストレージコストを大幅に削減します。新設計の分散型ブロックストレージとファイルシステムに基づき、ストレージ容量はオンラインでシームレスに拡張可能で、単一データベースサーバーの容量制限を受けず、ペタバイト級のデータ規模に対応できます。
データのマルチレプリカ強整合性
データベースストレージノードのデータはマルチレプリカ形式を採用しており、データの信頼性を確保します。また、マルチレプリカのストロングコンシステンシー戦略によりデータの一貫性を保証します。データファイルは3レプリカのストロングコンシステンシーを採用し、データの信頼性を確保します。課金は「単一レプリカ」のデータ量に基づいてのみ統計されます。
マルチ自社開発エンジン統合
TDSQL-C for MySQLは、自社開発エンジンであるTXSQL(InnoDBベース)とLibraDBをサポートしています。TXSQLエンジンは、エンタープライズアプリケーションシナリオ向けに特別に最適化され、ホットスポット更新保護、SQLスロットリング、高速カラム変更、並列クエリ、データベース監査、スレッドプールなどの優れた機能を備えており、クラウドネイティブデータベースの性能と安定性を大幅に向上させます。一方、LibraDBエンジンは、大規模並列計算、ベクトル化処理機能、カラムナーストレージ、リアルタイム行指向から列指向への変換、コストベース列指向オプティマイザなどの機能を有し、大規模データに対する複雑なクエリ性能を飛躍的に向上させ、業務におけるオンラインデータのリアルタイム分析処理ニーズを十分に満たします。