Custos de E / S remotos com uma rede de entrega de conteúdo

1

Até onde eu sei, a complexidade de tempo de escanear um diretório e a quantidade de arquivos no diretório são correlacionadas devido aos custos de E / S. Os custos administrativos de colocar os arquivos em uma árvore de diretórios com hash para fazer o upload / download de arquivos por meio de uma API CDN valerão a pena pela eficiência adicional?

Por exemplo, dado um nome de arquivo foo.mp3 , o hash MD5 para isso é 10ebb1120767e9de166e0f5905077cb1 . Portanto, o armazenamento de foo.mp3 em ./10/eb/foo.mp3 permitiria menos arquivos por diretório (supondo que MD5 gera padrões com Base36, isso permite que 36^2 de diretórios raiz com 36^2 subdiretórios cada e pouca chance de colisão de hash)

Considerando que os diretórios em si não são carregados, os custos de I / O de varredura de diretório ainda existiriam com o upload / download direto?

    
por Daniel Li 17.08.2012 / 17:19

1 resposta

1

Em teoria, tal técnica reduziria muito os custos de largura de banda, mas também aumentaria os custos de CPU. Eu sugiro que você dê uma olhada no Rsync e veja como esta ferramenta resolveu este problema sem o uso de diretórios hash. Também dados padrões de dados específicos, é possível ter colisões de hash onde dois arquivos teriam exatamente o mesmo hash MD5. Isso só se torna um problema se a versão nova e antiga de um arquivo específico tiver o mesmo hash MD5. É raro, mas acontece.

    
por 17.08.2012 / 17:28

Tags