mesclarAllChunksOnShard
Definição
mergeAllChunksOnShard
mergeAllChunksOnShard
encontra e mescla todos os chunks mescláveis que um shard possui para uma determinada collection.
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
Importante
Este comando não é suportado em instâncias sem servidor. Para obter mais informações, consulte Comandos não suportados.
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
Sintaxe
O comando tem a seguinte sintaxe:
db.adminCommand( { mergeAllChunksOnShard: <name of the collection>, shard: <name of the shard>, maxNumberOfChunksToMerge: <maximum number of chunks to merge> /* optional */ } )
Campos de comando
O comando utiliza os seguintes campos:
Campo | Tipo | necessidade | Descrição |
---|---|---|---|
mergeAllChunksOnShard | string | Obrigatório | Nome da collection. |
shard | string | Obrigatório | Nome do fragmento. |
maxNumberOfChunksToMerge | inteiro | Opcional | Número máximo de partes a serem mesclados. |
Comportamento
mergeAllChunksOnShard
encontra e mescla todas as partes mescláveis para uma collection no mesmo shard. Dois ou mais parte contíguos na mesma collection são mescláveis quando atendem a todas estas condições:
Eles pertencem ao mesmo fragmento.
Eles não são pedaços gigantescos. As partes
jumbo
não podem ser mescladas porque não podem participar de migrações.O histórico deles pode ser limpo com segurança, sem interromper transações e leituras de snapshots:
A última migração envolvendo a parte aconteceu há pelo menos tantos segundos quanto o valor de
minSnapshotHistoryWindowInSeconds
.A última migração envolvendo a parte aconteceu há pelo menos tantos segundos quanto o valor de
transactionLifetimeLimitSeconds
.
Exemplo
Este exemplo pressupõe que o histórico esteja vazio para todos os blocos e que todos os blocos não sejam jumbo. Como ambas as condições são verdadeiras, todos os intervalos contíguos no mesmo shard são mescláveis.
Configurar
Esses chunks pertencem a uma coleção chamada coll
com chave de fragmento x
. São nove pedaços no total.
ID do bloco | Min | Máx | Fragmento |
---|---|---|---|
uma | x: 0 | x: 10 | Fragmento0 |
B | x: 10 | x: 20 | Fragmento0 |
C | x: 20 | x: 30 | Fragmento0 |
D | x: 30 | x: 40 | Fragmento0 |
E | x: 40 | x: 50 | Shard1 |
F | x: 50 | x: 60 | Shard1 |
G | x: 60 | x: 70 | Fragmento0 |
H | x: 70 | x: 80 | Fragmento0 |
i | x: 80 | x: 90 | Shard1 |
Passos
Resultado
Depois que esses comandos forem concluídos, os blocos contíguos serão mesclados. Há quatro partes no total em vez das nove originais.
ID do bloco | Min | Máx | Fragmento |
---|---|---|---|
A-B-C-D | x: 0 | x: 40 | Fragmento0 |
E-F | x: 40 | x: 60 | Shard1 |
G-H | x: 60 | x: 80 | Fragmento0 |
i | x: 80 | x: 90 | Shard1 |