我需要一个索引文件格式,可以容纳几百个大的可变大小的二进制blob。
Blob大约1-5MB,文件可能大到1 GB。我需要能够快速查找,读取,添加和删除blob而无需重新创建整个文件。我没有必要压缩blob,但是如果删除了blob,我想要回收或重用这个空间。
理想情况下会有Java API。
我目前正在使用ZIP格式进行此操作,但是没有已知的方法来更新ZIP文件而不重新创建它并且性能很差。
我已经研究过SQLite,但它的blob性能很慢,并且对我的需求来说太过分了。
有什么想法,还是应该自己动手? 如果我自己推出任何书籍或网页建议?
答案 0 :(得分:4)
Berkeley DB Java Edition做你需要的。它是免费的。
答案 1 :(得分:1)
您需要一些虚拟文件系统。我们的SolFS是其中一个选项但我们只有JNI层,因为引擎是用C语言编写的。还有一个选项,CodeBase,但由于它们没有提供其文件系统的评估版本,我知道一些关于它的事。
SolFS非常适合您的任务,因为它允许您拥有文件的替代流,并将可搜索的元数据与每个文件甚至替代流相关联。