MySQL+Memcachedの時代は過ぎ、これからはNoSQLなのか、についての議論

2010年3月8日

グーグルでMySQLエンジニアリングチームを率いたのち、現在はFacebookに在籍しているMark Callaghan氏がブログ「High Availability MySQL」にポストしたエントリが発端になって、MySQL+Memcachedの時代は過ぎたのか? という議論が巻き起こっています。

元グーグルMySQL担当エンジニアが弱気な発言?

High Availability MySQL: Plays well with others

Callaghan氏がポストしたエントリ「Plays well with others」は次のような一文で始まり、MySQLについてややシニカルに書かれているように読めます。

A few years ago MySQL+memcached and PostgreSQL+memcached were the only choices for high-scale applications. That has changed with the arrival of NoSQL.

数年前まで、MySQL+memcachedやPostgreSQL+memcachedの組み合わせは、スケーラブルなアプリケーションのための唯一の選択肢だった。しかしその状況はNoSQLの登場で変わった。

Callaghan氏はNoSQLに全面的な支持を表明するわけではないにしても、NoSQLはスケールをサポートするデータベースとして見ている、と書いています。ただしSSDの登場により、コモディティとなった安価な製品の組み合わせでI/O性能を向上できることが、MySQLからNoSQLへの変化を減じることになるかもしれない、とも書いています(NoSQLについては記事「「NoSQL」は「Not Only SQL」である、と定着するか?」を参照)。

そうした状況の中で、MySQLはNoSQLの進化に後れを取っており、MySQLの内部は複雑で変えていくのが難しいと、Callaghan氏は次のように書いています。

NoSQL systems are improving faster than MySQL, MySQL has focused on features for the enterprise RDBMS market in the past two releases and the changes we need from MySQL are hard to implement.

NoSQLの改善はMySQLよりも速く進んでいる。MySQLは過去2つのリリースでエンタープライズRDBMSにフォーカスし、かつ、難しい実装を変えようとチャレンジした。

Change is hard because MySQL is a complex server that supports many features. Change is also much harder than it should be because of the MySQL coding style. Parts of it are not modular and features are entangled.

MySQLを変化させることは難しい、なぜなら複雑で多くの機能を備えているためだ。MySQLのコーディングスタイルのため、その難しさは必要以上ですらある。内部はモジュラー化されておらず、機能も込み入っているためだ。

また、MySQLへの協力者たちも最近ではNoSQLのプロジェクトの方に取り組んでいたり、MySQLへの取り組みもDrizzleMariaDBといった派生プロジェクトなどに分かれてしまっているとCallaghan氏は書いています。

MySQL+memcachedの時代が終わったわけではない

High Scalability - High Scalability

Callaghan氏のこの記事を受けて、ブログ「High Scalability」はエントリ「MySQL and Memcached: End of an Era?」をポストしています。

このエントリでは著者のTodd Hoff氏が「it's clear the MySQL+memcached era is passing.」(MySQL+memcachedの時代は明確に過ぎ去った)とはっきり書いています。

その理由として、DiggがCassandraを、TwitterもCassandraを、LinkedInがProject Voldemortを、それぞれMySQLに代わるスケーラブルなデータベースとして本格的に検討していることを挙げています。

このエントリにすぐ反応したのが、Memcachedのディストリビューションなどを作成しているGear6のスタッフでDrizzleにもデベロッパーとして参加しているMark Atwood氏。Gear6のブログに「The death of Memcached is greatly exaggerated」そして「MySQL+Memcached is still the workhorse」と2つのエントリを続けてポストしています。

The death of Memcached is greatly exaggeratedで、Atwood氏は次のように書いています。

The era of memcached being THE cutting edge technique for getting speed at scale may be "ending", but not because memcached is failing, but because there are additional (not replacement, additional) techniques now emerging.

スケールが必要なときの最新技術としてのmemcachedの時代は終わったかもしれない。それはmemcachedが失敗したからではなく、新たな付加技術が台頭しているためだ。

Atwood氏は、以前はMySQLをスケールする技術「Sharding MySQL plus memcached」を知る人はほとんどいなかったが、いまではそれは広く知れ渡るようになった、と説明した上で、さらに負荷に対応する技術を開発し続ける中でNoSQLも登場したのだと、NoSQLを位置づけています。

But that won't be the end of memcached. The technique of the high-performance key-value store is just to useful of a building block, both on it's own, and as a sub-component of other technology components, to just throw out.

しかしそれはmemcachedの終わりを示すものでもない。高性能なキーバリュー型データストアは、使いやすいビルディングブロックなのだ。どちらも(memcachedもNoSQLも)それ自身、ほかのテクノロジーの使いやすいサブコンポーネントなのだ。

そしてMemcachedは今後も進化し続けるとまとめています。

I'm sure that memcache will continue to evolve. There will be more implementations, there will be limitations removed, there will be more management tools, there will be other systems that add the memcached network protocol, there will be ORMs and other frameworks

私はmemcachedがこの先も改善され続けることを確信している。まだまだ多くの実装を行い、制限を取り払わなければならないし、管理ツールも必要だし、プロトコルの追加も、オブジェクトリレーショナルマッピングやフレームワークも作って行かなくてはいけない。

NoSQLの話題が急に増える

米国のブログでは最近NoSQL系の話題が急激に増えてきたようです。例えば、2月24日にはAmazonクラウドの大御所James Hamilton氏も「I love eventual consistency but...」というエントリを書いていますし、2月23日にはTwitterがCassandraというNoSQLデータベースを検討していることについてのインタビュー記事「Cassandra @ Twitter: An Interview with Ryan King」もニュースサイト「myNoSQL」も掲載され話題になりました。

2月2日には旧ボーランド、現エンバカデロのDavid Intersimone氏が「The end of SQL and relational databases?」という記事をComputerworldのブログにポスト。それに対してソフトウェアアーキテクトのDennis Forbes氏が自身のブログで「Getting Real about NoSQL and the SQL-Isn't-Scalable Lie」というエントリをポストしています。

このように話題が増えたのは、本文中に書いたようにTwitterやLinkedInなどの大規模サイトがNoSQLデータベースの採用に向かって真剣に取り組んでいることを背景に、NoSQLの実用化が進展しつつあるからなのかもしれません。

追記:Mark Callaghan氏は現在Facebookに在籍という指摘をいただいて修正しました。

関連記事

あわせて読みたい

NoSQL データベース




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

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

最新記事10本