MongoDB поточно-ориентирован? - PullRequest
9 голосов
/ 04 июля 2011

Я использую MongoDB в Windows. У меня есть 1 или несколько тем, которые удаляют и воссоздают коллекцию.

Используя mongo.exe с командой show collections(), я вижу несколько коллекций с одинаковым именем (более 1000 коллекций с одинаковым именем!).

Когда я запускаю команду validate:

> db.MY_COLLECTION.validate()

Я получаю:

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

Команда size() возвращает 0, а find() ничего не возвращает.

Мой вопрос: безопасен ли поток MongoDB? Последующее задание может быть что-то вроде «Правильно ли я делаю это (удаляя и воссоздавая) или есть лучший способ обновить все содержимое коллекции?»

Ответы [ 2 ]

6 голосов
/ 04 июля 2011

Из документации mongodb:

Потоковая безопасность

Только некоторые из классов C # Driver являются поточно-ориентированными.Среди них: MongoServer, MongoDatabase, MongoCollection и MongoGridFS.Обычные классы, которые вы будете использовать, не являются потокобезопасными, включают MongoCursor и все классы из библиотеки BSON (кроме BsonSymbolTable, который является поточно-ориентированным).Класс не является поточно-ориентированным, если только он не задокументирован как поточно-ориентированный.

Все статические свойства и методы всех классов являются поточно-ориентированными.

Вы можете найти слово Thread на этой странице:

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

4 голосов
/ 27 декабря 2012

Изменено в версии 2.2.

MongoDB позволяет нескольким клиентам считывать и записывать единый корпус данных, используя систему блокировки, чтобы гарантировать, что все клиенты получают согласованное представление данных, и предотвратить изменение нескольких приложений.одни и те же фрагменты данных одновременно.Блокировки помогают гарантировать, что все записи в один документ выполняются либо полностью, либо не полностью.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...