В Ubuntu я создал коллекцию MongoDB Db, содержащую 1 миллион записей, и при попытке выполнить команду сортировки для нее я получаю следующую ошибку:
"$err" : "Runner error: Overflow sort stage buffered data usage of 33555002 bytes exceeds internal limit of 33554432 bytes",
"code" : 17144
Пожалуйста, кто-нибудь может описать как увеличить внутренний лимит, чтобы я мог выполнять эту и некоторые другие масштабные команды для данных?
Это может произойти из-за ошибки как СЕРВЕР 13611 (поэтому удостоверьтесь, что Вы находитесь на последней версии), или потому что Вы пробуете к вид на редком индексе в 2,6 , но чаще это - потому что Вы просто пытаетесь отсортировать слишком много записей в памяти без индекса.
определенный предел, который Вы поражаете, является намеренным и зарегистрирован здесь - он не может быть изменен, таким образом, необходимо уменьшить набор результатов или использовать индекс и т.д. для выполнения вида.
Обновление (ноябрь 2014): предстоящие 2,8 выпуска (2.8.0-rc0 с записи этого) действительно теперь позволяют этой установке быть настроенной, следующим образом:
db.adminCommand({setParameter: 1, internalQueryExecMaxBlockingSortBytes: <limit in bytes>})
значение по умолчанию составляет 32 МиБ (33 554 432 байта) и должно быть скорректировано с осторожностью - большие виды в оперативной памяти могут заставить Вашу базу данных прекращать работу (который является, почему был предел во-первых).
Я столкнулся с проблемой также при сортировке и нумерации страниц 200K + записи. Самое легкое решение, кажется, для добавления индекса (для атрибутов, на которых Вы сортируете.