Página inicial do Docs → Desenvolver aplicações → Manual do MongoDB
Preocupações de leitura/preocupações de gravação padrão do MongoDB
Preocupação de leitura
Preocupação de leitura padrão
A read concern padrão é a seguinte:
operações | Preocupação de leitura padrão |
---|---|
Lê em relação ao primário | Observação
|
Lê contra secundários. | Observação
|
Especificar preocupação de leitura: drivers MongoDB
Informações adicionais
Para obter mais informações sobre o read concern disponível, consulte Read Concern.
Escreva preocupação
Write concern padrão
A partir do MongoDB 5.0, o write concern padrão implícito é w: majority
. No entanto, considerações especiais são feitas para sistemas contendo arbiters:
A maioria dos votos de um conjunto de réplicas é de 1 mais metade do número de membros votantes, arredondado para baixo. Se o número de membros votantes portadores de dados não for maior que a maioria votante, o write concern padrão é
{ w: 1 }
.Em todos os outros cenários, a preocupação de gravação padrão é
{ w: "majority" }
.Para um cluster fragmentado, a referência de escrita padrão é sempre recuperada do servidor de configuração. Como o servidor de configuração deve ter zero árbitro, a referência de escrita padrão implícita para um cluster fragmentado é sempre
"majority"
. Mesmo que um fragmento esteja em uma topologia Primário-Secundário-Árbitro, ele ainda terá uma referência de escrita padrão de"majority"
. A partir do MongoDB 5.1, essa configuração não é permitida se a referência de escrita em todo o cluster não estiver definida.
Especificamente, MongoDB usa a seguinte fórmula para determinar a preocupação de escrita padrão:
if [ (#arbiters > 0) AND (#non-arbiters <= majority(#voting-nodes)) ] defaultWriteConcern = { w: 1 } else defaultWriteConcern = { w: "majority" }
Por exemplo, considere as seguintes implantações e suas respectivas preocupações de escrita padrão:
Não Árbitros | Árbitros | Nós de votação | Maioria dos nós de votação | Write concern padrão implícito |
---|---|---|---|---|
2 | 1 | 3 | 2 | { w: 1 } |
4 | 1 | 5 | 3 | { w: "majority" } |
No primeiro exemplo:
Existem 2 não-arbitores e 1 árbitro para um total de 3 nós de votação.
A maioria dos nós de votação (1 mais metade de 3, arredondado para baixo) é 2.
O número de não-arbitros (2) é igual à maioria dos nós de votação (2), resultando em uma preocupação implícita de escrita de
{ w: 1 }
.
No segundo exemplo:
Existem 4 não-árbitros e 1 árbitro para um total de 5 nós votantes.
A maioria dos nós de votação (1 mais metade de 5, arredondado para baixo) é 3.
O número de não-arbitros (4) é maior que a maioria dos nós de votação (3), resultando em uma preocupação implícita de escrita de
{ w: "majority" }
.
Especificar write concern: drivers MongoDB
Informações adicionais
Para obter mais informações sobre as write concerns disponíveis, consulte write concern.
Garantias de consistência causal
Com sessões de cliente causalmente consistentes, as sessões de cliente só garantem consistência causal se:
as operações de leitura associadas usam
"majority"
read concern eas operações de gravação associadas usam
"majority"
write concern.