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.
Disponibilidade
Read concern "local" is available for use with or without causally consistent sessions and transactions.
Read concern local e transações
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.
You can create collections and indexes inside a transaction. If explicitly creating a collection or an index, the transaction must use read concern "local". If you implicitly create a collection, you can use any of the read concerns available for transactions.
Em um conjunto de réplicas, mesmo que uma transação use preocupação de leitura local, você poderá observar um isolamento de leitura mais forte quando a operação ler a partir de um snapshot no ponto em que a transação foi aberta.
Exemplo
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.
Hora | Evento | Escrita mais recente | Mais recente w: escrita da "maioria" |
|---|---|---|---|
t 0 | Primário aplica Write 0 | Primary: Gravar 0 | Primary: Gravar anterior |
t 1 | O secundário 1 aplica a gravação 0 | Primary: escrever 0 | Primary: Write prev |
t 2 | O secundário 2 aplica a escrita 0 | Primário: Escrever 0 | Primary: Write prev |
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: Write 0 | Primary: Write 0 |
t 4 | O primary está ciente da replicação bem-sucedida para o secundário 2 | Primary: Write 0 | Primary: Write 0 |
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: Write 0 | Primary: Write 0 |
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: Write 0 | Primary: Write 0 |
Then, the following tables summarizes the state of the data that a read operation with "local" read concern would see at time T.
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 |