全5286文字

RDBMSの一貫性とNoSQLの拡張性を兼ね備えたデータベースを「NewSQL」と呼ぶ。米グーグルの「Cloud Spanner」はその代表的なサービスである。オープンソースのRDBMSであるPostgreSQLとの互換性を備え、移行性も配慮している。

 米グーグルの「Cloud Spanner」はGoogle Cloudで利用できる「NewSQL」のマネージドサービスです。NewSQLとは2010年ごろから出てきた、これまでにない特性を持ったデータベース製品のカテゴリーを指す言葉です。RDBMS(リレーショナルデータベース管理システム)の特徴であるACID特性(Atomicity=原子性、Consistency=一貫性、Isolation=独立性、Durability=耐久性)と、NoSQLの特徴である更新性能の拡張性を兼ね備えています。

一貫性と拡張性を両立

 RDBMSは厳密なトランザクション管理、堅牢で復元可能なデータ永続性を備え、現在でも多く利用されています。同時並行でトランザクションが実行されても、誤ったデータ読み書きをせずに処理できることが、DBの基本的な特性として求められてきた背景があります。

 これに対してACID特性のうち一貫性を犠牲に、つまりタイミングによっては更新前の古いデータを読むことを許容して、性能の拡張性を高めたのがNoSQLです。RDBMSのほとんどが更新処理を単一ノードでのみ実行して一貫性を保つのに対し、NoSQLは一貫性を犠牲にして、複数のノードで並行して更新処理を実行できるようにして拡張性を得ました。

 しかし業務において一貫性はニーズが高い特性です。RDBMSが中心的なDBの地位を保ち、NoSQLはRDBMSが苦手な部分を補完する用途で、組み合わせて使うのが主流です。長らく一貫性と更新性能の拡張性は両立しないと考えられていましたが、その常識を覆したのがNewSQLであり、その初期にグーグルによって開発され、クラウド上のDBサービスとして2017年に登場したのがCloud Spannerです。

図 NewSQLの位置付け
図 NewSQLの位置付け
ACID特性をサポートし、拡張性も高い
[画像のクリックで拡大表示]

可用性が高く性能を上げやすい

 Cloud SpannerにはNewSQLならではの特徴、利点があります。

 第1に可用性の高さです。Cloud Spannerは可用性に関して、99.999%のSLA(サービス・レベル・アグリーメント)が設定されています(後述するマルチリージョン構成の場合)。これは年間停止時間が5分強となる数字であり、代表的なRDBMSのマネージドサービスの設定値である99.95%、年間停止時間で4時間強より高い目標設定です。マスターノードの障害で一時的な停止が発生するRDBMSに比べて、NewSQLは複数ノードで分散処理します。そのためノード障害の影響を受けにくいのが一因と考えられます。

 「ゼロダウンタイム」でのメンテナンスが実装されている点も寄与しています。処理を継続しながらメンテナンスを実行するため、計画的なダウンタイムがありません。これはGoogle Cloud自体が備える特徴です。これまで可用性に関するSLAが要件に合わず、クラウドの利用をためらっていたシステムでも、クラウドへの実装が検討できるようになります。

 リージョンをまたいだ分散処理(マルチリージョン)にも対応できます。システムの利用者が複数の国・地域にいて域内以外にクラウドの拠点を設ける場合、Cloud Spannerは例えば「アジア」内、あるいは「北アメリカ・ヨーロッパ・アジア」といった地域をまたいだ2つのマルチリージョン構成を取れます。マルチリージョン構成の場合も一貫性は保たれ、各リージョンで更新、参照の両方の処理を実行できます。マルチリージョン構成での動作がCloud Spannerのネーティブな設計で、特別な設計や構築は不要です。