Você deve compactar seu MongoDB com frequência?

1

Eu li uma postagem do Parse [1] que você pode executar compact para salvar o tamanho do índice no MongoDB.

O tamanho total do nosso índice é de 10GB, e nossa memória total é de 12GB, como você deve saber que o MongoDB tem um desempenho ruim quando o tamanho do índice está próximo do tamanho da memória, então tentamos executar compact e reduzimos o tamanho para 7 GB.

No entanto, após 1 semana, o tamanho aumentou para 10 GB, por isso, atualmente, temos um trabalho de programação para executar os comandos compact .

Estou pensando se isso realmente ajuda, e por que o índice cresce tão rapidamente e estabiliza quando chega aos 10 GB?

[1] link

    
por Ryan 04.05.2013 / 17:34

1 resposta

4

O Parse tem um problema exclusivo: eles não sabem como as pessoas estão usando os MongoDBs que fornecem. A maioria das pessoas que confiam no Parse como um caso de uso para gerenciar seu MongoDB lerá principalmente sobre como o Parse tenta corrigir o mau uso de seus clientes.

Dito isto, você não deve estar sempre compactando. De fato, se você está tendo que compactar regularmente, isso significa que você está usando o MongoDB de forma ineficiente. As razões pelas quais seu MongoDB pode se tornar "desfragmentado" são:

  • Excluir regularmente documentos
  • Atualizando documentos e tornando o documento maior continuamente (não inclui atualizações atômicas)

Se você está excluindo documentos regularmente, deve considerar o uso de coleções limitadas ou TTL.

Se você estiver atualizando documentos e tornando o documento maior (ou seja, estendendo continuamente um array), então você deve pensar em redesenhar o esquema para limitar o crescimento ilimitado do documento. Ou, você pode considerar adicionar preenchimento como espaços reservados para futuras atualizações.

De qualquer maneira, se você tem que compactar regularmente e com frequência, é um sintoma de não usar o MongoDB corretamente, e você deve pensar em redesenhar seu esquema. As compactações são comandos de bloqueio e em datasizes maiores que alguns shows podem demorar um pouco para serem concluídos.

    
por 04.05.2013 / 19:44

Tags