MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB GridFS File Dimensioni enormi per file relativamente piccoli

Ok; dopo molte ricerche sembra che MongoDB pre-allochi spazio nei file di dimensioni esponenziali fino a 2Gb, dopodiché ogni file sarà 2G.

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

Il mio programma di test aggiunge i file da 80 Mb, all'interno dei file in background (.0 - .7 ecc.) e quando i blocchi di dati iniziano a essere scritti nell'ultimo file Mongo prealloca un altro file esponenzialmente più grande dell'ultimo.

Quindi il primo file da 80 Mb, riempie il file da 16 Mb, il file da 32 Mb e i file di sfondo da 64 Mb e, a causa dei metadati, occupa un po' più spazio e deve invadere leggermente il file da 128 Mb, questo fa sì che mongo preallochi un file da 256 Mb per un totale 496 MB; man mano che vengono aggiunti più file, più file vengono preallocati e quando vengono raggiunti 2 GB sulla mia macchina di prova Mongo non può accedere allo spazio e si comprime.

Quindi, anche se sembra che un file da 80 Mb occupi molto più spazio di quanto dovrebbe, ha senso in modo indiretto.

Questo può essere disattivato eseguendo mongod con --noprealloc sebbene sia consigliato solo per macchine di prova.

Grazie per le risposte!