Criar faixas em um cluster fragmentado
Nesta página
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.
Saiba mais
Para as faixas iniciais criadas e distribuídas pelo comando de fragmentação, consulte Coleção vazia.
Balancer e distribuição automática de faixas entre fragmentos, consulte Componentes internos do balancer e Migração de faixa.
Para migrar intervalos manualmente, consulte Migrar faixas em um cluster fragmentado.