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

Consistencia de lectura propia en Mongodb

Hay un par de puntos sobre esta pregunta.

  1. No se garantiza que tenga consistencia de lectura después de escritura a menos que esté usando "safe=true" , "w=1" (o mayor) o "j=true" con tu escritura. Puede incluirlos como parte de insert() o update() comandos, o bien use set_lasterror_options() para configurar estas opciones para la conexión, la base de datos o la colección que está utilizando.

  2. Si está permitiendo lecturas desde nodos secundarios (por ejemplo, una preferencia de lectura que no sea PRIMARIA), entonces no obtendrá semántica de lectura después de escritura, sino solo consistencia eventual.

  3. Si está utilizando una Preferencia de lectura de PRIMARIO y está configurando las opciones de último error adecuadas, tiene la garantía de obtener una semántica de lectura después de escribir en todas las operaciones que usan el mismo socket, es decir, el mismo subproceso.

  4. Si está utilizando varios subprocesos y NO está leyendo desde nodos secundarios, tiene la garantía de obtener una coherencia de lectura tras escritura siempre que emita la lectura en el segundo subproceso después de que se complete la escritura en el primer subproceso. Puede usar primitivas de sincronización de subprocesos estándar para asegurar esto.