Menu Docs

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

Criar faixas em um cluster fragmentado

Nesta página

  • Saiba mais

Na maioria das situações, um cluster fragmentado criará/dividirá e distribuirá faixas automaticamente sem intervenção do usuário. No entanto, em um número limitado de casos, o MongoDB não pode criar intervalos suficientes ou distribuir dados com rapidez suficiente para suportar a taxa de transferência necessária.

Observação

A partir do MongoDB 6.0, não é possível dividir previamente as faixas criando faixas vazias e fazer com que o balancer distribua automaticamente as faixas. Em vez disso, faça qualquer um destes:

Por exemplo, se você pretende absorver uma grande quantidade de dados em um cluster instável, ou se essa absorção de dados resultará em desbalanceamento de dados, especialmente em situações onde as chaves de fragmento aumentam ou diminuem constantemente. Pré-dividir as faixas de uma coleção vazia e fragmentada pode melhorar o desempenho da taxa de transferência de dados.

Como alternativa, ao definir as zonas e as faixas de zonas antes de fragmentar uma collection vazia ou inexistente, a operação de collection de fragmentação cria faixas para as faixas de zonas definidas, bem como quaisquer faixas adicionais para cobrir toda a faixa dos valores da chave de shard e executa uma distribuição inicial da faixa com base nas faixas da zona. Para obter mais informações, consulte Coleção vazia.

Aviso

Somente intervalos pré-divididos para uma coleção vazia. A divisão manual de intervalos para uma coleção preenchida pode levar a intervalos e tamanhos imprevisíveis, bem como a um comportamento de balanceamento ineficiente ou ineficaz.

Para fazer a divisão dos intervalos vazios manualmente, você pode executar o comando split :

Exemplo

Para criar intervalos para documentos na collection myapp.users usando o campo email como a chave de shard, use a seguinte operação em mongosh:

for ( var x=97; x<97+26; x++ ){
for ( var y=97; y<97+26; y+=6 ) {
var prefix = String.fromCharCode(x) + String.fromCharCode(y);
db.adminCommand( { split: "myapp.users", middle: { email : prefix } } );
}
}

Isso pressupõe um tamanho de coleção de 100 milhões de documentos.

← Partição de dados com blocos

Nesta página