Как увеличить лимит буферизованных данных?

В Ubuntu я создал коллекцию MongoDB Db, содержащую 1 миллион записей, и при попытке выполнить команду сортировки для нее я получаю следующую ошибку:

 "$err" : "Runner error: Overflow sort stage buffered data usage of 33555002 bytes exceeds internal limit of 33554432 bytes",
 "code" : 17144

Пожалуйста, кто-нибудь может описать как увеличить внутренний лимит, чтобы я мог выполнять эту и некоторые другие масштабные команды для данных?

16
задан 24 July 2014 в 12:34

2 ответа

Это может произойти из-за ошибки как СЕРВЕР 13611 (поэтому удостоверьтесь, что Вы находитесь на последней версии), или потому что Вы пробуете к вид на редком индексе в 2,6 , но чаще это - потому что Вы просто пытаетесь отсортировать слишком много записей в памяти без индекса.

определенный предел, который Вы поражаете, является намеренным и зарегистрирован здесь - он не может быть изменен, таким образом, необходимо уменьшить набор результатов или использовать индекс и т.д. для выполнения вида.

Обновление (ноябрь 2014): предстоящие 2,8 выпуска (2.8.0-rc0 с записи этого) действительно теперь позволяют этой установке быть настроенной, следующим образом:

db.adminCommand({setParameter: 1, internalQueryExecMaxBlockingSortBytes: <limit in bytes>})

значение по умолчанию составляет 32 МиБ (33 554 432 байта) и должно быть скорректировано с осторожностью - большие виды в оперативной памяти могут заставить Вашу базу данных прекращать работу (который является, почему был предел во-первых).

23
ответ дан 24 July 2014 в 12:34

Я столкнулся с проблемой также при сортировке и нумерации страниц 200K + записи. Самое легкое решение, кажется, для добавления индекса (для атрибутов, на которых Вы сортируете.

2
ответ дан 24 July 2014 в 12:34

Другие вопросы по тегам:

Похожие вопросы: