В встроенном режиме выходные данные возвращаются как один документ, по существу, ограничивая вас максимальным размером документа, поэтому вы можете увидеть разницу в поведении или времени отклика, поскольку у вас возвращается больший результат?
С точки зрения блокировки задание Map / Reduce можно рассматривать как множество мелких операций (включая запись).
Во-первых, существует блокировка javascript, так что только один поток может выполнять код JS в один момент времени, то есть однопоточный, по крайней мере, на данный момент.Но большинство JS-шагов MR (например, одиночная карта ()) очень короткие и, следовательно, блокировка получается очень часто.
Есть также несколько операций, не связанных с JavaScript, которые MapReduce выполняет, которые принимают блокировки:
- Считывает из коллекции (блокировка чтения дает каждые 100 документов)
- вставляет документы во временную коллекцию (блокировка записи для одной записи)
- Создает окончательную коллекцию или объединяет или заменяет существующую коллекцию (блокировка записи)
Ваш встроенный режим удаляетвторые два - в виде карты в памяти, поэтому вы не должны видеть блокировки записи, по крайней мере, для этой работы.Может быть, блокировки связаны с операциями или чтениями JS, а не с записью?