当前位置:  开发笔记 > 编程语言 > 正文

Berkeley DB XML是一个可行的数据库后端吗?

如何解决《BerkeleyDBXML是一个可行的数据库后端吗?》经验,为你挑选了2个好方法。

显然,BDB-XML至少从2003年开始出现,但我最近才在甲骨文的网站上偶然发现它:Berkeley DB XML.这是模糊:

Oracle Berkeley DB XML是一个开源的,可嵌入的XML数据库,基于XQuery访问存储在容器中的文档,并根据其内容编制索引.Oracle Berkeley DB XML构建于Oracle Berkeley DB之上,并继承了其丰富的功能和属性.与Oracle Berkeley DB一样,它与应用程序一起运行,无需人工管理.Oracle Berkeley DB XML在Oracle Berkeley DB之上添加了文档解析器,XML索引器和XQuery引擎,以实现最快,最有效的数据检索.

对我而言,似乎潜在的想法在技术上是合理的,并且可能比基于文档的新数据库(如CouchDB或MongoDB)更成熟.据我所知,它支持C,C++,Ruby和Perl.它甚至具有HA功能,例如使用具有自动选举功能的主/从模型进行自动复制.

但是,我似乎找不到任何使用它的项目.它有什么根本性的错误吗?许可证太繁重了吗?太复杂了吗?

为什么不使用它?



1> Greg Burd..:

我曾经是Oracle的Berkeley DB产品的产品经理.我已经在这些BDB数据库上工作了八年多了,我写了你复制到问题中的"模糊".

商业上我们被用于(非详尽列表,只是我的头脑中): - Autodesk在Mapquest中使用BDB XML - Farelogix使用BDB XML作为预订系统 - 喜达屋酒店使用BDB XML来管理他们管理的属性的信息 - 瞻博网络在NetScreen安全管理器中使用BDB XML - 由于合同限制,许多我无法命名...... - 依此类推......

Berkeley DB XML在开源世界中相对被忽略,为什么我不知道.这里有一些项目,并且已经使用过它,我所知道的并不是公开的.我最近看到一篇关于如何在Emacs中使用BDB XML的精彩文章.设置完成后,您可以在文本编辑器中以交互方式通过XML运行XQuery语句.也就是说,它对商业和开源使用非常可行.

XQilla是由BDB XML工程师从我们多年来编织在一起的一些其他XML项目中创建的项目.我们开源(Apache 2.0许可证)XQilla,因为它是一个很棒的XQuery和XML解析库.我们是一家数据库公司,所以在解析完XML后将其组织到我们的btree数据库以及查询优化,索引,统计和其他大量代码的工作是XQilla的基础.以上BDB的btree将两者粘合在一起成为BDB XML.如果它解决了你的问题,请随意使用它,这些根本没有数据库.

从头开始构建的XML产品通常在其核心有一些事务数据结构,用于管理磁盘上的信息.我们尚未在Berkeley DB中完成并在Berkeley DB XML中使用的优化程度不高.要说一个从头开始构建的数据库来管理XML将比BDB XML明显更好地说Berkeley DB缺少一些东西,我认为这里没有一个可辩护的论点,但我愿意学习是否某人有关于BDB尚未实现的高效XML存储至关重要的并发事务数据结构的信息.

eXist是一个Java XML数据库,如果您愿意,我们有一个Java JNI API,我们通常在性能,稳定性和可伸缩性测试中击败了eXist.

Sedna是一个很好的XML数据库,它是Apache 2.0,因此它不是双许可证,它只是FLOSS软件.我建议你对BDB XML进行基准测试,你可能会感到惊讶.

MarkLogic是一个很棒的XML/XQuery数据库服务器,它们构建了一个非常可靠的产品.它不是一个软件库,它是一个服务器.BDB XML和MarkLogic之间存在显着差异,但它们都是商业上可用的 - 只有BDB XML是开源的.

有人提到Elliot Rusty Harold关于XML数据库状态的博客,小心它大约在2007年 - 嘿,不是在任何NoSQL数据库存在之前吗?;-)

看看Kimbro Staken的旧的但仍然相关的评论(由Oracle改为白皮书),它很好,但也过时了."为您的XML数据使用原生XML数据库:确定基于XQuery的本机XML数据库何时优于SQL数据库"

多年来真正的权威是Ron Bourrett.他在这个问题上有很多话要说.

MongoDB和CouchDB属于不同的细分市场.他们进行分布式,分区式,最终一致的BASE式(非ACID)数据管理,有些人认为他们做得非常好.我认为他们很年轻,陪审团仍在外面.它们是一个良好的开端,我希望它们继续增长,数据存储是一件难以做到的事情,一个尺寸并不适合每个人的问题/需求.BDB XML的分布式故事建立在单主,多副本上,当主服务器出现故障时,始终保持一致(如果您愿意)基于日志的复制和基于PAXOS的选举算法.我们不对数据进行分区,每个节点都包含相同的数据(整个数据库).我们不允许在任何地方写入,只允许在主服务器上.我们支持超过TCP/IP进行复制(哎呀,如果需要,您可以使用自定义的硬件总线).我们构建了HA产品,以解决可读性,系统可用性和容错问题.NoSQL的分布式系统专为编写任何分区数据管理而设计.选择很好,对吧?:)

XML作为数据模式,XQuery作为访问和管理XML内容的语言,一直是并且将继续是一个非常成功的解决方案.现在使用NoSQL解决方案的公共网站可能不是那么多(这很好,对我来说很有趣),但在文档管理,金融,基因组学,生物信息学,数据交换,消息传递等方面更是如此.与SQL /关系产品相比,XML可能是一个小众数据库,但它肯定比对象数据库或块NoSQL数据库解决方案上的任何新孩子更成功.每个存储解决方案都有自己的位置,XML将在未来继续做有用的事情.

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


自从它发布以来,我一直试图在不同的时间使用dbxml,而我的经验是,在Linux上构建总是很痛苦.开发人员从不打算将其打包为*任何*流行的发行版; 更糟糕的是,股票来源通常不会在Linux上编译而没有一长串非常不灵活的先决条件和不断调整的地方.这仍然是这种情况 - 自定义构建脚本在参数解析时存在错误,并且源包括一年前在debian中修复的错误.

2> Shaun..:

要记住的一件事是Berkeley DB的许可证.除非您打算开源您的项目,否则您需要从Oracle购买许可证,这就是为什么我怀疑您没有看到更多的许可证.所有Berkeley DB数据库都非常出色.我倾向于将它们用于我不打算分发的任何东西(在家庭项目中).

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有