Database WatchDatabase Watch 2012年2月版

どっちが面白い? ドキュメント指向データベース

加山恵美
2012/2/21
NoSQLと言えば、Hadoopやmemcachedのように、大量のサーバで分散処理をすることで、高い処理性能を引き出すためのものというイメージを持たれている方もいるかもしれません。しかし、NoSQLにもいろいろあります。昨年から注目を集め始めたのが「ドキュメント指向」と称するデータベース管理システムです。ドキュメント指向データベース管理システムの中でもユーザー数でトップを争うMongoDBとApache CouchDB(Couchbase)のイベントに参加してきました。

開発メンバーが来日、MongoDB Tokyo 2012

 1月18日、東京でMongoDB Tokyo 2012というMongoDBユーザー向けのイベントがありました。このイベントはオープンソースのドキュメント指向データベース管理システム「MongoDB」を開発している10genが主催したものです。

 10genはアメリカに本拠を置く企業で、MongoDBの開発だけでなく、有償サポート、トレーニング、導入時のコンサルティングなどを手がけています。まさしく、MongoDBの普及活動に、先頭に立って取り組んでいます。イベントの講演資料はWebで一般公開されています。興味のある方はWebサイトをチェックしてみてください。プレゼンテーションで使ったスライドを見ることができます。

 イベント前半では、10genの社長であるMax Schireson(マックス・シルソン)氏がMongoDBの概要について語り、同社のService & Enterprise Engineering部門でSenior Directorを務めるAlvin Richards(アルヴィン・リチャーズ)氏(写真)がMongoDBにおけるスキーマの考え方、そして効率良く性能を引き出し、かつ可用性を確保するハードウェア構成について語りました。最初に考えるべきことは「データ保護、ディスクとメモリのサイズ、負荷テストと処理性能のリアルタイム監視、バックアップとリストア、運用マニュアル」の5点だそうです。

 MongoDBはスキーマレスなデータベースです。これは、リレーショナルデータベース管理システム(RDBMS)のように、データを格納するテーブルの構造を事前しっかり決める必要がないということです。

 リチャーズ氏らの講演によると、スキーマレスであるため、アプリケーションの開発が楽になるということが大きな特長として開発者に受け入れられているそうです。そして、数多くのプログラミング言語に対応したデータベースドライバが存在するところも見逃せません。ダウンロードページを見ると、40種類以上のドライバがあります。このように、開発に使える言語の選択肢が幅広いこともポイントです。

 後半は一般的な勉強会のように、コミュニティメンバーが実際にMongoDBを導入するに至った経緯や、導入、運用の過程から得られた知見について発表していました。具体的に、今回のテーマとなった導入事例は2つ。楽天のニュース記事配信システムと、サイバーエージェントがFacebookに展開しているゲーム「AnimalLand」です。導入前にどんなことを検討したか、実際にどんなトラブルに直面したかという、とても生々しいお話を伺うことができました。

社長と副社長のお話をお聞きする機会をいただきました!

 今回のMongoDB Tokyo 2012に取材のために参加したら、何と、イベントのために来日した10genの社長であるMax Schireson氏(写真右)と、副社長を務めるErik Frieberg(エリック・フリベルグ)氏(写真左)に、インタビュー形式でお話を直接伺う機会をいただきました。

 まずはMongoDBの人気と、今後の大まかなスケジュールについてお聞きしました。10genのサイトで公開しているMongoDBのダウンロード数はおおよそ月間10万ほど。およそ半数がLinux版だそうです。現在のProduction Release(安定している正式版)はバージョン2.0.2。次期版は「バージョン2.2」となり、「2012年第1四半期」に登場する予定とのことです。

 Schireson氏は「2.2では300もの新機能を盛り込みます。中でも、ロックがかかったときの処理性能改善と、アグリゲーションフレームワークは大きな反響を呼ぶでしょう」と新バージョンの注目点について教えてくれました。

 現在の最新バージョンであるバージョン2.0.2では、データベースを編集すると、データベース全体にロックがかかってしまい、ほかの処理要求を受け付けません。多くの場合、編集はすぐに終わるので、長時間待たされることはあまりありませんが、今の仕様は処理性能に悪い影響を与えていると言えます。

 このような事情から、ロックに関する仕様にエンジニアは非常に注目しており、製品解説のセッションでもロックに関する質問が多く出ていました。次期版ではロック時の制約と、ロックの方法を改善する予定だとのこと。

 もう1つの注目の新機能が、アグリゲーションフレームワーク(正確にはバージョン2.1から利用可能)です、SQLのように、比較的短いクエリでデータの抽出、集計などを可能にするものです。膨大なデータを集計するには、Map-Reduceなどの分散並列処理が効果を発揮しますが、Map-Reduceを利用するのはあまり簡単とも手軽とも言えません。アグリゲーションフレームワークは、ちょっとしたデータの集まりの総和を知りたいといったときに便利に使える機能だとのことです。

 以上の2つの新機能のほかに、10genのお2人が強く推薦していたのが、MongoDBを監視するサービスである「MMS(MongoDB Monitoring Service)」です。10genがインターネット上に用意するサーバがユーザーのMongoDBを監視するので、監視用サーバを用意する必要がないというところが大きな特長です。サービス提供開始は、昨年9月末から。サインアップすれば無料で利用可能です。本番環境での利用状況の把握に力を発揮してくれそうです。

日本のユーザーのスキルに感心

 MongoDBの開発では、どういうところを最も重視しているのでしょうか? と聞いたところ「何か1つの物事だけに追求するのではなく、コンビネーションが大切。ほかの物事とのバランスを取らなければならないということです。例えばスケーラビリティを確保しながら、素早く開発するという命題はとても難しいものですが、どちらかだけを考えるのではなく、両者のバランスを考えなければなりません」とSchireson氏。この考え方は、MongoDBの設計にも表れているはずです。

 なおMongoDBの開発プロジェクトでは、ユーザーが今後必要だと思っている機能やバグの報告をプロジェクト管理ツールJIRAを使ってユーザーと共有しています。日本からのフィードバックもあるそうです。まだ日本からの要望で実現した機能はないそうですが、ある日本のユーザーが「さっき、今後必要となりそうな機能を10genの人に提案したら“大丈夫。それなら次の2.2で提供するよ”と言われてしまった」と話していました。惜しかったですね。でもこの勢いなら、そのうち日本発祥の新機能がMongoDBに盛り込まれる日も近いでしょう。

 日本市場についての印象を聞いてみると、Schireson氏は「高度なスキルを持つ先進的なユーザーが多く、重要な市場であると見ています」と答えてくれました。さらにSchireson氏は、日本にはネットベンチャーが多く、ソーシャルアプリがとても普及していることを挙げ、このような事情から「高度なスキルを持つ先進的なユーザーが育っているのではないか」と、日本市場の背景を分析していました。

 実際、10genのお2人にとって、日本のコミュニティからの発表は刺激的だったそうです。例えば「○○すると動かなくなるが、事前に××をしておけば回避できる」といった具体的かつ実践的なノウハウの発表が多く、その内容は10genのお2人から見ても驚くほど高度なものであったようです。10genのお2人は、日本向けのサポート体制構築が重要なものであり、すぐにでも必要であると実感していたようでした。


1/2 次のページへ

Index
どっちが面白い? ドキュメント指向データベース
→ Page 1
開発メンバーが来日、MongoDB Tokyo 2012
社長と副社長のお話をお聞きする機会をいただきました!
日本のユーザーのスキルに感心

Page 2
CouchDBのルーツはLotus Notesにあり?
ドキュメント指向とKey-Value型の特長を融合
将来、別の道をたどる可能性も



Database Expert フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Database Expert 記事ランキング

本日月間