どっちが面白い? ドキュメント指向データベース
2012/2/21
開発メンバーが来日、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型の特長を融合 将来、別の道をたどる可能性も |
- Oracleライセンス「SE2」検証 CPUスレッド数制限はどんな仕組みで制御されるのか (2017/7/26)
データベース管理システムの運用でトラブルが発生したらどうするか。DBサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は、Oracle SE2の「CPUスレッド数制限」がどんな仕組みで行われるのかを検証します - ドメイン参加後、SQL Serverが起動しなくなった (2017/7/24)
本連載では、「SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「ドメイン参加後にSQL Serverが起動しなくなった場合の対処方法」を解説します - さらに高度なSQL実行計画の取得」のために理解しておくべきこと (2017/7/21)
日本オラクルのデータベーススペシャリストが「DBAがすぐ実践できる即効テクニック」を紹介する本連載。今回は「より高度なSQL実行計画を取得するために、理解しておいてほしいこと」を解説します - データベースセキュリティが「各種ガイドライン」に記載され始めている事実 (2017/7/20)
本連載では、「データベースセキュリティに必要な対策」を学び、DBMSでの「具体的な実装方法」や「Tips」などを紹介していきます。今回は、「各種ガイドラインが示すコンプライアンス要件に、データベースのセキュリティはどのように記載されているのか」を解説します
|
|