在文件系统中存储大量文件/blob 的常用技术是使用散列函数来确定文件路径;例如 hash(identifier) -> "o238455789" -> o23/8455/789 (通常也有哈希冲突策略)
这种技术是否有名称(它是“模式”吗?),以便我可以通过搜索ACM 数字图书馆或类似的在线计算文献数据库找到它。
有没有探讨问题/解决方案的书籍/论文?
PS感谢有用的注释-但没有一个解决上面给出的技术。
在文件系统中存储大量文件/blob 的常用技术是使用散列函数来确定文件路径;例如 hash(identifier) -> "o238455789" -> o23/8455/789 (通常也有哈希冲突策略)
这种技术是否有名称(它是“模式”吗?),以便我可以通过搜索ACM 数字图书馆或类似的在线计算文献数据库找到它。
有没有探讨问题/解决方案的书籍/论文?
PS感谢有用的注释-但没有一个解决上面给出的技术。
我认为这是微软在 SQL Server 2008 中使用 FILESTREAM 存储所做的。它允许在 SQL Server 内部存储 BLOB 数据,但允许您直接从磁盘访问文件,从而为您提供出色的性能。
Microsoft 发布了一份关于管理您可能感兴趣的非结构化数据的白皮书。还有一篇MSDN 文章描述了 FILESTREAM以及文件存储的优缺点以及是否为 BLOB 到 BLOB
美国专利 5742807 涉及此
http://www.freepatentsonline.com/5742807.html
用于管理开放文档库中的多个电子存储文档的系统和方法采用单向散列函数来计算存储文档的散列作为索引链接。文档管理索引将存储在存储库中的原始文档的属性映射到散列和文档。哈希到位置索引将哈希映射到存储库文件系统中文档的地址位置。属性指向散列,然后散列指向将属性链接到位置的位置。
@克里斯金普顿
这将被称为索引。分片或分区更多的是关于如何拆分文件。
这种听起来像sharding,但我可能错过了其中的微妙之处。
同样,我没有看到很多关于它的文章——highscalability.com 上的一些文章