Página inicial do Docs → Desenvolver aplicações → Manual do MongoDB
setIndexCommitQuorum
Nesta página
setIndexCommitQuorum
Altera o número mínimo de membros portadores de dados (ou seja, quorum de commit), incluindo o primário, que deve concluir uma construção de índice simultânea em andamento antes que o primário marque esses índices como prontos.
O comando tem a seguinte sintaxe:
db.runCommand({ setIndexCommitQuorum: <string>, indexNames: [ <document> ], commitQuorum: <int> | <string>, comment: <any> }) O comando usa os seguintes parâmetros:
CampoTipoDescriçãostring
O nome da collection para a qual os índices estão sendo construídos.
array
Uma array de construções de índices em andamento para modificar. Cada elemento da array deve ser o nome do índice.
Os índices especificados para
indexNames
devem ser o conjunto inteiro de compilações em andamento associadas a um determinado construtor de índices, ou seja, os índices construídos por uma única operaçãocreateIndexes
oudb.collection.createIndexes()
.int
oustring
O número mínimo de membros do conjunto de réplicas portadoras de dados (ou seja, quorum de commit), incluindo o primário, que deve relatar uma construção de índice bem-sucedida antes que o primário marque o
indexes
como pronto.A partir do MongoDB v5.0, é possível retomar algumas construções de índice interrompidas quando o quórum para a confirmação está definido como
"votingMembers"
.Nós do conjunto de réplicas em um quorum para o commit devem ter
members[n].buildIndexes
definido comotrue
. Se algum nó de votação tivermembers[n].buildIndexes
definido comofalse
, você não poderá usar o"votingMembers"
commit quorum padrão. Configure todos os nós commembers[n].buildIndexes
definido comotrue
ou selecione um commit quorum diferente.suporta os seguintes valores:
"votingMembers"
- todos os membros do conjunto de réplicas de votos com dados (Padrão). Um membro "votante" é qualquer membro do conjunto de réplicas em quemembers[n].votes
é maior que0
."majority"
- uma maioria simples de membros do conjunto de réplicas com dados.<int>
- um número específico de membros do conjunto de réplicas com dados. Especifique um número inteiro maior que0
.
comment
qualquerOpcional. 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:
mensagens de log do mongod, no campo
attr.command.cursor.comment
.Saída do perfil do banco de dados, no campo
command.comment
.Saída de
currentOp
, no campocommand.comment
.
Um comentário pode ser qualquer tipo BSON válido (string, inteiro, objeto, array etc).
Comportamento
Observação
Exige featureCompatibilityVersion 4.4+
Cada mongod
no conjunto de réplica ou agrupamento fragmentado deve ter featureCompatibilityVersion configurado para pelo menos 4.4
para iniciar construções de índice simultaneamente entre membros do conjunto de réplicas.
A emissão setIndexCommitQuorum
não tem efeito sobre as compilações de índice iniciadas com commitQuorum de 0
.
Importante
Nós do conjunto de réplicas com buildIndexes definido como false
não podem ser incluídos em um commit quorum.
Exemplos
O índice se baseia em um conjunto de réplicas ou cluster fragmentado criado simultaneamente em todos os membros do conjunto de réplicas com dados. Para clusters fragmentados, a construção de índices ocorre somente em shards que contêm dados para a collection que está sendo indexada. O primário requer um número mínimo de membros voting
portadores de dados (ou seja, quórum para a confirmação), incluindo ele próprio, que deve concluir a compilação antes de marcar o índice como pronto para uso. Consulte Construções de Índices em Ambientes Replicados para obter mais informações.
A seguinte operação inicia uma construção de índice de dois índices:
db.getSiblingDB("examples").invoices.createIndexes( [ { "invoices" : 1 }, { "fulfillmentStatus" : 1 } ] )
Por padrão, as compilações de índice usam o commit quorum "votingMembers"
ou todos os membros do conjunto de réplicas votantes portadores de dados. A operação a seguir modifica o quorum de confirmação de criação de índice para "majority"
ou para uma maioria simples dos nós votantes portadores de dados:.
db.getSiblingDB("examples").runCommand( { "setIndexCommitQuorum" : "invoices", "indexNames" : ["invoices_1", "fullfillmentStatus_1"], "commitQuorum" : "majority" } )
Os índices especificados para
indexNames
devem ser o conjunto inteiro de construções em andamento associadas a um determinado construtor de índice, ou seja, a operaçãocreateIndexes()
.O campo
indexNames
especifica os nomes dos índices. Como os índices foram criados sem um nome explícito, o MongoDB gerou um nome de índice concatenando os nomes dos campos indexados e a ordem de classificação.