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

MongoDB GridFS Filstørrelser enorme for relativt små filer

Okay; efter meget søgning ser det ud til, at MongoDB på forhånd allokerer plads i filer i eksponentiel størrelse op til 2 Gb, hvorefter hver fil vil være 2G.

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

Mit testprogram tilføjer 80 Mb-filerne i baggrundsfilerne (.0 - .7 osv.), og efterhånden som datastykkerne begynder at blive skrevet ind i den sidste fil, præallokerer Mongo en anden fil, der er eksponentielt større end den sidste.

Så den første 80 Mb-fil fylder 16 Mb-filen, 32 Mb-filen og 64 Mb-baggrundsfilerne og på grund af metadataene fylder lidt mere og skal trænge lidt ind i 128 Mb-filen, udløser dette mongo til at forhåndstildele en 256 Mb-fil på i alt 496 Mb; efterhånden som flere filer tilføjes, bliver flere filer forudallokeret, og når 2Gb er ramt på min testmaskine, kan Mongo ikke få adgang til pladsen og kollapser.

Så selvom det ser ud til, at en 80 Mb-fil fylder meget mere, end den burde - giver det mening i en rundkørsel.

Dette kan slås fra ved at køre mongod med --noprealloc, selvom dette kun anbefales til testmaskiner.

Tak for dine svar!



  1. Redis opdaterer ikke, når mange forespørgsler på én gang

  2. Hvordan MongoDB vælger kandidatplaner

  3. Hvordan genereres MongoDB's ObjectId'er?

  4. MongoDB tændt med Docker kunne ikke oprette forbindelse til serveren [localhost:27017] ved første forbindelse