Una consulta con preocupación de lectura "local" devuelve datos de la instancia sin garantía de que los datos se hayan escrito en la mayoría de los miembros del conjunto de réplicas (es decir, que se puedan revertir).
La lectura de preocupación "local" es la predeterminada para operaciones de lectura contra los datos primarios y secundarios.
Independientemente de la Nivel de preocupación de lectura: los datos más recientes de un nodo pueden no reflejar la versión más reciente de los datos del sistema.
Disponibilidad
Leer preocupación "local" está disponible para su uso con o sin sesiones y transacciones causalmente consistentes.
Leer Preocupación local y Transacciones
La preocupación de lectura se configura a nivel de transacción, no a nivel de operación individual. Para configurar la preocupación de lectura para transacciones, consulte Transacciones y preocupación de lectura.
Puedes crear colecciones e índices dentro de una transacción. Si explícitamente se crea una colección o un índice, la transacción debe usar nivel de consistencia de lectura "local". Si creas implícitamente una colección, puedes usar cualquiera de los niveles de consistencia de lectura disponibles para las transacciones.
En un set de réplicas, incluso si una transacción utiliza un nivel de consistencia de lectura de local, es posible que observe un aislamiento de lectura más fuerte, donde la operación lee desde un snapshot en el punto en el que se abrió la transacción.
Ejemplo
Considere la siguiente línea de tiempo de una operación de 0 escritura: Escribir en un conjunto de réplicas de tres miembros:
Nota
Para simplificar, el ejemplo supone:
Todas las escrituras anteriores a Escritura se han replicado exitosamente en todos los 0 miembros.
Escribir anterior es la escritura anterior a 0 Escribir.
No se han producido otras escrituras después de 0 Escritura.
Tiempo | Evento | Escritura más reciente | Más reciente w: "mayoría" escribe |
|---|---|---|---|
t 0 | Primario aplica Escribir 0 | Primary: Write 0 Secondary 1: Write prev Secondary 2: Write prev | Primary: Write prev Secondary 1: Write prev Secondary 2: Write prev |
el 1 | El secundario aplica 1 escritura 0 | Primary: Write 0 Secondary 1: Write 0 Secondary 2: Write prev | Primary: Write prev Secondary 1: Write prev Secondary 2: Write prev |
el 2 | El secundario aplica 2 escritura 0 | Primary: Write 0 Secondary 1: Write 0 Secondary 2: Write 0 | Primary: Write prev Secondary 1: Write prev Secondary 2: Write prev |
el 3 | El servidor principal es consciente de la replicación exitosa al 1 servidor secundario y envía un acuse de recibo al cliente. | Primary: Write 0 Secondary 1: Write 0 Secondary 2: Write 0 | Primary: Write 0 Secondary 1: Write prev Secondary 2: Write prev |
el 4 | El primario está al tanto de la replicación exitosa al secundario 2 | Primary: Write 0 Secondary 1: Write 0 Secondary 2: Write 0 | Primary: Write 0 Secondary 1: Write prev Secondary 2: Write prev |
el 5 | El secundario recibe un aviso (a través del mecanismo de replicación regular) para actualizar su instantánea de su escritura w: "mayoría" más 1 reciente | Primary: Write 0 Secondary 1: Write 0 Secondary 2: Write 0 | Primary: Write 0 Secondary 1: Write 0 Secondary 2: Write prev |
el 6 | El secundario recibe un aviso (a través del mecanismo de replicación regular) para actualizar su instantánea de su escritura w: "mayoría" más 2 reciente | Primary: Write 0 Secondary 1: Write 0 Secondary 2: Write 0 | Primary: Write 0 Secondary 1: Write 0 Secondary 2: Write 0 |
Luego, las siguientes tablas resumen el estado de los datos que una operación de lectura con interés de lectura "local" vería en el T momento.
Leer objetivo | Tiempo T | Estado de los datos |
|---|---|---|
Primario | Después de t 0 | Los datos reflejan la 0 escritura. |
Secundario 1 | Antes de t 1 | Los datos reflejan la escritura anterior |
Secundario 1 | Después de t 1 | Los datos reflejan la escritura 0 |
Secundario 2 | Antes de t 2 | Los datos reflejan la escritura anterior |
Secundario 2 | Después de t 2 | Los datos reflejan la escritura 0 |