新闻稿




Wiredtiger如何彻底改变MongoDB


与许多其他“下一代”数据库不同,MongoDB没有由难民从大型云基础架构的现有数据库公司或建筑师之一创建。相反,MongoDB创始人首先是渴望为同事创造更加富有成效的数据库系统的开发人员。

开发人员社区热情地回应了发展以中心的方法,而MongoDB迅速赢得了开发人员思维的战斗。MongoDB的初始版本易于部署和易于集成到现有和新兴的编程范例中。但是在引擎盖下,与替代方案相比,原来的MongoDB架构很简单。

软件架构中的简单主要是一件好事。特别是,开发人员已经不信任并避免过度复杂且难以管理企业数据库。但是,进入这些企业数据库的软件工程数十年并非没有优点。在规模,这些传统数据库能够执行挑战MongoDB早期版本的水平。

初始MongoDB架构的核心局限之一是一个相对不已的存储引擎。存储引擎用作数据库API之间的接口 - 将数据视为表或文档以及底层磁盘系统。在MongoDB的第一个版本中,“MMAP”存储引擎允许使用包含MongoDB文档的文件,使用操作系统“MMAP”呼叫在内存中访问。这种实施具有强大可靠但具有显着的性能限制。例如,MMAP无法提供文档级别锁定,这意味着对集合的同时更新可以创建性能瓶颈。

2014年,MongoDB宣布了一个“可插拔”存储引擎API,它允许新的存储引擎与MongoDB数据库集成。出现了各种替代存储引擎。Facebook提供基于RockSDB的存储引擎,并且Perconna发布了其Tokumx发动机。但是,在2014年底,MongoDB获得了WireTtiger,它将其存储引擎调整为MongoDB API。Wiredtiger于2015年与MongoDB 3.0一起发货,并成为MongoDB 3.2中的默认存储引擎。虽然替代存储引擎仍适用于MongoDB,但绝大多数当前的MongoDB实现使用了WireTtiger。

Keith Bastic和Michael Cahill成立了Wiredtiger 2010年。Keith和Michael是开源数据库退伍军人,并于2005年由Oracle收购的开源BerkeleydB数据库。在Oracle在Oracle提供时间后,他们创立了WireTtiger建立下一个 -一代,无锁的键值数据库,可以用作建立数据库系统的存储引擎,例如MySQL和新兴分布式系统,如RIAK。当MongoDB宣布其存储引擎API时,WireTtiger团队立即看到机会并获得了最佳解决方案。其余的,正如他们所说,是历史。

夸大了Wiredtiger技术在MongoDB上的影响很困难。在一年内,Wiredtiger成为MongoDB加密,压缩和内存存储引擎的基础。Wiredtiger的内部交易和快照管理设施,MongoDB 4.0中交易的出现是可能的。同样重要的是,Wiredtiger在MongoDB架构中删除了许多瓶颈,允许MongoDB在高端部署中成功,对MongoDB的持续增长越来越重要。

作为副作用,将数据库专业知识注入MongoDB公司有助于使用技术深度平衡开发人心。可以说,MongoDB成功地成功地换取了几十年的关系数据库行李。然而,通过Wiredtiger,MongoDB已经集成了一种核心发动机,利用了数十年的数据库研发。

Cahill现在管理MongoDB Labs-A全日制的研究小组,查看MongoDB技术的未来。我们将遵循MongoDB实验室的冒险,非常兴趣。