Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ /

Preocupação de leitura "local"

Uma query com read concern "local" retorna dados da instância sem nenhuma garantia de que os dados foram escritos na maioria dos membros do conjunto de réplicas (ou seja, podem ser revertidos).

A read concern "local" é o padrão para operações de leitura tanto nos servidores primários quanto nos secundários.

Independentemente do nível de read concern, os dados mais recentes em um nó podem não refletir a versão mais recente dos dados no sistema.

Read concern "local" está disponível para uso com ou sem sessões e transações causalmente consistentes.

Você define a preocupação de leitura no nível da transação, não no nível da operação individual. Para definir a preocupação de leitura para transações, consulte Transações e preocupação de leitura.

Você pode criar collections e índices dentro de uma transação. Se criar explicitamente uma collection ou um índice, a transação deverá usar a read concern "local". Se você criar implicitamente uma coleção, poderá usar qualquer uma das read concerns disponíveis para transações.

Considere a seguinte linha do tempo de uma operação de gravação Escrever 0 para um conjunto de réplicas de três membros:

Observação

Para simplificar, o exemplo pressupõe:

  • Todas as gravações anteriores à gravação 0 foram replicadas com sucesso para todos os membros.

  • Escrever prev é a escrita anterior antes de Escrever 0.

  • Nenhuma outra gravação ocorreu após Write 0.

Linha do tempo de uma operação de escrita para um conjunto de réplica de três membros.
Hora
Evento
Escrita mais recente
Mais recente w: escrita da "maioria"
t 0
Primário aplica Write 0
Primary: escrever 0
secundário 1: Escrever anterior
secundário 2: Escrever anterior
Primary: escrever anterior
secundário 1: Escrever anterior
secundário 2: Escrever anterior
t 1
O secundário 1 aplica a gravação 0
Primary: escrever 0
secundário 1: Escreva 0
secundário 2: Escrever anterior
Primary: escrever anterior
secundário 1: Escrever anterior
secundário 2: Escrever anterior
t 2
O secundário 2 aplica a escrita 0
Primary: escrever 0
secundário 1: Escreva 0
secundário 2: Escreva 0
Primary: escrever anterior
secundário 1: Escrever anterior
secundário 2: Escrever anterior
t 3
O Primário está ciente do sucesso da replicação para o Secundário 1 e envia uma confirmação ao cliente
Primary: escrever 0
secundário 1: Escreva 0
secundário 2: Escreva 0
Primary: escrever 0
secundário 1: Escrever anterior
secundário 2: Escrever anterior
t 4
O primary está ciente da replicação bem-sucedida para o secundário 2
Primary: escrever 0
secundário 1: Escreva 0
secundário 2: Escreva 0
Primary: escrever 0
secundário 1: Escrever anterior
secundário 2: Escrever anterior
t 5
O secundário 1 recebe um aviso (por meio de mecanismo de replicação regular) para atualizar o snapshot de sua gravação w: "maioria" mais recente
Primary: escrever 0
secundário 1: Escreva 0
secundário 2: Escreva 0
Primary: escrever 0
secundário 1: Escreva 0
secundário 2: Escrever anterior
t 6
O secundário 2 recebe um aviso (por meio do mecanismo de replicação regular) para atualizar seu snapshot do w mais recente: "majority" write
Primary: escrever 0
secundário 1: Escreva 0
secundário 2: Escreva 0
Primary: escrever 0
secundário 1: Escreva 0
secundário 2: Escreva 0

Depois, as tabelas a seguir resumem o estado dos dados que uma operação de leitura com "local" read concern veria no momento T.

Linha do tempo de uma operação de escrita para um conjunto de réplica de três membros.
Meta de leitura
Hora T
Estado dos dados
Principal
Após t 0
Os dados refletem a gravação 0.
Secundário 1
Antes de 1
Os dados refletem a gravação anterior
Secundário 1
Após t 1
Os dados refletem Gravação 0
Secundário 2
Antes de 2
Os dados refletem a gravação anterior
Secundário 2
Após t 2
Os dados refletem Gravação 0
← Preocupação de leitura