Dentro de Ubuntu, he creado una colección MongoDB Db que contiene 1 millón de registros, y cuando trato de ejecutar un comando de clasificación, obtengo el siguiente error:
"$err" : "Runner error: Overflow sort stage buffered data usage of 33555002 bytes exceeds internal limit of 33554432 bytes",
"code" : 17144
¿Puede alguien describir cómo aumentar el límite interno para que pueda ejecutar este y otros comandos a gran escala con los datos?
Respuestas:
Esto puede suceder debido a un error como SERVER-13611 (así que asegúrese de estar en la última versión), o porque está tratando de ordenar en un índice disperso en 2.6 , pero generalmente es porque simplemente está intentando ordenar también Muchos registros en la memoria sin un índice.
El límite específico que está alcanzando es intencional y está documentado aquí : no se puede cambiar, por lo que debe reducir el conjunto de resultados o usar un índice, etc. para realizar la clasificación.
Actualización (noviembre de 2014): la próxima versión 2.8 (2.8.0-rc0 en el momento de escribir esto) ahora permite modificar esta configuración, de la siguiente manera:
El valor predeterminado es 32MiB (33554432 bytes) y debe ajustarse con cuidado: los tipos grandes en memoria pueden hacer que su base de datos se detenga (razón por la cual había un límite en primer lugar).
fuente
También me encontré con el problema al ordenar y paginar 200K + registros. La solución más fácil parece ser agregar un índice (para los atributos que está ordenando.
fuente