本ページでは、分散データベースが不可欠となった理由、およびそのニーズに対応するために PolarDB-X がどのように進化してきたかを説明します。技術的な意思決定者、アーキテクト、エンジニアなど、PolarDB-X の設計思想を理解したい方を対象としています。
分散データベースが必要となる理由
データベース、オペレーティングシステム、ミドルウェアは、エンタープライズ向けシステムソフトウェアの「三本柱」です。すべてのアプリケーションはデータをデータベース層を経由して処理するため、そのパフォーマンスおよび安定性は、上位レイヤーのアプリケーションの動作品質を直接左右します。
データベース基盤の規模は、この中心的役割を如実に反映しています。ガートナー社の 2017 年調査によると、世界におけるエンタープライズ向け基本ソフトウェアの売上高は 1958 億 5200 万米ドルであり、そのうちデータベース分野は 388 億米ドル(全体の 20 %)を占めています。
従来アーキテクチャの限界
従来のエンタープライズ向け決済システムは、IOE アーキテクチャ(IBM 製のメインフレームまたはミニコンピュータ、Oracle 製のデータベース、EMC 製のストレージ)に依存していました。このアーキテクチャはコストが高く、ベンダーへの強い依存関係を生み出します。
さらに重要なのは、水平スケーリングができない点です。モバイルインターネットの普及や、e コマース取引量の急増に伴い、特に「独身の日」ショッピングフェスティバルでは、物流、決済、倉庫管理システム全体で指数関数的に増加するトラフィックスパイクが明らかになりました。その結果、単一の高性能サーバーのパフォーマンス上限が、システム拡張の硬直的な制約となりました。ムーアの法則は減速し、垂直スケーリングはもはや現実的な解決策ではなくなっていました。
金融機関も同様の圧力に直面しました。包括的ファイナンスおよびデジタル決済の普及により、コア口座間での高頻度トランザクション処理、モバイル決済シナリオへの対応、リアルタイムなトランザクションモニタリングといった要件が、大規模な環境下でも実現されるシステムが求められるようになりました。
次世代に求められる機能
スタンドアロン型データベースでは、これらの要件を満たすことはできません。次世代の分散データベースには、以下の機能が求められます。
高い可用性およびディザスタリカバリ:金融機関レベルのデータ耐久性およびフォールトトレランス。
水平スケーリング:コンピューティングおよびストレージを、必要に応じて独立してスケール可能。
低コストのストレージ:高価な専用ハードウェアではなく、クラウドネイティブな経済モデルを採用。
透過的な分散処理:アプリケーションは、スタンドアロンの MySQL インスタンスと同様の方法でデータベースとやり取りできます。
ハイブリッドトランザクショナル・アナリティカル・プロセッシング(HTAP):トランザクションワークロードと分析クエリを、単一のシステム内で同時かつ効率的に処理可能。
新規ハードウェアとの統合:リモート・ダイレクト・メモリアクセス(RDMA)などの先進技術を活用し、パフォーマンスをさらに向上させる。
PolarDB-X の概要
PolarDB-X は、Alibaba Cloud が開発したクラウドネイティブな分散データベースサービスです。DRDS(Distributed Relational Database Service)の SQL エンジンと、Alibaba 社が独自開発した分散データベース X-DB のストレージ技術を統合しています。ユーザーは、スタンドアロンの MySQL データベースと同様の方法で PolarDB-X を操作できます。分散アーキテクチャによるスケーラビリティは、内部で透過的に処理されます。
PolarDB-X は、数千万の同時接続および数百ペタバイト規模のデータストレージをサポートします。本サービスは、以下の 4 つのコア課題の解決を目的として設計されています。
大量データのストレージ
超高速な同時実行スループット
大規模テーブルにおけるパフォーマンスボトルネック
複雑な分析クエリの実行効率
PolarDB-X は、複数回の「独身の日」ショッピングフェスティバルにおいて実証済みであり、金融、決済、教育、通信、公共事業などの分野の顧客にも導入されています。Alibaba Group 全体のコアオンラインビジネスにおいて、標準的な分散データベースサービスとして採用されています。
PolarDB-X の進化
PolarDB-X のアーキテクチャは、Alibaba グループが 10 年以上にわたり実運用で蓄積した経験に基づいて構築されています。
2003 年~2009 年:LAMP から de-IOE へ
Taobao は 2003 年に LAMP スタック(Linux、Apache、MySQL、PHP)上でサービスを開始しました。しかし、ユーザー数の急増に伴い、スタンドアロンの MySQL では処理能力が不足し、Taobao は Oracle への移行を実施しました。それでも、Oracle データベースは Taobao のビジネス規模に対応できませんでした。
2009 年、Alibaba Group は IBM、Oracle、EMC への依存を排除する「de-IOE キャンペーン」を開始しました。これは、自立した技術を用いた代替ソリューションの体系的な構築を目指す取り組みであり、PolarDB-X の出発点となりました。
TDDL:シャーディングによるスケーラビリティの実現
de-IOE キャンペーンでは、Oracle の代替として TDDL(Taobao Distributed Data Layer)を開発しました。TDDL はオープンソースの MySQL エンジンを基盤とし、AliSQL と組み合わせて使用されます。TDDL は、データベースのシャーディングおよび分散アーキテクチャによってスケーラビリティを実現しました。この時期には、x86 アーキテクチャが十分に成熟し、汎用サーバーでもミニコンピュータと同等の安定性を確保できるようになっていました。また、MySQL の軽量スレッドモデルは、高同時実行ワークロードにおいても競争力を持つものでした。
TDDL は、内部向けのシステムアーキテクチャであり、製品として提供されたものではありません。
DRDS:クラウドデータベースサービス(2014 年)
2014 年、TDDL アーキテクチャが成熟した段階で、Alibaba Cloud はシャーディング技術を製品化し、DRDS(Distributed Relational Database Service)という分散型クラウドデータベースサービスをリリースしました。DRDS は DRDS 自体と ApsaraDB RDS for MySQL を基盤としており、共有なし(share-nothing)アーキテクチャを採用し、ストレージ拡張に重点を置いていました。これにより、データベース機能をマネージドサービスとして初めて提供することが可能になりました。
PolarDB-X 1.0:ミドルウェアから分散データベースへ(2019 年)
Alibaba Cloud は、DRDS の機能を継続的に拡張し、ミドルウェアから完全な分散データベースサービスへと進化させました。
カーネル機能:分散トランザクション、グローバルセカンダリインデックス(GSI)、非同期 DDL
SQL 互換性:サブクエリのネスト解除、JOIN クエリのプッシュダウン
運用機能:スムーズなスケールアウト、整合性のあるバックアップおよび復元、フラッシュバッククエリ、SQL 監査
2019 年、この進化は新たなマイルストーンに到達し、PolarDB-X が独立したプロダクトラインとしてリリースされました。
PolarDB-X 2.0:クラウドネイティブアーキテクチャ(2021 年)
2018 年時点で、コンピューティング層には根本的な限界が明らかになっていました。具体的には、リピータブルリード分離レベルの保証が困難であること、SQL 互換性の制約により計算のプッシュダウンが制限されること、データクエリおよび伝送の効率が低いこと、およびレプリカ間で線形整合性を保証できないことなどです。これらの課題は、一つの結論を示唆していました:コンピューティング層とストレージ層の深層連携が必要であるということです。
この課題に対する解決策は、以下の 3 つの実績あるコンポーネントを統合することに基づいています。
DRDS SQL エンジン:SQL 処理および最適化を行うレイヤー
X-DB:Alibaba 社が独自開発した分散ストレージ。AliSQL を基盤とし、X-Paxos プロトコルライブラリおよび X-Engine ストレージエンジンを採用。信頼性を確保しつつ低コストを実現するため、三副本方式を採用
PolarDB クラウドネイティブアーキテクチャ:RDMA を活用したストレージ・コンピューティング分離。プライマリノード 1 台と読み取り専用ノード 1 台以上から構成されるクラスターを実現し、秒単位復元および自動スケーリングを可能にします
2021 年、Alibaba Cloud はこれら 3 つの要素を統合した PolarDB-X 2.0 をリリースしました。PolarDB-X 2.0 は、スタンドアロン型データベースでは解決できない課題に焦点を当てています。具体的には、分散システムにおける強力な整合性、スタンドアロンから分散環境へのスムーズな移行、低コストのクラウドネイティブストレージ、およびオンデマンドな自動スケーリングです。
PolarDB-X 2.0 は、以下の 3 種類のデプロイモードでご利用いただけます。
Alibaba Cloud(マネージドサービス)
Apsara Stack(オンプレミス)
ライトウェイトソフトウェア版