7

私はWindows上でMongoDBを実行しています。私はコレクションを削除して再作成するスレッドを1つ以上持っています。MongoDBはスレッドセーフですか?

show collections()コマンドでmongo.exeを使用すると、同じ名前の複数のコレクションが表示されています(同じ名前のコレクションが1000を超えています)。私が手

> db.MY_COLLECTION.validate() 

{ "errmsg" : "ns not found", "ok" : 0, "valid" : false } 

size()コマンドが返す0、およびfind()何も返さない

は私が検証を実行する場合。

私の質問です:MongoDBは安全ですか?それに続く質問は、のようなものになります。「これを正しく行う(落として再作成する)のですか、コレクションの内容全体をリフレッシュする良い方法がありますか? MongoDBのドキュメントから

答えて

6

:C#ドライバクラスの

スレッドの安全性

ほんの数は、スレッドセーフです。その中にはMongoServer、MongoDatabase、MongoCollection、MongoGridFSなどがあります。 MongoCursorとBSONライブラリのすべてのクラス(スレッドセーフであるBsonSymbolTableを除く)がスレッドセーフではないたくさん使う一般的なクラスです。スレッドセーフであると具体的に文書化されていない限り、クラスはスレッドセーフではありません。

すべての静的プロパティとすべてのクラスのメソッドは、スレッドセーフです。

このページで単語のスレッドを検索することができます。バージョン2.2で変更

http://mongodb.onconfluence.com/pages/viewpage.action?pageId=18907708&navigatingVersions=true#CSharpDriverTutorial-Threadsafety

3

MongoDBでは、ロッキングシステムを使って複数のクライアントがデータの単一のコーパスを読み書きできるようにし、すべてのクライアントがデータの一貫性のあるビューを受け取るようにし、複数のアプリケーションが同じデータを同時に。ロックは、1つのドキュメントへのすべての書き込みが完全に行われるか、まったく行われないことを保証します。

http://docs.mongodb.org/manual/faq/concurrency/

関連する問題