2012-03-30 8 views
11

MongoDBのシステムとDBアーキテクチャについてもっと知りたいと思います。MongoDBデータベースアーキテクチャ

MongoDBがドキュメントをどのように格納して取得するのかを理解しようとしています。それがすべてメモリ内にある場合など。

MongoDBとOracleの比較分析は、ボーナスになりますが、主にMongoDBのアーキテクチャそのものを理解することに集中しています。

すべてのポインタが役立ちます。

+0

私はエキスパートであると主張することはできませんが、ディスクに書き込むことは確実です(いつ、どのくらいの頻度で/いつもフラッシュするか、明示的にフラッシュできるかはわかりません)。実際には、かなりのスペースを奪ってしまいます(私は推測しています)。 –

+0

一般的には、実際にはオーバーアーチ型の比較として、これと従来のリレーショナルデータベース(OracleやMS SQL ServerまたはMySQL)はトランザクション性/信頼性対極限のいずれかです。あなたのデータの一部がゴミ箱になってしまった場合、夜間に眠れなくても、MongoのようなNoSQLのオプションは非常に効率的で、同時ユーザーの*ロット*に拡大できます。あなたのデータに保証が必要な場合は、今のところ、トランザクションdbsを守るほうが良いでしょう。 –

+0

この質問は、SOに関する質問のガイドラインよりも少し広いかもしれません。私はあなたがmongodbのドキュメントに行き、彼らが提供する資料を読むことをお勧めします。特に興味があるのは: http://www.mongodb.org/display/DOCS/Architecture+and+Components、 http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mapping+図表 http://www.mongodb.org/display/DOCS/Production+Notes これが役立つことを願っています。 – marr75

答えて

18

MongoDBメモリはデータベースファイルをマップします。これにより、OSはこれを制御し、最大量のRAMをメモリマッピングに割り当てることができます。 MongoDBは更新し、DBから読み込み、RAMに読み書きしています。データベース内の文書のすべての索引もRAMに保持されます。 RAMのファイルは60秒ごとにディスクにフラッシュされます。停電が発生した場合にデータが失われるのを防ぐため、デフォルトではジャーナリングをオンにして実行されます。ジャーナル・ファイルは100msごとにディスクにフラッシュされ、電源が失われた場合にデータベースを一貫性のある状態に戻すために使用されます。 mongoの重要な設計上の決定は、RAMの量です。作業セットのサイズを把握する必要があります。つまり、データベースの最新の10%のデータのみを読み書きする場合、この10%は作業セットであり、最大のパフォーマンスを得るためにメモリに保持する必要があります。したがって、あなたのワーキングセットが10GBであれば、最大のパフォーマンスを得るために10GBを使うことになります。そうしないと、メモリのページがディスクからメモリにページされるため、クエリ/アップデートが遅くなります。 mongoDBのその他の重要な点は、バックアップ用のレプリケーションとスケーリング用のシャーディングです。 学習には素晴らしいオンラインリソースがたくさんあります。 MongoDBは無料でオープンソースです。

EDIT: それはチュートリアル http://www.mongodb.org/display/DOCS/Tutorial とマニュアル http://www.mongodb.org/display/DOCS/Manual をチェックアウトすることをお勧めしますと管理ゾーン http://www.mongodb.org/display/DOCS/Admin+Zone あまりにも有用であり、あなたが読んでの退屈ならば、プレゼンテーションをチェックアウトする価値があります。

+0

ありがとうございます。私は実際にあなたの答えの行についての情報を探しています。同様の詳細を得ることは素晴らしいことです。 MongoDBの内部アーキテクチャ/アーキテクチャーなどのオンラインリソースを教えてください。 – Ayusman

+0

読み取り/クエリスケーリングのための複製(バックアップだけでなく)。 –

+0

これはあなたの質問に答えたと思いますか、それとももっと助けが必要ですか? – Gregor

関連する問題