問題タブ [wiredtiger]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mongodb - コレクションにインデックスを作成し、コレクションの名前を変更する
記載されているのは、システムの現在のワークフローです
- TMP_xxxx という名前のコレクションを作成します。
- TMP_xxx にインデックスを作成します (バックグラウンド モード)。
- すべてのドキュメントが書き込まれた後、コレクションの名前を XXX に変更します (トランザクション読み取りの一貫性のため)。
コレクションの名前が変更された場合、インデックスは新しい名前に再マップされますか?それとも再インデックス操作をトリガーする必要がありますか?
このエラーに頻繁に気づきます
これは、インデックスの作成前にコレクションの名前が変更されたことを意味しますか?
最近、ストレージ エンジンに切り替えたところ、WiredTiger
この問題に気付き始めました。
mongodb - MongoDB の多粒度ロック
MongoDB は、操作をグローバル、データベース、またはコレクション レベルでロックできる多粒度ロック [1] を使用し、個々のストレージ エンジンがコレクションの下 (つまり、WiredTiger のドキュメント レベル) で独自の同時実行制御を実装できるようにします。
さらに、MongoDB には MMAPv1 (デフォルト) と WiredTiger の 2 つのストレージ エンジンがあることを読みました。MongoDB 3.0 から、最初のものはコレクション レベルのロックを使用し、2 つ目はドキュメント レベルのロックを使用します。MongoDB が操作を GLOBAL、DATABASE、または COLLECTION レベルでロックできるとはどういう意味ですか? ロックの粒度を選択できるということですか? はいの場合、どうすればできますか?これは、選択したストレージ エンジンのロック粒度 (たとえば、WiredTiger のドキュメント レベル) とは対照的ですか? また、ストレージ エンジンを MMAPv1 から WiredTiger に変更するにはどうすればよいですか? 前もって感謝します。
mongodb - MongoDB (WiredTiger) によって返される不正なカウント
これは奇妙に聞こえます。私が何か間違ったことをしているといいのですが、私のコレクションは私のコレクションで 1 つオフをMongoDB
返しています。Count
私は (確かに) 359671 個のドキュメントを含むコレクションを持っています。ただし、このcount()
コマンドは 359670 個のドキュメントを返します。
count()
mongo シェルを使用してコマンドを実行しています。
これは正しくありません。
コレクション内のすべてのドキュメントを見つけるわけではありません。
カウントする次のクエリを指定すると、正しい結果が得られます。
これは WiredTiger のバグだと思います。私の知る限り、各ドキュメントは同じ定義、0 から 359670 までの整数の _id フィールド、および BinData フィールドを持っています。古いストレージ エンジンではこの問題は発生しませんでした (または Mongo 2 のどちらかが問題を引き起こした可能性があります)。
これは私が間違ったことをしたのでしょうか? {_id: {$exists: true}}
完了するまでに 100 倍の時間がかかるため、クエリを使用したくありません。
mongodb - WiredTiger エンジンを使用した mongodb 3.0.3 の最大データベース サイズはどれくらいですか
WiredTiger エンジンのデータベースの最大サイズは?
MongoDBのマニュアルには以下のようにMMAPv1の最大データベースサイズしかありません。
http://docs.mongodb.org/manual/reference/limits/
mongodb - WiredTiger で MongoDb ドキュメントの部分更新を実行すると、完全なドキュメント更新よりも利点がありますか?
この質問は言語固有ではありませんが、MMAPv1ストレージエンジンを使用してドキュメントがその場で(メモリ内で)編集されるため、mongodbドキュメントに部分的な更新を書き込むためにJavaドライバーを使用しているため、パフォーマンスが向上します。これにより、ドキュメント全体を一度に保存し、正確に更新されたものの詳細を気にする必要がなくなるため、開発がかなり複雑になります。WiredTiger に更新した後、この新しいストレージ エンジンはドキュメントをその場で (メモリ内で) 編集するのではなく、書き込みごとに新しいメモリを割り当てることを知りました (これがドキュメントの完全なコピーを意味するのか、単に差分を意味するのかは不明です)。これは、ドキュメント全体の書き込みと部分的な書き込みのどちらを行っても、パフォーマンスに違いがないということですか?
mongodb - メモリ制限のためのmongodb 3.0の構成
mongodb 3.0 でメモリを制限する方法を知っている人はいますか。mongodb 2.x バージョンでは不可能であることは既に知っています。しかし、3.0 (WiredTiger) でそれを行う方法。
Mongodb がシステム内のすべてのキャッシュを消費しています。
mongodb - mongodb - ワイヤードタイガーのメモリ使用量が増えています
私たちは、wiredtiger に移行しましたが、mongodb がシステムのメモリの 90% を使用しており、メモリ使用量が徐々に増加していることがわかりました。ゆっくりと膨らんでいくようです。mongo 2.x で mmap を使用した場合、wiredtiger の前はメモリが 8% でした。
オペレーティングシステムがプロセスを強制終了するのではないかと心配しています。これは正常な動作ですか?
db.serverStatus() - https://gist.github.com/henryoswald/8ff9cf917e63c2e983dd
mongodb - MongoDB で使用されている WiredTiger のバージョンはどれですか?
MongoDB で使用している WiredTiger のバージョンを確認することはできますか? 私は使用してみました: -
しかし、そこにバージョン情報が見つかりません。
MongoDB (v3.0.4) をそのままインストールしたので、同梱されている WiredTiger のバージョンと、代わりに新しいバージョンの WiredTiger を使用できるかどうかを調べています。
mongodb - Mongo 3.0 / WiredTiger でデータベース全体を RAM にロードするにはどうすればよいですか?
私のサーバー RAM は 30 GB ですが、約 5 GB の静的データベース (書き込みを受信することさえありません) があります。複雑な集計をユーザーにできるだけ早く返すことに重点を置いているため、(a) インデックスと (b) データセット全体を完全に RAM に格納し、(c ) は、Mongo サーバーが起動するたびに自動的にそこに保存されます。現在、私の主なボトルネックは、グループ コマンドを実行して、何百万もの行から一意の要素を見つけることです。
私の質問は、新しい Mongo/WiredTiger で実行中に (a)、(b)、または (c) のいずれかを実行するにはどうすればよいですか? 「タッチ」コマンドが WiredTiger で機能しないことはわかっているため、インターネット上のほとんどの情報は古くなっているようです。(a)、(b)、または (c) は既に自動的に実行されていますか? このユースケースでは、これらの各ステップを実行するべきではありませんか?