我正在寻找一种简单的方法来存储和检索数百万个xml文件。当前,一切都在文件系统中完成,这存在一些性能问题。
我们的要求是:
我确实看过几种NoSQL平台(例如CouchDB,Riak等),尽管这些系统看起来不错,但它们似乎几乎像蜜蜂般被杀了:
在深入研究Riak之后,我发现了Bitcask(请参阅intro),这似乎正是我想要的。简介中介绍的基础知识确实很吸引人。但是不幸的是,没有办法通过Java访问位桶仓库(或者在那里?)
所以我的问题归结为
最佳答案
我认为Bitcask在您的用例中不能很好地工作。看起来Bitcask模型是为每个值的大小相对较小的用例设计的。
问题出在Bitcask的数据文件合并过程中。这涉及将所有实时值从多个“较旧的数据文件”复制到“合并的数据文件”中。如果您有数百万个值(每个值都在100Kb左右),那么这就是大量的数据复制。
请注意,以上内容假设XML文档的更新频率相对较高。如果很少进行更新,并且/或者您可以应对大量的空间“浪费”,那么合并可能只需要很少进行,或者根本不需要进行。