我正在寻找一种存储和检索数百万个xml文件的简单方法。目前一切都在文件系统中完成,这有一些性能问题。
我们的要求是:
我确实看过几个NoSQL平台(例如CouchDB,Riak和其他),虽然这些系统看起来很棒,但它们看起来几乎像过度杀伤一样:
深入研究Riak之后,我找到了Bitcask(见intro),这看起来就像我想要的那样。介绍中描述的基础知识非常有趣。但不幸的是,没有办法通过java访问bitcask repo(或者在那里?)
所以我的问题归结为
答案 0 :(得分:5)
我认为Bitcask不会对你的用例有用。看起来Bitcask模型是针对每个值的大小相对较小的用例而设计的。
问题出在Bitcask的数据文件合并过程中。这涉及将所有实时值从多个“旧数据文件”复制到“合并数据文件”中。如果你在每个100Kb的区域内有数百万的值,那么这是一个疯狂的数据复制量。
答案 1 :(得分:4)
Bitcask可能适用于这种情况(大值),具体取决于是否存在大量覆盖。特别是,除非存在大量浪费的空间,否则没有理由合并文件,只有当新值以与旧值相同的密钥到达时才会出现。
Bitcask特别适合这种批量加载情况,因为它会将输入数据流直接写入磁盘。在大多数情况下,查找将采用一次搜索,但如果存在任何时间局部性,文件缓存将对您有所帮助。
我不确定Java版本/包装器的状态。