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

GridFS è abbastanza veloce e affidabile per la produzione?

Uso gridfs al lavoro su uno dei nostri server che fa parte di un sito Web di confronto dei prezzi con statistiche di traffico onorevoli (circa 25.000 visitatori al giorno). Il server non ha molta ram, 2 giga e anche la CPU non è molto veloce (Core 2 duo 1.8 Ghz) ma il server ha molto spazio di archiviazione:10 Tb (sata) nella configurazione raid 0. Il lavoro che sta facendo il server è molto semplice:

Ogni prodotto sul nostro comparatore di prezzi ha un'immagine (ci sono circa 10 milioni di prodotti secondo il nostro db di prodotto) e il compito del server è scaricare l'immagine, ridimensionarla, salvarla su gridfs e consegnarla al browser dei visitatori. .. se non è presente nella griglia... oppure... consegnalo al browser dei visitatori se è già memorizzato nella griglia. Quindi, questo potrebbe essere chiamato come uno "schema cdn tradizionale".

Abbiamo archiviato ed elaborato 4 milioni di immagini su questo server da quando è attivo e funzionante. Il ridimensionamento e la memorizzazione delle cose vengono eseguiti da un semplice script php... ma di sicuro, uno script python o qualcosa come java potrebbe essere più veloce.

Dimensione attuale dei dati:11,23 g

Dimensioni di archiviazione attuali:12,5 g

Indici:5

Dimensione dell'indice:849,65 m

Circa l'affidabilità:Questo è molto affidabile. Il server non si carica, la dimensione dell'indice è ok, le query sono veloci

Informazioni sulla velocità:Di sicuro, non è veloce come l'archiviazione di file locali, forse il 10% più lenta, ma abbastanza veloce da essere utilizzata in tempo reale anche quando l'immagine deve essere elaborata, che nel nostro caso è molto dipendente da php. Anche i tempi di manutenzione e sviluppo sono stati ridotti:è diventato così semplice eliminare una o più immagini:basta interrogare il db con un semplice comando di cancellazione. Un'altra cosa interessante:quando abbiamo riavviato il nostro vecchio server, con l'archiviazione di file locale (quindi milioni di file in migliaia di cartelle), a volte si blocca per ore perché il sistema stava eseguendo un controllo dell'integrità dei file (ci sono volute davvero ore...). Non abbiamo più questo problema con gridfs, le nostre immagini sono ora archiviate in grandi blocchi mongodb (file da 2 GB)

Quindi... a mio avviso... Sì, gridfs è abbastanza veloce e affidabile da poter essere utilizzato per la produzione.