2010-12-31 2 views
9

Mi chiedo se la memorizzazione di tutti i file caricati in GridFS sia più veloce di archiviarli sul solito file system, ad es. Ext4 (in termini di velocità di lettura/scrittura e carico medio del server).GridFS è più veloce del solito FS?

risposta

11

In generale è slower per il solito stile di accesso al filesystem. Ma può beneficiare delle belle funzionalità di MongoDB:

  • È possibile associare eventuali metadati ai file e interrogarli in un modo usuale. In realtà i file vengono archiviati come normali documenti Mongo nelle raccolte fs.files e fs.chunks.
  • Replica. Con un set di repliche si otterrà una (quasi) istantanea backup, failover e read scalability (la richiesta di lettura può andare su nodi slave).
  • Sharding. Come qualsiasi altra raccolta, è possibile distribuire file su più istanze di Mongo con auto-sharding. Ciò migliorerà la scalabilità di scrittura.
2

When to use GridFS

  • Se il file system limita il numero di file in una directory, è possibile utilizzare GridFS per memorizzare tutti i file in base alle esigenze.
  • Quando si desidera mantenere i file e i metadati automaticamente sincronizzati e distribuiti su un numero di sistemi e strutture. Quando si utilizzano i set di repliche distribuite geograficamente, MongoDB può distribuire automaticamente i file e i relativi metadati a un numero di istanze di mongod e facilita.
  • Quando si desidera accedere alle informazioni da porzioni di file di grandi dimensioni senza dover caricare interi file in memoria, è possibile utilizzare GridFS per richiamare sezioni di file senza leggere l'intero file in memoria.