MongoDBの共同設立者兼CTOであるEliot Horowitz氏は、次のリリースで利用できる3つのイノベーションについて話しました。
発表された各イノベーションは、MongoDBアーキテクチャで次の原則を達成することを目的としています。
- 開発者の生産性
- 水平方向のスケーラビリティ
- 運用上のスケーラビリティ
- 単一のWebサーバーの管理は簡単でなければなりません。 クラスタについても同じことが言えます。
こちらでプレゼンテーションのビデオを見ることができます 。
データの一貫性
MongoDBは7年もの間開発中です。 そして、ユーザーは何年も一貫性について何を聞いてきましたか? 基本的に、彼らはデータベース全体のレベルでのグローバルロックについて耳にしました。
MongoDBのロックは、リレーショナルDBMSのラッチに非常に似ていることを覚えておくことが重要です。これらは非常に単純で、通常は10ミリ秒しかかかりません。 MongoDB 2.2では、データベース全体のレベルでのロックの問題が解決され、 ロックを生成するアルゴリズムが改善されました 。 これにより、コミュニティがロックに関連して抱えていた問題の数を大幅に減らすことができました。 ただし、MongoDB開発者はこの方向で作業を続けました。
そして今、真実の瞬間が訪れました。MongoDB2.8にはドキュメントレベルのロックがあります! これは、もちろん、 コレクションレベルでの待望のロックよりもはるかに大きな改善です 。
ドキュメントレベルのロックは既にgithub (v.2.7.3)に投稿されていますが、本番環境ではまだ使用できません 。 ドキュメントレベルでロックモードを有効にするには、
useExperimantalDocLocking=true
して
mongod
を実行する必要があり
useExperimantalDocLocking=true
。 プレゼンテーションで示された更新の成長率は驚異的です。1秒あたり30,000から1秒あたり340,000に約10倍増加しました。
カスタムデータウェアハウス
1つの簡単な質問に答えてみましょう。どのデータストレージエンジンが将来のMongoDBに最適ですか? 読み取り速度重視? 書き込み速度? セキュリティ MongoDBのメンバーは、答えを気にしないことを選択しました。 彼らは、どのエンジンもすべてのニーズにすぐに最適と見なすことはできないと判断しました。 そして、あなたは本当にそれについて議論することはできません。 一般に、彼らは任意のストレージエンジン用の交換可能なAPIを開発しました。
このAPIには、次のようなかなりの要件があります。 既存のすべてのMongoDB機能をサポートし、運用上のスケーラビリティをサポートし、1つ以上のノードをクラスターに追加する必要があります。
その結果、パフォーマンス、データ圧縮などの特定のニーズに合わせて最適化される交換用ストレージを接続できるようになります。
推奨されるストレージタイプ:
-インメモリー
-RocksDB(Facebookから、圧縮によりシャープ化)
-InnoDB(MySQLから)
-トクKV
-FusionIO(ファイルシステムをバイパスして動作し、低遅延で投獄されます)
In-MemoryとRocksDBは、githubの開発ブランチで既に利用可能です。 繰り返しますが、戦闘サーバーでこれを使用して時間をかけてください。
自動化
ご存じのように、MongoDBはすぐに複製およびシャードできます。 結果として、1つのデータベースインスタンスではなく、一度に複数のデータベースインスタンスを取得します。 本当に大規模なプロジェクトでは、このようなノードが多数存在する可能性があります。 そして問題は、これらすべてのノードの展開だけでなく、さらなる更新、バックアップ、監視などにもあります。
このルーチンはすべて、 Mongo Management Service (MMS)によって実行されます。
MMSは、マウスを数回クリックするだけで多くのタスクを解決できる使いやすいWebインターフェイスです。
- ワンクリック展開(近日公開予定)
- ノードの即時更新(近日公開予定)
- 連続(ロギング)および増分バックアップ
- 任意の状態へのロールバック
- 100以上のシステムメトリックの監視
- カスタム通知
そして初心者向け:MMSはAmazon EC2と統合する方法を教えます。
次は?
MongoDBチームが製品を開発者にとって便利で便利なものにすることに多くの注意を払っているという事実は本当に気に入っています。 そして、彼らはこれを球状の真空ではなく、コミュニティから直接意見に積極的に興味を持っています 。 したがって、MongoDBは、新機能の導入、セキュリティの向上、自動化、ルーチン全体の不可視化の優れたペースを維持し続けると確信しています。