sh.addTagRange()
Nesta página
Definição
sh.addTagRange(namespace, minimum, maximum, tag)
Observação
Este método faz aliases para
sh.updateZoneKeyRange()
. O MongoDB fornece fragmentação de zona como sucessora da fragmentação com reconhecimento de tags.Anexa um intervalo de valores chave de fragmento a uma tag de fragmento criada usando o método
sh.addShardTag()
.Você pode executar o comando de banco de dados de dados do
updateZoneKeyRange
e seus auxiliaressh.updateZoneKeyRange()
esh.addTagRange()
em uma coleção não compartilhada ou uma coleção não existente.sh.addTagRange()
recebe os seguintes argumentos:ParâmetroTipoDescriçãonamespace
stringO namespace da collection fragmentada a ser marcada.minimum
documentoO valor mínimo da faixa da chave de shard a ser incluída na tag. O mínimo é uma correspondência inclusiva. Especifique o valor mínimo na forma de<fieldname>:<value>
. Esse valor deve ser do mesmo tipo ou tipos de BSON que a chave de fragmento.maximum
documentoO valor máximo do intervalo da chave de fragmento a ser incluído na tag. O máximo é uma correspondência exclusiva. Especifique o valor máximo na forma de<fieldname>:<value>
. Esse valor deve ser do mesmo tipo ou tipos de BSON que a chave de fragmento.tag
stringO nome da tag à qual anexar o intervalo especificado pelos argumentosminimum
emaximum
.Use
sh.addShardTag()
para garantir que o balanceador migre os documentos que existem dentro do intervalo especificado para um fragmento ou conjunto de fragmentos específico.Emita
sh.addTagRange()
somente quando conectado a uma instânciamongos
.
Comportamento
Limites
As faixas de zona estão sempre inclusas no limite inferior e exclusivas do limite superior.
Distribuição inicial de chunks para collections vazias ou inexistentes
Se você estiver considerando realizar a fragmentação de zona em uma collection vazia ou inexistente, use sh.addTagRange()
para criar as zonas e as faixas de zona antes de fragmentar a collection. A criação de zonas e faixas de zona em collections vazias ou inexistentes permite que o MongoDB otimize o processo inicial de criação e distribuição de chunks ao fragmentar a collection. Esse processo otimizado permite uma configuração mais rápida da fragmentação por zonas com menos sobrecarga do balanceador do que a criação de zonas após a fragmentação. O balanceador executa todo o gerenciamento de blocos após a criação e distribuição otimizadas do bloco inicial.
Para obter um exemplo de definição de zona e zona para distribuição inicial de parte, consulte Predefinir zona e zona para uma Collection vazia ou não existente.
Distribuição inicial de chunks com chaves de shard com hash compostas
O MongoDB oferece suporte a collections de fragmentação em índices com hash compostos. O MongoDB pode executar a criação e a distribuição otimizadas do chunk inicial ao fragmentar a collection vazia ou inexistente em uma chave shard com hash composto.
Se o campo com hash for o prefixo da chave de fragmento (ou seja, o primeiro campo na chave de fragmento), todos os itens a seguir deverão ser verdadeiros para que o MongoDB execute a criação e a distribuição inicial do chunk:
A collection tem um único intervalo de zona com
MinKey
para todos os campos de limite inferior eMaxKey
para todos os campos de limite superior.sh.shardCollection()
especifica a opção presplitHashedZones: true .
Se o campo hashed não for o prefixo da chave de shard (ou seja, a chave de shard tem um ou mais campos principais não hasheados), todos os itens a seguir deverão ser verdadeiros para que o MongoDB execute a criação e a distribuição inicial do chunk:
A coleção tem uma faixa de zona para cada combinação de valores de campo de prefixo distintos (ou seja, todos os campos que precedem o campo hashed).
Para o limite inferior de cada faixa de zona , especifique
MinKey
para o campo hashed e todos os campos subsequentes.Para cada faixa de zona, pelo menos um campo de prefixo de limite superior deve diferir de sua contraparte de limite inferior.
sh.shardCollection()
especifica a opção presplitHashedZones: true .
Para obter um exemplo mais completo da definição de zona e zona para a distribuição inicial de parte em uma chave de fragmento com hash, consulte Pre-definir zona e zona para uma Collection vazia ou não existente.
Coleções descartadas
A eliminação de uma coleção exclui seus intervalos de zonas/tags associados.
Nas versões anteriores, o MongoDB não remove as associações de tags para uma collection descartada e, se posteriormente você criar uma nova collection com o mesmo nome, as associações de tags antigas serão aplicadas à nova collection.
Exemplo
Com uma chave de shard de {state: 1, zip: 1}
, a operação a seguir cria um intervalo de tags que cobre os códigos postais no estado de Nova York:
sh.addTagRange( "exampledb.collection", { state: "NY", zip: MinKey }, { state: "NY", zip: MaxKey }, "NY" )