是Berkeley DB的XML一个可行的后端数据库?(Is Berkeley DB XML a v

2019-07-20 02:10发布

显然,BDB-XML已经出现自至少2003,但我最近才在其无意中发现了甲骨文公司的网站: Berkeley DB的XML 。 这里的书籍说明:

Oracle Berkeley数据库XML是一个开源的,基于XQuery的访问存储在容器中,并根据其内容索引的文档嵌入XML数据库。 Oracle Berkeley数据库XML是建立在Oracle Berkeley数据库之上,并继承了其丰富的功能和属性。 像Oracle Berkeley数据库,它在运行过程中与无需人工管理的应用程序。 Oracle Berkeley数据库XML增加了对Oracle Berkeley数据库之上的文件分析器,XML索引器以及XQuery引擎,使数据的最快,最高效的检索。

对我来说,似乎根本想法是技术上可行,可能不是像CouchDB的或MongoDB中较新的基于文档-DBS更加成熟。 它支持C,C ++,Ruby和Perl中,只要我能确定。 它甚至有采用自动选主/从模式的HA-功能,如自动复制。

不过,我似乎无法找到任何使用它的项目。 是不是有什么根本性的错误呢? 是许可证过于繁琐? 是否太复杂?

为什么它没有被使用?

Answer 1:

我曾经是Berkeley DB的产品在甲骨文公司的产品经理。 我一直在工作围绕这些BDB数据库做了八年了,我写了“导语”你复制到你的问题。

市售我们正在使用的(非详尽的清单,只是把我的头顶部): - 欧特克使用BDB XML的Mapquest服务 - Farelogix使用BDB XML的预约系统 - 喜达屋酒店使用BDB XML管理有关他们所管理的属性信息 - Juniper网络公司使用BDB XML在NetScreen安全管理 - 许多我不能说出由于合同的限制... - 等等......

Berkeley DB的XML已相对忽视了开源世界,所以我不知道。 这里有几个项目,也有使用它,没有所有的公众,我知道的。 我最近看到一个漂亮的博客文章有关如何在Emacs使用BDB XML。 设置完成后,你可以通过XML交互文本编辑器中运行XQuery语句。 这就是说,它是商业和开源的使用非常可行的。

XQilla是由BDB XML工程师从我们多年来一起编一些其他的XML项目创建的项目。 因为它是一个伟大的XQuery和XML解析库我们开源(Apache 2.0许可)XQilla。 我们是一家数据库公司,以便获取XML它被解析后,它组织成我们的B树数据库以及对查询优化,索引,统计工作中的一块,和整个吨的其他代码是XQilla但在什么坐镇上述BDB的B树胶粘二者连成BDB XML。 随意使用它,如果它在所有解决您的问题,这些没有数据库存在。

从地上爬起来为XML内置产品一般都有其核心,其管理的磁盘信息的几个交易的数据结构。 有没有可以做,我们已经没有在Berkeley DB的完成,在Berkeley DB的XML使用很多优化。 如果说,从地上爬起来,以管理XML将是比BDB XML显著更好地建立一个数据库,是说有什么东西从Berkeley DB的失踪,我不认为这里有一个防御性的说法,但我愿意学习,如果有人对并发,事务数据结构为BDB尚未实现高效的XML存储的重要信息。

存在,是一个Java的XML数据库,我们有一个Java API JNI,如果你想和我们一般打脱裤子存在于性能,稳定性和可扩展性测试。

赛德娜是一个良好的XML数据库,这是Apache 2.0的,所以它不是一个双重许可,它只是FLOSS软件。 我建议你基准它针对BDB XML,你可能会感到惊讶。

MarkLogic是一个伟大的XML / XQuery的数据库服务器,他们已经建立了非常坚实的产品。 这不是一个软件库,它是一个服务器。 有BDB XML和MarkLogic之间显著的差异,但它们均购 - 只有BDB XML是开源的。

提到埃利奥特Rusty Harold的博客上XML数据库的状态的人,要小心,这是大约2007年 - 嘿,是不是存在任何的NoSQL数据库之前? ;-)

看看Kimbro Staken的老,但仍然相关审核 ( 由Oracle变成了白皮书 ),这是很好的,但也过时了。 “使用原生XML数据库的XML数据:当一个基于XQuery的原生XML数据库比SQL数据库更好的决定”

多年来,真正的权威已经罗恩Bourrett 。 他有很多关于这个问题的话。

MongoDB的和CouchDB的是在不同的细分市场。 他们分布,分区,最终一致BASE式(非ACID)数据管理和一些认为他们做的非常好。 我认为他们是年轻的时候,还没有定论。 他们是一个良好的开端,我希望他们继续增长,数据存储是一个很难的事情得到正确的和一个尺寸不适合大家的问题/需求。 BDB XML的分布式故事是建立在单主,多副本总是一致的(如果你想)基于日志的复制和Paxos的基于选举算法当主失败。 我们没有对数据进行分区,每个节点包含相同的数据(整个数据库)。 我们不允许写随处可见,仅在主。 我们支持除TCP / IP更多的复制(哎呀,你可以,如果你想使用一个硬件总线定制到您的服务器)。 我们建立了我们的HA产品解决读的可扩展性,系统可用性和容错性。 NoSQL的分布式系统设计用于在任何地方写分区数据管理。 选择好了吧? :)

XML作为数据模式和XQuery作为一种语言来访问和管理XML内容一直是​​并将继续是一个非常成功的解决方案。 也许没有这么多使用的NoSQL解决方案的更多的公共网站,这些天(这是好的,让我感兴趣的),但更多的是在文档管理,金融,基因组学,生物信息学,数据交换,信息,等等。 相比于SQL /关系型产品的时候,但肯定比对象数据库或块的NoSQL数据库解决方案,任何新来的孩子更成功的XML可能是一个小众的数据库。 每个存储解决方案有它的位置,XML将继续这样做有用的事情遥远的未来。

在一天结束的时候,我希望你选择一个数据库适合您的需求。



Answer 2:

有一点要记住的是Berkeley DB的执照。 除非你要开源项目,你就需要购买甲骨文的许可,这就是为什么我怀疑你没有看到更多。 所有的Berkeley DB数据库是相当出色,否则。 我倾向于使用他们的任何东西我不会分配(在内部项目)。



Answer 3:

从我的经验Berkeley DB的XML有很多的承诺,很多相关的用例。 但是你要小心,不要期望它的工作在所有情况下。 需要注意的是最后一个版本是Berkeley DB的XML 2.5.16于2009年12月22日。

它是基于,Berkeley DB的技术,是非常强大和令人眼花缭乱的快速,如果你正确地配置你的用例。 有很多细节需要得到正确的(例如允许交易,记录,了解获得MVCC工作所需的所有标志)。 我相信大多数人却因为这样那样的复杂问题。

我曾经虽然遇到一些其他缺陷。 最大的一个是,在排序时查询规划将不会使用索引。 这意味着,你不能做这相当于一个相当常见的数据访问模式:

SELECT * FROM table ORDER BY time DESC LIMIT 100;

如果你这样做的Berkeley DB会订货,当你超越一个几万节点的它慢,这使得前检查磁盘上的所有时间值。 其他人报道这个问题,以及在这里:

https://forums.oracle.com/forums/message.jspa?messageID=9754987#9754987

您可以枚举所有索引直接为好,但你失去做即席查询的能力。

另据报道在论坛上是与索引类型和性能的一些奇怪的行为:

https://forums.oracle.com/forums/message.jspa?messageID=9753022#9753022

因此,尽管基于密钥的访问是快速和可靠的,要小心它不成熟的查询规划的。



Answer 4:

取决于你的需求是什么。 我不会推荐一个原生XML DB过对方,但我可以告诉你的是,出版业是一个已经几乎放弃了关系型数据库和移动大时间原生XML数据库来处理他们的出版物的内容整个行业的一个例子。 最突出的(和最昂贵的)是从MarkLogic之一。 eXistDB是一个开源的一个,这似乎是得到一些牵引。

下面是关于这个问题的卓越XML大师之一,埃利奥特生锈哈罗德的优秀文章。 http://cafe.elharo.com/xml/the-state-of-native-xml-databases/



Answer 5:

最好的[*] XML库是从地上爬起来,以支持XML,像那些MarkLogic或eXist的 。

然而,对于BDB-XML存储引擎是历史悠久的Berkeley DB引擎,最广泛的传播嵌入式数据库引擎之一。 它体积小,快速和稳定。

BDB-XML本身肯定是一个有能力的产品。 它的前身的名义下了Sleepycat出售,如果这能帮助你找到任何引用。 这是与XQilla XQuery引擎BDB存储引擎的组合。

你也可以找到更多的信息搜索XQilla 。 这是一个相当强大的引擎,而且还开源。

[*]当然,“最好”,是一个主观的术语。



Answer 6:

所以在最后,这就是为什么似乎BDB-XML没有广泛使用的所有原因:

  • 只允许内置的本地数据库(虽然也有做主从复制的规定)
  • 不是免费用于商业用途
  • 从地上爬起来建成以支持XML,许多竞争产品

似乎没有任何理由不使用它,但也没有太多使其从竞争中脱颖而出。 最重要的是,近期的竞争中拥有更多的是“哦,有光泽!” 吸引力和XML数据库本身仍然是一个小众市场。



Answer 7:

我已经为同最近和整个来到塞德娜XML DBMS。



Answer 8:

“是不是有什么根本性的错误呢?”

是。 这是XML。

而不幸的是,这意味着,那些谁发明了它没有刻意去看看已经存在的概念和公司,比如,关系代数和关系演算技术的力量。

这样做比那些更不是一个简单的任务(这就是把它礼貌),大家至今谁试图失败。

这应该告诉你一些事情。



文章来源: Is Berkeley DB XML a viable database backend?