SQLの都市伝説。マイケル・ストーンブレイカー御大が斬る!

2010年7月22日

データベース研究者の大御所、マイケル・ストーンブレイカー氏が、「SQL URBAN MYTHS」(SQL都市伝説)というWebセミナーを、自身が創設した会社VoltDBで公開しています。

一般にリレーショナルデータベースに対して言われている「SQLは遅すぎる、トランザクションのコストは高すぎる」といった評価について、SQLが遅いのではないし、トランザクション以外のコストが高すぎるのだ、と反論する内容。

これらは同氏が以前から主張してきた内容ではありますが、最近流行しているNoSQLデータベースに対する反論にもなっているため、多くのエンジニアに刺激になる内容となっています。

SQLに関する6つの都市伝説

都市伝説1:SQLは遅すぎる。NoSQLのような低レベルなインターフェイスを使うべき
都市伝説2:キーバリュー型が有望で、SQLは問題外
都市伝説3:SQLデータベースはスケーラブルではない
都市伝説4:オープンソースでスケーラブルなSQLエンジンは存在しない
都市伝説5:ACIDは遅すぎるので避けるべきだ
都市伝説6:CAP理論では、CA(一貫性と可用性)よりもAP(可用性と分断耐性)を選ぶべき

これらの多くは、SQLに準拠し、ACIDに対応したシェアドナッシングなVoltDBで反論できる。

fig

都市伝説1:SQLは遅すぎる。NoSQLのような低レベルなインターフェイスを使うべき

なぜSQLが遅いのか?

つまり、性能はSQLそのものとは関係ない。インターフェイスや実装の問題である。

fig

都市伝説2:キーバリュー型が有望で、SQLは問題外

VoltDBなら、SQLのストアドプロシージャの上にキーバリューのインターフェイスを持っていますよと。多くの機能を持つSQLが少ない機能のキーバリュー型をサポートするのは簡単。MySQLだってMemcachedを使えばそうなる。

fig

都市伝説3:SQLデータベースはスケーラブルではない

最近のはそうでもない。いくつかマルチノードに対応していないものはあるが、多くは対応している。

fig

都市伝説4:オープンソースでスケーラブルなSQLエンジンは存在しない

VoltDBはオープンソースだよ! (なぜかMySQLやPostgreSQLに言及なし上記でMySQLやPostgreSQLはスケーラブルではないと指摘しているため、除外されている)

fig

都市伝説5:ACIDは遅すぎるので避けるべきだ

ACIDとは要するにしっかりしたトランザクション処理のこと。実際には銀行など多くのアプリケーションがACIDを要求しているし、もしACIDを使わなければアプリケーションがさらに複雑になってしまう。

今後は、より多くのシステムがACIDを求めてくるだろう。こうした要件に対してACIDを使わないのは問題外だ。

fig

現実に多くのデータベースは1テラバイトもないはずなので、すべてオンメモリでの処理ができるようになるだろう。しかも、DBMSの処理のほとんどはリカバリ処理(の準備)、バッファプール管理、ロッキング、ラッチなどの余計なものがほとんどなのだ。

ACIDにかかるコストは実は小さなものであり、それ以外の部分が実は問題になっているのだ。

fig

都市伝説6:CAP定理では、CA(一貫性と可用性)よりもAP(可用性と分断耐性)を選ぶべき

CAP定理のC(一貫性)、A(可用性)、P(ネットワーク分断耐性)のどれを選ぶべきかは、ある意味宗教的な議論だ。

順序に依存した処理の場合(例えば、ある社員を100ドル昇給させたあと、さらに10%昇給させるといった処理)では、ネットワーク分断耐性と結果整合(Eventual Concistency)では順番が保証されないため対応できない。また、在庫がゼロのときに注文を受けてはならない、といった制約にも対応できない。

VoltDBなら…

そしてVoltDBなら、こうしたSQLの都市伝説を打ち破る製品だと紹介しています。メインメモリをストレージとして使うため、バッファプールがなく、トランザクション処理は軽く、ロックもラッチもない。しかもACIDに対応すると。

fig

VoltDBのアーキテクチャについては、6月1日の記事「NoSQLを上回る性能のVoltDB、そのアーキテクチャとは」で紹介しているのでご参照ください。

このエントリーをはてなブックマークに追加
follow us in feedly

タグ : リレーショナルデータベース



≫次の記事
Twitter、急成長に対応するため独自のデータセンターを年内設置へ
≪前の記事
楽天、性能向上を分散オブジェクトキャッシュで実現。将来のデータ構造変革のプラットフォームとしても期待

Loading...

Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求しています。
詳しいプロフィール


Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed



Publickey 最新記事 10本

Publickey Topics 最新記事 10本


PR - Books


fig

fig

fig

fig



blog comments powered by Disqus