sql >> Database >  >> NoSQL >> MongoDB

MongoDB GridFS Bestandsgroottes enorm voor relatief kleine bestanden

OK; na veel zoeken lijkt het erop dat MongoDB vooraf ruimte toewijst in de exponentiële bestanden tot 2Gb, daarna zal elk bestand 2G zijn.

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

Mijn testprogramma voegt de 80Mb-bestanden toe aan de achtergrondbestanden (.0 - .7 enz.) en als de databrokjes naar het laatste bestand worden geschreven, wijst Mongo vooraf een ander bestand toe dat exponentieel groter is dan het vorige.

Dus het eerste 80Mb-bestand, vult het 16Mb-bestand, het 32Mb-bestand en de 64Mb-achtergrondbestanden en omdat de metagegevens wat meer ruimte in beslag nemen en iets moeten binnendringen in het 128Mb-bestand, triggert dit mongo om een ​​256Mb-bestand vooraf toe te wijzen 496 MB; naarmate er meer bestanden worden toegevoegd, worden meer bestanden vooraf toegewezen en wanneer 2Gb op mijn testmachine wordt bereikt, heeft Mongo geen toegang tot de ruimte en stort in.

Dus hoewel het lijkt alsof één bestand van 80 MB veel meer ruimte in beslag neemt dan het zou moeten, is het logisch op een omweg.

Dit kan worden uitgeschakeld door mongod uit te voeren met --noprealloc, hoewel dit alleen wordt aanbevolen voor testmachines.

Bedankt voor uw antwoorden!



  1. Verbinding maken met beheerde redis met auth gebruikersnaam/wachtwoord nodejs

  2. Haal het aantal open verbindingen in mongoDB op met java

  3. Schrijf op Slave redis db

  4. Het laden van gedeeltelijke gegevens mislukt op de server JS