sql >> Databáze >  >> NoSQL >> MongoDB

Velikost souborů MongoDB GridFS je obrovská pro relativně malé soubory

OK; po dlouhém hledání se zdá, že MongoDB předem alokuje místo v souborech s exponenciální velikostí až 2 Gb, poté bude mít každý soubor 2G.

http://www.mongodb.org/display/DOCS/Excessive+Disk +Mezerník

Můj testovací program přidá 80 MB soubory do souborů na pozadí (.0 - .7 atd.) a když se datové bloky začnou zapisovat do posledního souboru, Mongo předem přidělí další soubor exponenciálně větší než ten předchozí.

Takže prvních 80 Mb soubor zaplní 16 Mb soubor, 32 Mb soubor a 64 Mb soubory na pozadí a kvůli metadatům zabírá o něco více místa a musí mírně zasahovat do 128 Mb souboru, to spustí mongo k předběžnému přidělení souboru o velikosti 256 Mb celkem. 496 Mb; jak se přidávají další soubory, jsou předem přiděleny další soubory a když na mém testovacím stroji dojde k 2Gb, Mongo nemůže získat přístup k prostoru a zhroutí se.

Takže ačkoli se zdá, že jeden 80Mb soubor zabírá mnohem více místa, než by měl – dává to smysl v kruhovém objezdu.

To lze vypnout spuštěním mongodu s --noprealloc, i když se to doporučuje pouze pro testovací stroje.

Děkuji za vaše odpovědi!



  1. Spring MongoItemReader nečte všechny záznamy při jednom spuštění

  2. Složené indexy pro dotaz OR + řazení v mongodb

  3. Prostorová data s mongodb nebo cassandra

  4. 128bitové číslo úložiště redis