日期:2014-05-16 浏览次数:20493 次
?
摘要:经过近一年开发,MongoDB最新的稳定版2.2发布。重要的新特性包括:聚集框架、多数据中心支持、并发改进、TL集合和Shell改进等。
MongoDB开发团队10gen的CTO?Eliot Horowitz刚刚发表博客,宣布最新的稳定版(可以用于生产环境)MongoDB 2.2已经可以下载。距离上一个稳定版本2.0发布的2011年9月,将近一年。
MongoDB是高性能开源文档数据库,也是目前最受关注的NoSQL技术之一,以敏捷、可扩展和对企业应用友好(支持事务,一致性和数据完整性保证,有大企业应用案例)而著称。有人甚至认为LAMP中的M应该用MongoDB取代MySQL,其火热程度可见一斑。使用MongoDB的公司包括Foursquare, Craiglist, 迪士尼,SAP,Intuit,EA等。国内淘宝、大众点评、视觉中国等公司有应用。
MongoDB?2007年由DoubleClick的两位前员工Dwight Merriman和Eliot Horowitz开发。据Merriman回忆,当时他们的计划本来是要建立一个与GAE和Windows Azure类似但完全由开源技术支撑的云平台,但发现找不到合适的开源数据库技术,于是自己动手。没想到最后这个数据库技术反而成了公司的主营业务。有意思的是,10gen这个公司实际上隶属于Dwight Merriman和DoubleClick原CEO?Kevin Ryan一起创办的AlleyCorp,旗下还有Business Insider和Gilt Groupe两家知名公司,而且业务完全不同。
?
8月29号,MongoDB发布了其2.2版本,2.2 版本可以看作是2.0 版本的功能增强版,本次改进最大的亮点在于其并发性能的提升,我们能够看到,广受诟病的全局锁已经在这一版中被拿掉,取而代之的是DB级别的锁,而且collection 级别的锁也不远了。
?
下面就看看2.2 版本的几个新功能吧:
如上面所说,MongoDB 2.2版本中不再有凌驾于整个daemon上的全局锁,而是将锁的粒度减小到了DB级别。并且按MongoDB 的CEO Dwight Merriman所说,这次虽然没有一步到位的将锁粒度改到collection级别,但是从全局锁到DB 锁这一步,已经完成了锁粒度细化的最艰难部分工作,相信collection级别的读写锁会很快到来。
除了减小锁粒度外,MongoDB对2.0 版本中的锁抑制功能也进行了一些增强,引入了PageFaultException 架构来进行锁抑制的判定。
感兴趣的朋友可以看看这个演讲及PPT:http://www.10gen.com/presentations/concurrency-internals-mongodb-2-2
统计操作一直不是MongoDB 的强项,这次版本MongoDB 对统计工作的易用性又进行了提升。在新的统计框架中,用户不需要再使用mapreduce方法去进行数据统计,而是使用统计框架提供和各种方便易用的函数来实现。这个在NoSQLFan之前的文章中也有介绍,见:http://blog.nosqlfan.com/html/3648.html