MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

O GridFS é rápido e confiável o suficiente para produção?


Eu uso gridfs no trabalho em um de nossos servidores que faz parte de um site de comparação de preços com estatísticas de tráfego honrosas (cerca de 25 mil visitantes por dia). O servidor não tem muita ram, 2gigs, e até a CPU não é muito rápida (Core 2 duo 1.8Ghz), mas o servidor tem bastante espaço de armazenamento:10Tb (sata) na configuração raid 0. O trabalho que o servidor está fazendo é muito simples:

Cada produto em nosso comparador de preços tem uma imagem (há cerca de 10 milhões de produtos de acordo com nosso banco de dados de produtos), e o trabalho dos servidores é baixar a imagem, redimensioná-la, armazená-la em gridfs e entregá-la ao navegador do visitante. .. se não estiver presente na grade... ou... entregá-lo ao navegador do visitante se já estiver armazenado na grade. Então, isso pode ser chamado de 'esquema cdn tradicional'.

Armazenamos e processamos 4 milhões de imagens neste servidor desde que ele está funcionando. O redimensionamento e armazenamento é feito por um simples script php... mas com certeza, um script python, ou algo como java pode ser mais rápido.

Tamanho de dados atual:11,23g

Tamanho de armazenamento atual:12,5 g

Índices:5

Tamanho do índice:849,65m

Sobre a confiabilidade:Isso é muito confiável. O servidor não carrega, o tamanho do índice está ok, as consultas são rápidas

Sobre a velocidade :Com certeza, não é tão rápido quanto o armazenamento local de arquivos, talvez 10% mais lento, mas rápido o suficiente para ser usado em tempo real mesmo quando a imagem precisa ser processada, que no nosso caso é muito dependente do php. Os tempos de manutenção e desenvolvimento também foram reduzidos:tornou-se tão simples excluir uma única ou várias imagens:basta consultar o banco de dados com um simples comando de exclusão. Outra coisa interessante :quando reiniciamos nosso servidor antigo, com armazenamento local de arquivos (tão milhões de arquivos em milhares de pastas), às vezes ele trava por horas porque o sistema estava realizando uma verificação de integridade de arquivos (isso realmente levou horas ...). Não temos mais esse problema com gridfs, nossas imagens agora são armazenadas em grandes blocos mongodb (arquivos de 2gb)

Então... em minha mente... Sim, gridfs é rápido e confiável o suficiente para ser usado para produção.