クラウドネイティブで変わる「NewSQL」の意味――地球規模でデータ分散を可能にする合意プロトコルの仕組みと課題:クラウドネイティブ時代のデータベース(終)
クラウドネイティブ時代に求められるデータベースの3要件を満たすべく開発が進められているNewSQLの基本概念と、データの可用性を高める仕組みを解説する。
本連載第2回では、クラウドネイティブ化で高速化したアプリケーション開発と同様に、データベースもアジリティを獲得するためにKubernetesを利用する手法を紹介した。第3回では、クラウド事業者の障害も超えた可用性を獲得するために、マルチクラウドでデータベースを管理する手法を紹介した。
クラウドネイティブでもう一つ重要とされるスケーラビリティ、いわゆる水平方向の拡張性はこれまで部分的にしか言及してきていない。これは長い歴史を持つRDBMS(リレーショナルデータベースマネジメントシステム)において、単純にプラットフォームをKubernetesやクラウドにシフトすれば実現できるというようなものではないためでもある。
ではクラウドネイティブなプラットフォームや現在の分散システムの基礎研究上に、新しい発想でデータベースを開発したらどうだろうか。本連載最終回の今回は、SQLインタフェースを持ち、高い可用性と水平方向の拡張性を併せ持つ「NewSQL」といわれるデータベースを解説する。
NewSQLが示す概念とは
NewSQLというデータベースの1カテゴリーを指す用語は、当時流行していた「NoSQL」に対する概念として2011年ごろに登場してきた。NoSQLはSQLインタフェースを持たない代わりに、高い可用性と拡張性を実現していたが、普及するにつれてアプリケーション開発に負担を強いる例も見られるようになっていた。
2011年当時のNewSQLは、NoSQLとRDBMSの良い所取りを目指して一から開発された幾つかの製品群を指していた。その特徴はSQLインタフェースを持ち、従来のRDBMSでは難しかった水平方向の拡張性と高い可用性を同時に実現していた。当時、それらはインメモリ技術とシェアードナッシング型の水平クラスタリングで実装されていた(参考:2010年当時のVoltDBの紹介記事)。
こうした流れはパブリッククラウドの隆盛で変化していったが、NewSQLの方向性を大きく決定付けたのが2012年のSpanner論文の発表、そして2017年のGoogle Cloud Spannerの登場だった。
第1回で紹介したように、Cloud Spannerは3つのリージョンにレプリカを持ち(つまりマルチリージョンでビジネス継続性を確保し)、無制限とされる拡張性を実現している。さらにNoSQLでは妥協の対象であった、分散環境における強い一貫性を実現し、厳密性を求められながら可用性や拡張性も必要なアプリケーションで利用されている。
Spannerの論文に影響を受けて、その後幾つかの分散SQLデータベースが開発された。下表にそれらの大まかなリリース時期や、従来のRDBMSとの互換性をまとめる。
名称 | 開発元 | リリース年 | SQLインタフェース |
---|---|---|---|
Cloud Spanner | 2017年※ | 独自(ANSI 2011 SQL相当) | |
CockroachDB | Cockroach Labs | 2017年(v1.0) | PostgreSQL互換 |
TiDB | PingCAP | 2017年(v1.0.0) | MySQL互換 |
YugabyteDB | Yugabyte | 2018年(v1.0.0) | PostgreSQL互換 |
分散SQLデータベースの一例(※ただしSpannerはGoogle社内で以前から大規模に利用されていた) |
上表のうち、Cloud Spanner以外のデータベースは基本的にOSS(オープンソースソフトウェア)として開発されている。可用性や拡張性などの観点で従来RDBMSの課題を解消しながら、アプリケーション開発で広く利用されているMySQLやPostgreSQLと互換性を持ち、Google Cloud以外のプラットフォームで利用可能である点で、Cloud Spannerとの差別化が図られている。
なお、いずれのベンダーも自社の製品をNewSQLとは呼称していない。彼らはそれぞれの製品を「Distributed SQL Database」と呼んだり、Cloud NativeやHigh-Performanceなどの形容詞で説明したりすることが多い印象だ。
本記事の後半ではSpannerに影響を受けて開発された分散SQLデータベースを、海外メディアでよく使われる分類にならいNewSQLと呼ぶことにする。
Spanner以降のNewSQLにはそれ以前の特徴に加えて、広域の地理的分散という特徴が加わる。つまりパブリッククラウドやオンプレミスにおいて、複数地域のデータセンターにまたがったデータ複製を実現している。この特徴は以前よりプロプライエタリのRDBMSやエンタープライズ向けのストレージ機器で実現していたが、それらをソフトウェアレベル、しかもOSSで実現している点にNewSQLの価値がある。
以降ではNewSQLがどのようなアーキテクチャで、ここまで解説してきた特徴である「高い可用性と水平方向の拡張性を持ち、地球規模で分散可能なSQLデータベース」を実現しているかを解説していこう。
NewSQLの設計思想
Copyright © ITmedia, Inc. All Rights Reserved.