mesclarAllChunksOnShard
Definição
mergeAllChunksOnShard
mergeAllChunksOnShard
encontra e mescla todos os chunks mescláveis que um shard possui para uma determinada collection.
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 chunksjumbo .
jumbo
chunks não são mescláveis 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 |