7

Estoy ejecutando MongoDB en Windows. Tengo 1 o más hilos que caen y vuelvo a crear una colección.¿MongoDB es seguro para subprocesos?

Usando mongo.exe con el comando show collections(), estoy viendo varias colecciones con el mismo nombre (¡más de 1,000 colecciones con el mismo nombre!).

cuando corro de validación:

> db.MY_COLLECTION.validate() 

me sale:

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

Los size() comando devuelve 0, y find() vuelve nada.

Mi pregunta es: ¿Es seguro el subproceso de MongoDB? Una pregunta de seguimiento sería algo así como '¿Lo estoy haciendo correctamente (descartando y recreando) o hay una mejor manera de actualizar todo el contenido de una colección?'

Respuesta

6

De la documentación mongodb:

Seguridad de los hilos

Sólo unas pocas de las clases C# conductor es seguro para subprocesos. Entre ellos: MongoServer, MongoDatabase, MongoCollection y MongoGridFS. Las clases comunes que utilizará mucho que no son seguras para subprocesos incluyen MongoCursor y todas las clases de la Biblioteca BSON (excepto BsonSymbolTable, que es segura para subprocesos). Una clase no es segura para subprocesos a menos que esté específicamente documentada como segura para subprocesos.

Todas las propiedades y métodos estáticos de todas las clases son seguros para subprocesos.

Puede buscar la palabra de rosca en esta página:

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

3

cambiado en la versión 2.2.

MongoDB permite que múltiples clientes lean y escriban un solo corpus de datos usando un sistema de bloqueo para asegurar que todos los clientes reciban una vista consistente de los datos y para evitar que varias aplicaciones modifiquen los mismos datos al mismo tiempo . Los bloqueos ayudan a garantizar que todas las escrituras en un solo documento se lleven a cabo en su totalidad o en absoluto.

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

Cuestiones relacionadas