sql >> Base de Datos >  >> NoSQL >> MongoDB

Las pruebas Rspec fallan aleatoriamente al analizar objetos ActiveRecord generados por eventos Mongoid

En una configuración típica de Mongodb, puede haber un retraso entre el momento en que la escritura de la base de datos regresa con éxito y el momento en que se pueden leer esos datos. Hay dos razones para esto:

  • Para mejorar el rendimiento, se puede devolver una escritura "insegura" antes de que los datos se confirmen en el disco.
  • Mongodb usa conjuntos de réplicas y hay un retraso en la replicación. Por lo general, las lecturas se distribuyen a las réplicas como una forma de equilibrio de carga, por lo que incluso si usa una escritura segura, puede estar leyendo desde un servidor diferente al que acaba de escribir y, por lo tanto, no puede ver los datos que acaba de escribir.

Para asegurarse de que siempre pueda volver a leer de inmediato los datos que acaba de escribir con Mongoid, debe configurar las opciones de sesión de la base de datos consistency: :strong, safe: true , ninguno de los cuales es el predeterminado.