Menu Docs

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

Perguntas frequentes: Compartilhamento com MongoDB

Nesta página

  • A fragmentação é apropriada para uma nova implantação?
  • Posso selecionar uma chave de shard diferente depois de fragmentar uma collection?
  • Por que meus documentos não são distribuídos entre os shards?
  • Como o mongos detecta alterações na configuração do cluster fragmentado?
  • O que significa writebacklisten no registro?
  • Como o mongos utiliza conexões?

Este documento responde a perguntas frequentes sobre fragmentação. Consulte também a seção Fragmentação no manual, que fornece uma visão geral da fragmentação, incluindo detalhes sobre:

Às vezes. No entanto, se o seu conjunto de dados couber em um único servidor, você deverá começar com uma implantação não fragmentada, pois a fragmentação enquanto seu conjunto de dados é pequeno oferece pouca vantagem .

Suas opções para alterar uma chave de shard dependem da versão do MongoDB que você está executando:

  • A partir do MongoDB 5.0, você pode fazer o reshard de uma collection alterando a chave de shard de um document.

  • Você pode refinar uma chave de shard adicionando um ou mais campos de sufixo à chave de shard existente.

  • No MongoDB 4,2 e anterior, a escolha da chave de fragmento não pode ser alterada após o fragmento.

No MongoDB 4.2 e anterior, se você precisar alterar uma chave de shard depois de fragmentar uma collection e não puder atualizar, a melhor opção é:

  • despejar todos os dados do MongoDB em um formato externo.

  • descartar a coleção original fragmentada.

  • configure a fragmentação usando uma chave de shard mais ideal.

  • Divida previamente a faixa da chave de shard para garantir uma distribuição uniforme desde o início.

  • restaurar os dados despejados no MongoDB.

Dica

Veja também:

O balancer começa a distribuir dados entre os shards quando a distribuição de chunks atinge determinados limites. Consulte Limites de Migração.

Além disso, o MongoDB não poderá mover um bloco se o número de documentos no bloco exceder um determinado número. Consulte Número máximo de documentos por intervalo para migrar e Indivisible/JumboChunks.

As instâncias mongos mantêm um cache do banco de dados de configuração que contém os metadados do cluster fragmentado.

mongos atualiza seu cache preguiçosamente emitindo uma solicitação para um shard e descobrendo que seus metadados estão desatualizados. Para forçar o mongos para recarregar seu cache, você pode executar o comando flushRouterConfig em cada mongos diretamente.

O ouvinte de write-back é um processo que abre uma longa pesquisa para retransmitir as gravações de volta de um mongod ou mongos após as migrações para garantir que elas não tenham ido para o servidor errado. O ouvinte de write-back envia as gravações de volta para o servidor correto, se necessário.

Essas mensagens são uma parte fundamental da infraestrutura de fragmentação e não devem causar preocupação.

Cada instância do mongos mantém um conjunto de conexões para os membros do cluster fragmentado. As solicitações do cliente usam essas conexões uma de cada vez; ou seja, as solicitações não são multiplexadas ou pipelined.

Quando as solicitações do cliente forem concluídas, o mongos retornará a conexão com o pool. Esses pools não diminuem quando o número de clientes diminui. Isto pode levar a um mongos não utilizado com um grande número de conexões abertas. Se o mongos não estiver mais em uso, é seguro reiniciar o processo para fechar as conexões existentes.

Para retornar estatísticas agregadas relacionadas a todos os pools de conexão de saída usados pelo mongos, conecte mongosh ao mongos e execute o comando connPoolStats :

db.adminCommand("connPoolStats");

Consulte a seção Utilização de recursos do sistema do documento Configurações do UNIX ulimit .

← Perguntas frequentes: simultaneidade