Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ /

Criar faixas em um cluster fragmentado

Nesta página

  • Saiba mais

Na maioria das situações, umcluster fragmentado criará/ divisão e distribuirá intervalos 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, você não pode pré-dividir intervalos criando intervalos vazios e fazer com que o balanceador distribua automaticamente os intervalos. 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 coleção vazia ou inexistente, a operação de coleção de fragmentos cria faixas para as faixas de zonas definidas, bem como quaisquer faixas adicionais para cobrir toda a faixa dos valores da chave de fragmento e executa uma distribuição da faixa inicial 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.

Voltar

Partição de dados

Nesta página