同セッションでは、ギットハブ・ジャパン合同会社のSongmuさんに、この四半世紀でデータストアの定番がどのように移り変わってきたかを、memcachedからKVS戦国時代、そしてOSSのRDBMS隆盛に至るまで、時代背景やハードウェア制約の変化と絡めてお話しいただきました。ぜひ本編のアーカイブ動画とあわせてご覧ください。
Songmu:今回は「Web系OLTPにおけるデータストア技術選定変遷の私感的史観」という長いタイトルでお話をさせていただきます。以前からお話ししたかった内容だったので、いい機会なのでまとめました。
まず前段として、OLTPとOLAPという2つの分類があります。OLTPはOnline Transaction Processingの略で、リアルタイム性が求められる処理に使うデータストアの特性です。Webサービスの裏側のメインのデータベース(DB)はこうした特性のデータストアで構成されていて、今回お話しするのは主にこちら側です。一方のOLAPはOnline Analytical Processingの略で、いわゆるデータウェアハウスですが、こちらは今回のスコープ外となります。
今の自分のスタンスとしては、やはりRDBMSをちゃんと使えば大抵のことはできますし、かなりのアクセスは捌けると考えています。いたずらに分散したり複数のミドルウェアを併用すると逆に複雑になってしまいます。RDBMSで足りない部分をRedisで補うのが好きで、たまに使ったりもします。分析系はBigQueryを使うことが多いです。最近だとChatGPTのPostgreSQLのスケーリングの話も話題になりましたが、あの規模でも書き込みのメインのPostgreSQLは1台という形でやれているそうです。RDBMSをちゃんと扱うことが基本的には大事だと考えています。

人類はSQLから逃れられない
もうひとつ、人類はSQLから逃れられないと思っています。SQLに好き嫌いはあると思いますが、もはやエンジニアだけでなく、データアナリストやリサーチャーにとっても重要な汎用スキルになっています。例えば英語は自然言語としてあまり出来のいい言語ではないと思いますが、エスペラント語のようにもっと人工的に考えられた言語があっても結局みんな英語を使ってしまいます。それに似た話だと感じています。NoSQLを含むいろいろなデータストアが、後付けでSQL的なインターフェースを提供してしまうのもそうした流れのひとつではないでしょうか。
残念ながら人類には、置き換えが望まれるのだけれども現実的には困難な技術がいくつかあると思っています。シェルスクリプト、C言語、正規表現、そしてSQLもその中に入るのではないかと感じています。最近ではYAMLもそうかもしれません。
このトークでは、これまで自分が経験してきた時代の変遷の中で、データストア選定がどのように変わってきたかをいくつかの切り口でお伝えします。

