Docs Menu
Docs Home
/ /
readConcern

readConcern "available"

Una consulta con preocupación de lectura "available" 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).

  • Para un clúster fragmentado, la lectura proporciona una mayor tolerancia a las"available" particiones.

    Las consultas con la preocupación de lectura no requieren una verificación para garantizar que el fragmento correcto recibió la "available" consulta.

    En caso de particiones de red, estas consultas se dirigen al fragmento considerado apropiado antes de que se produjera la partición. No esperan garantías de consistencia de servidores que podrían no estar disponibles. Si el fragmento estaba en proceso de migración de fragmentos, las consultas con pueden "available" devolver documentos huérfanos.

    Advertencia

    mongos no garantiza que las consultas con la preocupación de lectura "available" se dirijan a los fragmentos correctos. El fragmento que recibe la consulta devuelve datos, pero es posible que no sea el propietario autorizado de los datos solicitados.

    Esto puede provocar que las consultas devuelvan resultados incorrectos o inesperados.

  • Para las colecciones no fragmentadas (incluidas las colecciones en una implementación independiente o una implementación de conjunto de réplicas), "local" las "available" preocupaciones de lectura y se comportan de manera idéntica.

Independientemente del nivel de consistencia de lectura, es posible que los datos más recientes de un nodo no reflejen la versión más reciente de los datos en el sistema.

Tip

La preocupación leída "available" es no disponible para su uso con sesiones y transacciones causalmente consistentes.

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.

Cronología de una operación de guardar en un set de réplicas de tres nodos
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 "available" vería en el T momento.

Cronología de una operación de escritura en un conjunto de réplicas de tres miembros.
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

Volver

"local"