MongoDB最新稳定版本2.2发布

摘要:经过近一年开发,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两家知名公司,而且业务完全不同。

2.2的新特性与改进、bug修补多达1000多个,发布说明详细介绍了其中比较重要的,包括:

  • 增加聚集框架(Aggregation Framework)。现在不用Map Reduce,也能轻松地操作和处理MongoDB中的文档了。这里的聚集就是汇总、统计的意思,相当于SQL中的Group By等语句。框架有管道(pipeline)和表达式两种操作符,前者包括$sort, $project, $group等,后者包括逻辑、比较、算术、日期和条件等操作符。更多详情可以参见:
  • 多数据中心支持。通过读优先级(read preference)和带标签的分片(tag-aware sharding),改善了MongoDB在分布在不同地理位置上的多个数据中心的支持。
  • 改进了并发特性。主要包括:新增数据库级锁;新增一个新的子系统避免了在大部分页面错误情况下的锁定,并改进了Windows上的页面错误检测。同时还改善了并发报表。
  • TTL集合(TTL Collection)。在上限集合(capped collection)之外,新增可以用时间控制的集合。通过一种特殊索引和背景线程每分钟删除系统中到时的文档。对于很多时间敏感的文档处理非常方便。详情参见文档
  • Shell改进。包括Unicode支持、多行命令支持、bash风格编辑支持等。


针对操作并发性的改进说明:

(1)由之前版本的全局的实例锁升级到数据库锁,锁粒度变小了

 (2)新增子系统避免pagefault exception(内存页面错误异常):(1)锁是偏向于写操作的,即相对于读操作,写操作有更高的优先权。当一个读和写操作同时在等待一个锁时,mongodb优先给写操作分配锁。(2)多个文档上的写操作(比如带有multi操作的update),会周期性地交出锁以容许读操作(例如在日志写的时间内,批量写)。类似的,长时间的读锁也会定期的退让以便写操作有机会完成。(3)mongodb会跟踪内存并在执行一个读操作或者更新操作之前预判数据是否内存可用。如果数据不在内存,读操作或者更新操作即交出锁同时mongodb加载数据到内存。一旦数据到了内存,该读操作或者更新操作会再次请求读锁或者写锁完成此次操作。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值