Sto usando MongoDB da un po 'di tempo e ho visto che fsync
aspetta che i dati vengano scaricati sul disco. Ok, quindi ho pensato che fosse la soluzione per la sicurezza dei dati.Per che cosa è il fsync di MongoDB?
Ha funzionato bene con tempi lunghi, più lunghi rispetto a quelli di SQL. Poi ho visto che posso mettere il syncdelay
a 0
, quindi la velocità è tornata, ma ho pensato a come sarebbe in futuro con molte richieste simultanee. Così ho rimosso l'opzione fsync
dagli aggiornamenti e inserimenti e rimosso l'opzione di configurazione syncdelay
.
Per verificare se i dati sono stati scritti, ho controllato rapidamente Rockmongo dopo aver effettuato un aggiornamento ei dati erano effettivamente lì, super veloci!
Quindi, in realtà, che cosa è fsync
per se fa le scritture lente e senza di essa le scritture avvengono, e veloce comunque?
La mia più grande preoccupazione era che Mongo memorizzava i dati sulla memoria e poi sul disco dopo il syncdelay, e se l'utente riceve un msg di successo ma l'hardware ha fallito prima di quella sincronizzazione, sostanzialmente, un grosso errore. Ho ragione? o c'è una soluzione a questo? – Hadrian
Ancora, replica.MongoDB è un archivio dati distribuito, non un RDBMS. Una singola istanza di MongoDB è essenzialmente _useless_, perché non si può fare affidamento sul fatto che sia durevole da solo. Una volta che hai due istanze, non devi preoccuparti dell'errore hardware. – kprobst
Una singola istanza con l'inserimento nel journal va bene per la durata, in particolare con il problema di scrittura di Journaling. – MrKurt