Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is MongoDB thread-safe?

I'm running MongoDB on Windows. I have 1 or more threads that drop and recreate a collection.

Using mongo.exe with the show collections() command, I'm seeing multiple collections with the same name (well over 1,000 collections with the same name!).

When I run validate:

> db.MY_COLLECTION.validate()

I get:

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

The size() command returns 0, and find() returns nothing.

My question is: Is MongoDB thread safe? A follow on question would be something like 'Am I doing this correctly (dropping and recreating) or is there a better way to refresh the whole content of a collection?'

like image 874
BGohil Avatar asked Feb 03 '23 16:02

BGohil


1 Answers

From mongodb documentation:

Thread safety

Only a few of the C# Driver classes are thread safe. Among them: MongoServer, MongoDatabase, MongoCollection and MongoGridFS. Common classes you will use a lot that are not thread safe include MongoCursor and all the classes from the BSON Library (except BsonSymbolTable which is thread safe). A class is not thread safe unless specifically documented as being thread safe.

All static properties and methods of all classes are thread safe.

You can search for the word Thread on this page:

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

like image 134
kheya Avatar answered Feb 05 '23 17:02

kheya