使用哈希函数进行文件存储?

时间:2008-12-04 08:36:53

标签: design-patterns file-storage

在文件系统中存储大量文件/ blob的常用技术是使用散列函数来确定文件路径;例如,散列(标识符) - > “o238455789” - > O23 /789分之8455 (通常也有哈希冲突策略)

这种技术是否有名称(它是'模式'?),以便我可以通过搜索ACM Digital Library或类似的计算文献在线数据库找到它。

是否有任何书籍/论文可以探索问题/解决方案?

PS感谢有用的笔记 - 但没有一个解决上面给出的技术。

4 个答案:

答案 0 :(得分:3)

我认为这就是微软在SQL Server 2008中使用FILESTREAM存储所做的事情。它允许在SQL Server中存储BLOB数据,但允许您直接从磁盘访问文件,这样可以提高性能。

Microsoft发布了您可能感兴趣的managing unstructured data白皮书。 这也是MSDN article describing FILESTREAM以及专业人士和职业选手。文件存储和安全的缺点是BLOB还是不BLOB

答案 1 :(得分:2)

美国专利5742807涉及此 http://www.freepatentsonline.com/5742807.html

  用于管理开放文档存储库中的多个电子存储文档的系统和方法采用单向散列函数来计算存储文档的散列作为索引链接。文档管理索引将存储在存储库中的原始文档的属性映射到散列和文档。散列到位置索引将散列映射到存储库的文件系统中的文档的地址位置。该属性指向哈希,然后哈希指向将属性链接到该位置的位置。

答案 2 :(得分:1)

@Chris Kimpton

这将被称为索引。分片或分区更多地是关于如何分割文件。

答案 3 :(得分:0)

这种听起来像sharding,但我可能错过了细微之处。

同样地,我没有看到很多关于它的文章 - a few on highscalability.com