Qual é a melhor estrutura para salvar subpastas incrementais?

2

Eu tenho 3 pastas diferentes contendo informações específicas sobre pedidos de vendas. Tudo estava funcionando bem, mas há alguns dias comecei a ter um problema sobre a quantidade de subdiretórios em cada uma dessas pastas principais (pedidos acima de 32K).

Minha solução temporária era mover os dados mais antigos para um backup e removê-los do ambiente de produção, mas eu realmente gostaria de tê-los lá, então minha pergunta é:

Quais opções você recomenda para armazenar uma estrutura onde eu possa salvar subpastas incrementais sem atingir o máximo? Eu estou em uma caixa do servidor Ubuntu com ext3

Parece algo como

-tmp /
 --order_1 /
 --order_2 /
...
--order_32000 /
...
-imgs /
--order_1 /
--order_2 /
...
--order_32000 /
...
-hd_imgs /
--order_1 /
--order_2 /
...
--order_32000 /

dentro de cada pasta order_xx, existem cerca de 1 a 30 arquivos.

    
por Mauro Morales 15.02.2012 / 16:45

2 respostas

2

Parece-me que você precisa de um banco de dados (real) (em oposição ao sistema de arquivos) e algum tempo de desenvolvimento para fazer um front-end para ele. Investigue o MongoDB ou o Postgres .

Se você precisar de uma solução mais rápida, tente dividir seus pedidos por tempo: armazene-os em uma hierarquia como [year]/[month]/order_###### (você pode continuar usando números de pedido serial, se desejar, ou escreva o número do pedido como YYYYMM##### mais fácil de encontrar no sistema mais tarde, sem ter que fazer pesquisas na hierarquia de diretórios).

Isso funcionará, desde que o número de pedidos em um mês seja inferior a cerca de 30.000. O próximo limite que você atingirá é o filesystem inode limit , e a única solução é um novo sistema de arquivos (ou dividir seus dados em vários sistemas de arquivos). Dê uma olhada no df -i em seu sistema hoje e lembre-se de que todos os arquivos e diretórios irão absorver mais um inode. Eventualmente você vai acabar.

    
por 15.02.2012 / 16:55
0

Você pode atualizar para o ext4 para contornar o limite de 32k.

    
por 15.02.2012 / 19:11