「NewOLTPの時代にNewSQLが求められている」 マイケル・ストーンプレイカー氏
Web時代に生成される大量のデータを、トランザクションを維持しつつ処理できる新しい種類のデータベース「New SQL」が求められていると、データベース研究者の大御所、マイケル・ストーンブレイカー氏が米計算機学会ACM(Association for Computing Machinery)のコラム「New SQL: An Alternative to NoSQL and Old SQL for New OLTP Apps」(New SQL:New OLTPアプリケーションのための、NoSQLやOld SQLに替わるデータベース)で書いています。
これまで企業の情報システムの定番は、受発注処理などを行うOLTP向けのデータベースがあり、そのデータをETLでデータウェアハウスに集めて分析を行うものでした。
ストーンプレイカー氏はこうしたこれまでのデータベースに対する要件は「Old OLTP」であり、そのためのデータベースは「Old SQL」だった、と書いています。
“the Web changes everything,” and I have noticed a very different collection of OLTP requirements that are emerging for Web properties, which I will term “New OLTP.”
“Webがすべてを変える”、そしてWebによってデータベースに対するこれまでとはまったく異なる要件が登場してきている。それを“New OLTP”と呼ぼう。
このように「New OTLP」という新しいニーズが登場していることを示唆します。New OLTPとはどんな要件なのでしょうか?
NoSQLの性能とトランザクション機能を合わせ持つ
ストーンプレイカー氏はNew OLTPに関して2つの要件をあげています。
The need for far more OLTP throughput.
圧倒的に高いOLTPスループットの必要性
Webアプリケーション、例えばオンラインゲームのプレイ情報、スマートフォンからの位置情報など、そのアプリケーションが人気になればなるほど大量のデータが押し寄せてくるため、そうしたデータを処理できるだけの性能が必要とされると。
The need for real-time analytics.
リアルタイム分析の必要性
いまユーザーがどんなゲームをしているのか、スマートフォンのユーザーの周囲に何があるのか、こういったクエリは、従来のBI的な方法では実現できない。
こうしたNew OLTPのニーズは、例えば電子商取引の企業にとってはつねに大量のトランザクションを監視しなければならないなど、今後さらに広がっていくというのがストーンプレイカー氏の主張です。
そして、Old SQLはNew OLTPの要件に答えられず、また最近注目されているNoSQLにはACIDを満たすトランザクション機能がなく、SQLのような共通言語がないために開発効率が悪い点で、New OLTPの要件を満たさないとしています。
そこで「New SQL」の登場です。
New SQL. Systems are starting to appear that preserve SQL and offer high performance and scalability, while preserving the traditional ACID notion for transactions. To distinguish these solutions from the traditional vendors, we term this class of systems “New SQL.” Such systems should be equally capable of high throughput as the NoSQL solutions, without the need for application-level consistency code.
New SQL。SQLを備え、高性能かつスケーラビリティを提供、従来のACIDなトランザクションを実現するシステムが登場し始めている。これまでのベンダによるソリューションと一線を画すため、これらを“New SQL”と呼ぼう。これらはNoSQLのような高スループットを実現しつつ、(トランザクション機能を備えているため)アプリケーションレベルで一貫性の実装をする必要がない。
日本での注目はこれからか
ストーンプレイカー氏はNew SQLの具体的な製品名として、Clustrix、NimbusDB、VoltDB の3つをあげています(VoltDBはストーンプレイカー氏自身による企業の製品)。
Clustrixはクラスタ上の並列分散データベースで、マルチバージョニングによってロックを使わずに並列性を高めるアプローチのデータベース。
NimbusDBはクラスタのノードがピア・ツー・ピアとなっており、データベースのファイルやトランザクションログを複数ノードで処理することでボトルネックを解決すると説明しています。
VoltDBは以前の記事「NoSQLを上回る性能のVoltDB、そのアーキテクチャとは」で書きましたので、少し引用します。
VoltDBは、シェアドナッシングなサーバ群から構成されるスケーラブルなクラスタ上の分散されたインメモリデータベースである。
(略)
ロック、ラッチ、リソース管理のようなオーバーヘッドを排除しつつトランザクションの一貫性を備えるために並列的なシングルスレッド処理によるデータアクセスを行う。
いずれも面白そうなアーキテクチャのデータベースばかりです(と思うのは僕だけでしょうか)。
これらのデータベースは日本ではまだあまり話題になっていませんが、ストーンプレイカー氏が主張するように、スケーラビリティのあるOLTP向けデータベースのニーズはこれからエンタープライズ市場で高まってくることでしょうから、いずれ注目される日がくるのではないでしょうか。ただ日本のエンタープライズ市場には、ベンチャーのデータベースが食い込むのはかなり難しそうな感じはしますが……