タイトルの通りです。長いので以降は『SQL徹底入門』だけと表記します。Xでも投稿したのですがこの本を読んだので改めて感想文です。
この本の著者はRDBに関する著書が多く、RDBを学んだ人ならばきっとどこかでお世話になってるであろうミックさんと、これまたDB界隈では著名でありNewSQLというものに対してかなり早い段階から発信などされてた「こばさん」こと、小林 隆浩さん。
ミックさんは名前にピンとこなくても『達人に学ぶDB設計徹底指南書』とか『達人に学ぶSQL徹底指南書』のいずれかは目にしたことがあるのでは?と思っているが、これらの本の著者です。読んだことないならこちらも一読をおすすめするし、一冊手元に置いておくとDB設計する際の参考書として役に立つ。
さて、今回の本は結論から言うとRDBの信頼性とNoSQLの拡張性を「いいとこどり」しようとするNewSQLについて、アーキテクチャから実装の話まで網羅的に解説してくれる良書で、面白かったし勉強になった。
「NewSQL」の仕組みを、Google Spanner、TiDB、CockroachDBなどの実製品の具体例を交えて解説しており、データベースの進化の系譜を追うのに最適だと思う。
NewSQLはRDBやSQLのように定められた「標準」というものがないのでこの辺りを整理するのは結構大変だったのではないか。なぜなら、特定の個社製品の話と技術トレンドの話が入り混じるからだ。それを汎用的に解説するのは骨が折れるはずだが本書は見事にやっている。しかも、難しくなりすぎない絶妙な書きっぷりだと感じた。
また、単なる各NewSQLプロダクトの特徴紹介ではなく、これらを支える基盤技術要素についても一通り解説されているのは知識の幅を広げるのに良い。これも深掘りしすぎて過度に難解にならない程度に各NewSQLで共通的に用いられているRaftなどについての解説がされていて、これらは各データベースを知る上での普遍的な知識となるだろう。僕が普段から言っている特定製品・サービスの機能や使い方にだけ詳しくなるのではなく普遍的な知識を身につけろってやつですね。
というわけで以下、まとめと感想。
一貫してNewSQLとは、その特徴について仕様・アーキテクチャ・使い勝手などについて繰り返し語られている
NewSQLの話だけではなくRDBで一般的な特徴がどのような特性と振る舞いをしているのかという話の解説があった上で、それがNewSQLではどうなってるのかという対比で語られるのでRDBの勉強にもなる
要素技術の解説を読むと、その裏にある複雑さとトレードオフもわかる
Raftの話おもろい
「Spannerの原子時計 vs 他のDBでの工夫」の対比が面白かった。Googleがハードウェア(原子時計)で解決した課題を、他の製品がいかにソフトウェアで解決しているかの話おもろい
個人的には、TiDBの「タイムスタンプオラクル」というものを本書で初めて知ったんだがネーミングセンスありすぎでしょw 集権サーバーを「神の意思」として扱うとかひねりが効いてる
よく言われることだが、結局のところ銀の弾丸はない。NewSQLはRDBとNoSQLの折衷案みたいなものだが、それによって「新たなトレードオフ」が生まれているわけで、やはり銀の弾丸はなくてトレードオフの軸がずれただけだと思う。
いずれにしても、NewSQLを支える技術が生まれる大前提として、CPU、ディスクI/O、ネットワークといった物理レベルの速度向上による恩恵が大きいのは想像に難くない。それがなければ、理論があっても実現ができないのでやはり現代じゃないと生まれなかったものなんだなーと感じている。
なお、正直なところNewSQLを必要とするようなワークロードはそれほど多くないと思っていて、必然的に触れる機会も少ないとは思う。強いて言えば本書でも触れられているようなマイクロサービス環境における「DB統合」という観点での採用のほうが日本では多いかもしれない。日本ではといったが海外含めてもそうかもしれない。とはいえ、エンジニアであれば使ってみたいとは思うのでそこは悩ましいところ。試すだけなら誰でもできるがやっぱり実ワークロードで動かしてみたいじゃない。でもきっと完全にオーバースペックな現場は多そうで、そうするとコスト的に厳しくなる。
そうすると、「別に知らなくてもいいじゃないか」と思う人もいそうだが、RDBからNewSQLのアーキテクチャの変遷とかトレードオフの移り変わりとか知っておいて損はない話だと思ってる。知ったら使いたくなるが。
ちなみに市場はすでにGoogleのSpanner、Cockroach DB、TiDBあたりに収斂しつつあってそこにAWSのAurora DSQLがどう食い込むかって感じなのかな。RDBよりも圧倒的なデファクトがなくて移り変わりが落ち着き見せるのが速いのも現代的か。
普段使ってるものがどんな仕組みで動いてるのかと新しい潮流の両方を教養として知れる一冊。読みやすいし、おすすめ。


