MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB GridFS-Dateigrößen riesig für relativ kleine Dateien

OK; Nach langem Suchen scheint es, dass MongoDB Speicherplatz in den Dateien mit exponentieller Größe bis zu 2 GB vorab zuweist, danach wird jede Datei 2 GB groß sein.

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

Mein Testprogramm fügt die 80-MB-Dateien innerhalb der Hintergrunddateien (.0 - .7 usw.) hinzu, und wenn die Datenblöcke in die letzte Datei geschrieben werden, weist Mongo vorab eine weitere Datei zu, die exponentiell größer als die letzte ist.

Die erste 80-MB-Datei füllt also die 16-MB-Datei, die 32-MB-Datei und die 64-MB-Hintergrunddateien und nimmt aufgrund der Metadaten etwas mehr Platz ein und muss leicht in die 128-MB-Datei eindringen, was Mongo dazu veranlasst, eine 256-MB-Datei vorab zuzuweisen 496 MB; Wenn mehr Dateien hinzugefügt werden, werden mehr Dateien vorab zugewiesen, und wenn 2 GB auf meinem Testcomputer erreicht werden, kann Mongo nicht auf den Speicherplatz zugreifen und bricht zusammen.

Obwohl es scheint, dass eine 80-MB-Datei viel mehr Platz beansprucht, als sie sollte, macht es auf Umwegen Sinn.

Dies kann durch Ausführen von mongod mit --noprealloc deaktiviert werden, obwohl dies nur für Testmaschinen empfohlen wird.

Vielen Dank für Ihre Antworten!