Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

setDefaultRWConcern

Nesta página

  • Definição
  • Comportamento
  • Exemplo
setDefaultRWConcern

O comando administrativo setDefaultRWConcern define a configuração global de read ou write concern padrão para um conjunto de réplicas ou cluster fragmentado. setDefaultRWConcern deve ser executado no banco de dados admin .

setDefaultRWConcern tem o seguinte formato:

db.adminCommand(
{
setDefaultRWConcern : 1,
defaultReadConcern: { <read concern> },
defaultWriteConcern: { <write concern> },
writeConcern: { <write concern> },
comment: <any>
}
)

setDefaultRWConcern tem os seguintes campos:

Campo
Tipo
Descrição
setDefaultRWConcern
int

Defina como 1.

object

Documento que contém a configuração global de read concern. Especifique um objeto de read concern válido.

  • setDefaultRWConcern oferece suporte ao seguinte subconjunto de nível:

  • Para cancelar o read concern padrão atualmente configurado, especifique um documento vazio {}.

  • setDefaultRWConcern oferece suporte apenas à configuração levels read concern. Não é possível especificar nenhuma outra configuração de read concern no read concern padrão.

Omita este documento para deixar inalterada o atual write concern global. Se omitido, setDefaultRWConcern deve especificar defaultWriteConcern.

object

Documento que contém a configuração de write concern padrão global.

  • Para a configuração de write concern w , setDefaultRWConcern oferece suporte a todos os valores de write concern , exceto w : 0.

  • Para a configuração de tempo limite de write concern , setDefaultRWConcern tem como padrão 0 se a configuração for omitida. As operações são bloqueadas até que o write concern solicitado seja atendido. Se estiver especificando um padrão global wtimeout, certifique-se de que o valor seja grande o suficiente para permitir que as operações de gravação atinjam o write concern solicitado.

  • Para desmarcar o write concern configurado no momento, especifique um documento vazio {}.

Omita este documento para deixar o atual write concern global inalterado. Se omitido, setDefaultRWConcern deve especificar defaultReadConcern.

objeto

Opcional. Documento que especifica o write concern a ser usado pelo próprio comando setDefaultRWConcern .

Se omitido, o setDefaultRWConcern usa o write concern padrão global definido anteriormente se houver um configurado.

comment
qualquer

Opcional. Um comentário fornecido pelo usuário para anexar a este comando. Depois de definido, esse comentário aparece junto com os registros desse comando nos seguintes locais:

Um comentário pode ser qualquer tipo BSON válido (string, inteiro, objeto, array etc).

setDefaultRWConcern retorna um objeto que contém o read ou write concern padrão global configurado no momento. Consulte getDefaultRWConcern para obter uma documentação mais completa sobre os campos retornados.

Observação

Exige featureCompatibilityVersion 4.4+

Cada mongod no conjunto de réplicas ou cluster fragmentado deve ter featureCompatibilityVersion configurado para pelo menos 4.4 para usar setDefaultRWConcern.

A partir do MongoDB 5.0, uma vez que o Cluster Wide Write Concern (CWWC) é definido por meio do comando setDefaultRWConcern , o write concern não pode ser desconfigurado.

O MongoDB só aplica o read ou write concern global padrão a operações que não especificam explicitamente um read ou write concern.

Se o MongoDB aplicar o read ou write concern padrão global a uma operação, essa operação se comportará como se esse read ou write concern fosse explicitamente especificado pelo cliente emissor.

Emita setDefaultRWConcern no conjunto de réplicas primary. O primary replica as novas configurações padrão globais para os nós restantes do conjunto de réplicas. Os secundários que ainda não replicaram as configurações padrão globais atualizadas continuam usando sua cópia "obsoleta" local dos padrões.

Emita o comando setDefaultRWConcern com um writeConcern de w : "majority" para garantir que o comando retorne somente após as alterações propagarem para a maioria dos nós do conjunto de réplicas.

Emita setDefaultRWConcern contra um mongos no cluster. O mongos mantém as configurações atualizadas no conjunto de réplicas do servidor de configuração (CSRS). Cada mongos emite periodicamente um getDefaultRWConcern no CSRS para atualizar sua cópia local das configurações globais. Um mongos usa sua cópia local "obsoleta" dos padrões globais durante o período de tempo entre as atualizações.

Emita o comando setDefaultRWConcern com um writeConcern de w : "majority" para garantir que o comando retorne somente após as alterações propagarem para a maioria dos nós do CSRS.

Quando um aplicativo emite uma operação no mongos sem especificar explicitamente uma configuração de read ou write concern, o mongos aplica a configuração padrão global correspondente.

As configurações padrão globais não se propagam para os shards individuais. Você não pode executar setDefaultRWConcern em um shard.

Importante

setDefaultRWConcern exige featureCompatibilityVersion 4.4+. Se você fizer o downgrade do featureCompatibilityVersion do sistema de 4.4 para 4.2, todos os padrões da read e write concerns em todo o cluster serão perdidos, mas as instâncias do mongos poderão continuar aplicando os padrões por até 30 segundos.

O compartilhamento de comandos administrativos que executam operações de gravação no servidor de configuração, como os comandos enableSharding ou addShard, tem comportamento específico com configurações de write concern padrão global:

  • Os comandos usam o "majority" independentemente do write concern padrão global configurado.

  • Os comandos usam um wtimeout mínimo de 60000. Os comandos só usam o write concern padrão global wtimeout se ele for maior que 60000.

Para conjuntos de réplicas ou clusters fragmentados que forçam Autenticação, setDefaultRWConcern exige que o usuário autenticado tenha a ação de privilégio setDefaultRWConcern .

O role integrado do clusterManager fornece os privilégios exigidos para executar o setDefaultRWConcern.

A seguinte operação define o write concern global para o seguinte:

db.adminCommand({
"setDefaultRWConcern" : 1,
"defaultWriteConcern" : {
"w" : 2
}
})

A operação retorna um documento semelhante ao seguinte:

{
"defaultWriteConcern" : {
"w" : 2
},
"updateOpTime" : Timestamp(1586290895, 1),
"updateWallClockTime" : ISODate("2020-04-07T20:21:41.849Z"),
"localUpdateWallClockTime" : ISODate("2020-04-07T20:21:41.862Z"),
"ok" : 1,
"$clusterTime" : { ... }
"operationTime" : Timestamp(1586290925, 1)
}

A operação a seguir define o read concern global como "majority":

db.adminCommand({
"setDefaultRWConcern" : 1,
"defaultReadConcern" : { "level" : "majority" }
})

A operação retorna um documento semelhante ao seguinte:

{
"defaultReadConcern" : {
"level" : "majority"
},
"updateOpTime" : Timestamp(1586290895, 1),
"updateWallClockTime" : ISODate("2020-04-07T20:21:41.849Z"),
"localUpdateWallClockTime" : ISODate("2020-04-07T20:21:41.862Z"),
"ok" : 1,
"$clusterTime" : { ... }
"operationTime" : Timestamp(1586290925, 1)
}

A operação a seguir define o read ou write concern padrão global para o seguinte:

db.adminCommand({
"setDefaultRWConcern" : 1,
"defaultWriteConcern" : {
"w" : 2
},
"defaultReadConcern" : { "level" : "majority" }
})

A operação retorna um documento semelhante ao seguinte:

"defaultWriteConcern" : {
"w" : 2
},
"defaultReadConcern" : {
"level" : "majority"
}

Considere uma implantação com o seguinte padrão de read e referência de escrita:

{
"defaultWriteConcern" : {
"w" : "majority"
},
"defaultReadConcern" : {
"level" : "majority"
},
"updateOpTime" : Timestamp(1586290895, 1),
"updateWallClockTime" : ISODate("2020-04-07T20:21:41.849Z"),
"localUpdateWallClockTime" : ISODate("2020-04-07T20:21:41.862Z"),
"ok" : 1,
"$clusterTime" : { ... }
"operationTime" : Timestamp(1586290925, 1)
}

A operação a seguir desconfigura as configurações globais padrão de read e referência de escrita:

db.adminCommand({
"setDefaultRWConcern" : 1,
"defaultReadConcern" : {},
"defaultWriteConcern" : {}
})

A operação retorna um documento semelhante ao seguinte:

{
"updateOpTime" : Timestamp(1586290895, 1),
"updateWallClockTime" : ISODate("2020-04-07T20:21:41.849Z"),
"localUpdateWallClockTime" : ISODate("2020-04-07T20:21:41.862Z"),
"ok" : 1,
"$clusterTime" : { ... }
"operationTime" : Timestamp(1586290925, 1)
}
← Parâmetro de configuração