新著が出ます:『NewSQL徹底入門』
新刊の告知です。本年三冊目。「どんだけ書いてんだ。本業大丈夫か」と言われそうですが、まあお声がかかるうちが華と思って頑張っております。
テーマはNewSQLという分散データベースについてです。サブタイトルに「アーキテクチャからユースケースまで」とあるように、分散データベースの内部構造の工夫から、分散トランザクションの仕組み、標準SQLへの準拠状況、具体的な活用シーンといった幅広いジャンルの話題をNewSQL初学者の方にも分かりやすく説明しています。
読むにあたって、特にNewSQLについての前提知識は必要ありませんが、「NewSQLって何? 難しそう」と思った方は、簡単に概略を説明した以下の拙稿を先に読んでおくと具体的なイメージが湧くと思います。ざっくりいうと、2010年代後半に主要な製品が登場して現在広がりを見せている分散データベースの一群です。主にハイスループットを求めるウェブサービスや高可用性を求める金融などの分野で利用されています。
NewSQLにも色々な製品があるのですが、対象としているNewSQL製品は以下の通りです:
特定の実装に偏ることなく、なるべく共通的な要素に還元しつつ、特有のアーキテクチャや特性を持っている場合には付言する形になっています。他のNewSQL関連の書籍は特定の実装に依存するものが多いので、NewSQLという普遍的な概念にフォーカスしたのが本書のウリの一つです。
なお、今回は小林隆浩(@tzkb)さんとの共著となっています。自分が担当したのは、1章(序論)、5章(分散トランザクション)、6章(SQL)、7章(ユースケース)です。章立ては次の通りです。
第1章:序論 ー なぜいまNewSQLが注目されているのか
第2章:アーキテクチャから見るNewSQLへの進化
第3章:NewSQL製品ごとのアーキテクチャと機能
第4章:NewSQLの要素技術
第5章:NewSQLにおける分散トランザクション
第6章:NewSQLの標準SQL対応状況
第7章:NewSQLのユースケース
以下に序文の一部を掲載するので、購入するかどうかの判断にしてください。
NewSQL という言葉を皆さんはお聞きになったことがあるでしょうか。こ
れは、2010 年代の後半に相次いで主要な製品が登場しはじめた新しいデータベース製品を指して呼ぶカテゴリで、2020 年代に入ってから規模の大小を問わず、多くの企業で導入が進んでいます。NewSQL の開発元としては、Google 社、AWS 社といったメガベンダーとCockroach Labs 社、PingCAP社、Yugabyte 社といったスタートアップがあります。
本書は、そのNewSQL について、どのような特徴や革新性を持ったデー
タベースなのか、どのような内部アーキテクチャによってそれが実現されて
いるのかを明らかにしようとする本です。日本で読むことのできるNewSQL
についての書籍やドキュメントはまだ限られており、本格的に内部のしくみ
を解説したものとしては、はじめてになると思います。読者もこの「新しい」と自ら銘打ったデータベースの革新性を楽しみながら理解していただければと思います。
章の構成を解説しておくと、第1章では、導入として、これまでのデータベースとの特徴を比較して、NewSQL がどのような要請に応えるために登場したのかを理解します。特に、従来のリレーショナルデータベース(RDB)とNoSQL とNewSQL がどのように異なるのかが重要なポイントとなります。
第2章では、モノリシックなRDB がどのようにNewSQL へ進化したのか、アーキテクチャの変化を概観します。スケーラビリティと可用性を同時に満たすために、過去にどのようなアプローチがあったのかを体系的に学びます。
第3 章では、NewSQL 各製品の特徴を見ていきます。Google Cloud Spanner、Amazon Aurora DSQL、TiDB、YugabyteDB、CockroachDB を対象として、基本的な構成やそれぞれの特徴を表す新機能を紹介します。
第4章では、NewSQL を支える要素技術について理解します。ストレージエンジンやシャーディング、そしてデータの複製に用いられているRaft やPaxos などの分散合意アルゴリズムについて解説します。
第5章では、分散トランザクションについて取り上げます。複数のノードが
協調して動く分散データベースとしての貌を持つNewSQL の内部では、ノー
ド間で整合性をとるために複雑なトランザクション制御が行われています。
その心臓部の動作について詳しく解説します。
第6章では、NewSQL の各製品の標準SQL への対応状況について詳しく見ていきます。NewSQL の特徴の一つとして、RDB に準拠する形で標準SQL をサポートしているという点が挙げられます。これによって、RDB からNewSQLへのスムーズなマイグレーションが可能になっていますが、製品によってサポート状況に差異があり、利用に際して注意が必要です。
第7章では、NewSQL のユースケースを具体的に見ていきます。それを通して、どのようなビジネス要件にNewSQL が適しているのか、言い換えるとNewSQL の「使いどころ」はどこなのかについて理解を深めます。基本的には第1章から順次読み進めていくことを想定していますが、第1 章の導入を読んだあとは気になった章から読んで、参照をたどって他の章へ飛ぶという読み方をしていただいてもかまいません。
NewSQL は、日本ではまだアーリーアダプタによる受容が始まったところ
ですが、2025 年にAWS 社がAmazon Aurora DSQL をGA(一般公開)したほか、Oracle 社もRaft ベースの分散構成をサポートするなど、ビッグベンダーも参入を始めたホットな分野であり、現在もさまざまなユースケースが開拓されています。これからの時代における一つのデファクトスタンダードになっていく可能性を秘めた技術です。その最先端の技術の面白さを感じていただければと思います。
NewSQLという新たなデータベースのイノベーションについて、その革新性と面白さをお伝えできれば幸いです。
