Menu Docs

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

setIndexCommitQuorum

Nesta página

  • Comportamento
  • Exemplos
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:

Campo
Tipo
Descrição
setIndexCommitQuorum
string

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ção createIndexes ou db.collection.createIndexes() .

int ou string

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 como true. Se algum nó de votação tiver members[n].buildIndexes definido como false, você não poderá usar o "votingMembers" commit quorum padrão. Configure todos os nós com members[n].buildIndexes definido como true 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 que members[n].votes é maior que 0.

  • "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 que 0.

  • Um nome de tag do conjunto de réplicas.

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).

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.

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ção createIndexes() .

  • 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.

← Definir versão de compatibilidade do recurso