He estado usando MongoDB durante un tiempo, y vi que fsync
espera a que los datos se descarguen en el disco. Ok, entonces pensé que era la solución para la seguridad de los datos.¿Para qué sirve Fsync de MongoDB?
Funcionó bien por toma larga, más larga que la alternativa de SQL. Luego vi que podía poner el syncdelay
en 0
, luego volvió la velocidad, pero pensé en cómo sería en el futuro con muchas solicitudes simultáneas. Así que eliminé la opción fsync
de las actualizaciones y las inserciones, y eliminé la opción de configuración syncdelay
.
Para comprobar si se estaban escribiendo los datos, revisé rápidamente Rockmongo después de hacer una actualización y los datos estaban realmente allí, ¡muy rápido!
Entonces, ¿en serio qué es fsync
si hace que las escrituras sean lentas y sin ellas las escrituras suceden, y rápido de todos modos?
Mi mayor preocupación fue que Mongo almacenó datos en la memoria y luego en el disco después del syncdelay, y si el usuario recibe un mensaje de error pero el hardware falló antes de esa sincronización, básicamente, un gran error. ¿Estoy en lo correcto? o hay una solucion a esto? – Hadrian
Nuevamente, replicación.MongoDB es un almacén de datos distribuidos, no un RDBMS. Una sola instancia de MongoDB es esencialmente _useless_, porque no puede confiar en que sea duradera por sí misma. Una vez que tienes dos instancias, entonces no necesitas preocuparte por la falla del hardware. – kprobst
Una única instancia con registro en diario está bien para la durabilidad, particularmente con la preocupación de escritura de diario. – MrKurt