sql >> Base de Datos >  >> NoSQL >> MongoDB

Tamaños de archivo MongoDB GridFS enormes para archivos relativamente pequeños

OK; después de mucho buscar, parece que MongoDB preasigna espacio en los archivos de tamaño exponencial hasta 2 Gb, después de eso, cada archivo será 2 G.

http://www.mongodb.org/display/DOCS/Excessive+Disk +Espacio

Mi programa de prueba agrega los archivos de 80 Mb, dentro de los archivos de fondo (.0 - .7, etc.) y cuando los fragmentos de datos comienzan a escribirse en el último archivo, Mongo preasigna otro archivo exponencialmente más grande que el anterior.

Entonces, el primer archivo de 80 Mb, llena el archivo de 16 Mb, el archivo de 32 Mb y los archivos de fondo de 64 Mb y, debido a los metadatos, ocupa un poco más de espacio y debe invadir ligeramente el archivo de 128 Mb, esto hace que Mongo preasigne un archivo de 256 Mb por un total 496 MB; a medida que se agregan más archivos, se preasignan más archivos y cuando se alcanzan los 2 Gb en mi máquina de prueba, Mongo no puede acceder al espacio y colapsa.

Entonces, aunque parece que un archivo de 80 Mb ocupa mucho más espacio del que debería, tiene sentido de forma indirecta.

Esto se puede desactivar ejecutando mongod con --noprealloc aunque esto se recomienda solo para máquinas de prueba.

¡Gracias por sus respuestas!