2013-01-17 6 views
5

Ho bisogno di creare un sistema di archiviazione per file che saranno per lo più inferiori a 16 MB ma voglio i benefici di GridFS come il controllo delle versioni, i metadati personalizzati, il backup facile (con mongodump), ecc. Direi che forse il 10% dei miei file sarebbe superiore a 16 MB, quindi non posso contare sull'archiviazione in singoli documenti e non voglio ricreare l'API per i vantaggi che sto cercando. Sto già usando un sistema mongoDB.Voglio i vantaggi di GridFS ma principalmente la memorizzazione di file sotto 16MB

Devo usare GridFS?

+0

Ciao Josh, hai provato a verificare se GridFS funziona male con file inferiori a 16 MB rispetto alla memorizzazione di binari all'interno del documento stesso? Grazie – Maziyar

+0

@Maziyar no, non ho mai fatto benchmark, mi dispiace. –

risposta

5

Senza ulteriori dettagli, inizierei suggerendo di leggere le raccomandazioni fornite here.

Dato che tutti i documenti non rientrano nella dimensione massima del documento quando sono archiviati come documento BSON come BinData, raccomanderei l'uso del sistema gridFS per un'esperienza di programmazione e gestione dati coerente (per sviluppatori e IT) . A seconda di come vengono consumati i file, potresti essere in grado di trasmettere in modo più efficiente il contenuto dei file ai client quando vengono archiviati in GridFS leggendo e scrivendo in blocchi.

+0

Dal punto di vista del business, questa sembra la scelta logica. GridFS funziona male con la maggior parte dei file sotto 16 MB? –

+0

Non c'è documentazione che suggerisca prestazioni scarse con documenti più piccoli. Potresti voler creare alcuni test da sperimentare. – WiredPrairie

-1

Si consiglia di archiviare file di dimensioni inferiori a 16 MB in un documento singolo utilizzando il tipo di dati BinData per dati binari. Quindi, qual è il problema per archiviare file di dimensioni inferiori a 16 MB all'interno di un singolo documento e utilizzare GridFS solo per file di dimensioni superiori a 16 MB.

+2

Quindi devo gestire i miei file in 2 posizioni e creare un'API unificante. Voglio anche la cronologia delle versioni che dovrei creare anche in aggiunta alla memorizzazione di BinData in un singolo documento. Cosa succede se ho un file da 15,9 MB che poi re-upload come l'ultima versione a 16.1 MB, quindi la cronologia dei miei file è in 2 database? –

Problemi correlati