Oracle的NoSQL恶梦MongoDB
(暨MongoDB发布2.6版本之际)
这次发布描绘出了一个极具前景的公司或将引领未来超过十年的创新。
By Jack Clark, 8 Apr 2014
翻译:无若
快速崛起的数据库MongoDB已经发布了其2.6版本,它所展现出来的技术,让支持它的公司们宣称这是“下一个十年数据库创新的基础”。
在周二的时候,MongoDB发布的2.6版本数据库是其NoSQL面向文档数据库的正式发布版。关于这个版本,MongoDB公司在他们的博客上宣称“这是全方位核心服务的提升,并将带来一个开创性的自动化工具以及决定性的企业级特性, MongoDB 2.6是我们有史以来最伟大的一次发布。”
在进一步深入研究这个版本之前,特别需要指出的是MongoDB当前拥有的数据库全写锁定技术(database-wide write locking),这意味着整个系统在某一时刻仅可以接受一次写操作。这是一个缺点,它意味着如果数据库有很高频的访问时,多个并发的写操作最终是被序列化进行的。MongoDB公司希望在MongoDB 2.8的时候“大幅提升其并发性能”。急切希望获取此项能力的管理员们似乎还需要等上一段时间。
至于2.6的新特性,MongoDB 2.6主要分为三大类别“操作性,开发体验和企业级适用性”,公司的CTO Eliot Horowitz在于El Reg的谈话中提到。
这意味着数据库提供的技术能给人们更好的可操作性,它让查询和写入更快速,让稳定性和安全性更好。
这些新技术包括插入(insert)和更新(update)性能的提升,为写入操作制定了一个新的规范,一个新的安全认证模型,支持的空间更大,查询操作的改进。
其中一项强有力的查询特性是“交叉索引(index intersection)”,这个特性意味着,“MongoDB能使用多个索引交叉去实现多查询”,根据先前提供的FAQ,MongoDB以前在多查询时非常受限于单索引。
MongoDB公司一直在致力于做大量的改变,改进数据库的事务管理。
这包括在内部部署和云部署上使用“MongoDB 管理服务(MongoDB Management Service)”中的回滚备份(rolling backup)特性。当主机上的这个数据在辅助设备限电的情况下,MongoDB 的副本集(replica sets)和分片集群(sharded clusters)功能将可以发挥作用。当出现问题的时候,这些特性将通过一个“自动化的”管理控制台帮助人们执行和监视MongoDB的集合(sets)和集群(clusters)。
这些特性在人们的感性认知上可能会觉得MongoDB的设计师把问题“复杂化”和“碎片化”,Horowitz说道。
许多经验丰富的DBA们可能会嘲笑这些新的特性,这些东西在传统的关系型数据库中已经很久很久了,但是请你们记住这是一个MongoDB/NoSQL技术的基础,这不同于传统的数据库系统。典型的数据库使用行/列形式存储数据,然而MongoDB把数据存储在内嵌的JSON对象中。
这给了数据库充分的灵活性和易用性,并且解决了许多存在已久的性能瓶颈和管理上的困境。
如果Oracle计划制定“NoSQL标准组织”成为现实,当MongoDB发现的自己的将来就是Oracle过去的辉煌时,那么这里仅仅是像星星之火那样想象一下。
文章转载自开源中国社区 [http://www.oschina.net]