2014-09-16 2 views
0

У меня есть вопрос о карте mongoDbReduce funcion. Скажем, что в настоящее время выполняется работа с mapReduce, которая займет много времени. Что произойдет, когда пользователь попытается получить доступ к той же коллекции, к которой пишет mapReduce?MongoDb MapReduce

Уменьшает ли запись записи все данные после их завершения или записывает их во время работы?

ответ

0

Дополнительную информацию о блокировке mongodb можно найти на странице concurrency. Для вашего случая команда map-reduce принимает блокировку чтения и записи для соответствующих коллекций во время ее работы. Порты команды map-reduce могут быть параллельными, но в общем случае они блокируются во время работы.

+0

Так что если mapReduce занимает 10 минут, то коллекция, из которой функция записи записывается, недоступна в течение 10 минут? – MilesSmiles

+0

Если вы не устанавливаете неатомное значение true, см. Http://docs.mongodb.org/manual/reference/method/db.collection.mapReduce/ –

0

Длительные операции чтения и записи, такие как запросы, обновления и удаления, дают при многих условиях. Операции MongoDB также могут приводить к блокировкам между отдельными модификациями документов в операциях записи, которые влияют на несколько документов, таких как update(), с помощью параметра multi.

В Map уменьшить mongoDB делает блокировку чтения и записи, если только операции указаны как неатомные. Части операций с уменьшением числа карт могут одновременно запускаться .