MongoDB 2.2版本发布 并发性能增强

我们能够看到,广受诟病的全局锁已经在这一版中被拿掉,取而代之的是DB级别的锁,而且collection 级别的锁也不远了。

下面就看看2.2 版本的几个新功能吧:

1.并发性能增强

如上面所说,">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

2.新的统计框架

统计操作一直不是MongoDB 的强项,这次版本MongoDB 对统计工作的易用性又进行了提升。在新的统计框架中,用户不需要再使用mapreduce方法去进行数据统计,而是使用统计框架提供和各种方便易用的函数来实现。这个在NoSQLFan之前的文章中也有介绍,见:http://blog.nosqlfan.com/html/3648.html

文档: Aggregation Framework

参考: Aggregation Framework Reference

例子: Aggregation Framework Examples

3.Tag Aware Sharding

在2.2版本中,可以人为的对数据的分片方式进行一些控制,从而使得数据能放到合适的分片节点上(这里所谓的合适,通常来说就是数据离要使用它的应用层更近)。具体的做法是通过对分片节点打tag标识,再将sharding key 按范围对应到这些标识上。比如我们设定sharding key在范围 [a, b]之间时,数据需要放到tag为BeiJing的节点。在[b, c]之前,数据放到tag为TianJin的节点。然后我们再对不同的分片节点打上不同的tag。这样对应sharding key在某个范围内的数据就会在我们的控制下存储到指定的分片节点上了。

详见:http://www.mongodb.org/display/DOCS/Tag+Aware+Sharding

4.TTL的collection

我们知道,MongoDB的capped collection,它保持数据在一定大小和条数范围内,在collection大小超量后,采用移除老数据的方式对空间进行循环利用。capped collection被大量使用在日志及队列系统中,具有很高的性能,但是其灵活性一直不高。

在2.2版本中,MongoDB又引入了TTL collection(TTL == time to live),你可以在给某个字段建立索引的时候指定多长时间后删除掉对应的记录。建立索引的字段必须是date类型的。这样我们就可以灵活的控制数据的过期,可以更方便的存储和管理临时数据。

详见:http://docs.mongodb.org/manual/tutorial/expire-data/

更多介绍:http://docs.mongodb.org/manual/release-notes/2.2/

下载地址:http://www.mongodb.org/downloads

时间: 2024-08-03 02:24:17

MongoDB 2.2版本发布 并发性能增强的相关文章

VS 2012 Update 2新功能:XAML designer载入时间的性能增强

微软已经发布了Visual Studio 2012的Update 2,并带来了丰富的新功能.本次更新提供了一些VS2012的"重大改进".早在1月的时候,微软就为本次更新提供了一个预览版本,以收集大家的测试和反馈,而现在,本次更新的最终版本已能够下载了.新功能中有一个新的"VS Blue"主题,其中也涉及到了XAML designer载入时间的性能增强. 微软在官方一篇博文里表示,"与VS2012.1一样(VS2012.2包含VS2012.1),本次发布包

OpenStack JUNO版本发布——支持Spark和NFV

美国时间2014年10月16日,OpenStack JUNO版本正式发布,这是OpenStack开源云计算项目自2010年创立以来的第10个版本.在过去的6个月里,有18704个代码提交记录,超过133个组织的1419名代码贡献者参与到OpenStack JUNO版本的开发中来,包括支持软件开发.大数据分析和大规模应用架构等342个新功能点亮相. JUNO版本的名字,来源于2014上半年OpenStac峰会举办地美国亚特兰大的一部 同名电影JUNO,电影讲述了一位未婚先孕的少女的故事,但故事一点

PostgreSQL 9.6 内核优化 - sort性能增强(batch化quicksort代替replacement selection when work_mem small)

PostgreSQL 9.6 内核优化 - sort性能增强(batch化quicksort代替replacement selection when work_mem small) 作者 digoal 日期 2016-10-08 标签 PostgreSQL , 9.6 , 内核优化 , sort , replacement selection , quciksort 背景 排序是比较常见的业务需求,为了降低排序的CPU开销,通常会使用索引来满足排序的需求. 但是并不是所有的QUERY都能使用索引

CYQ.Data V4.5.5 版本发布[顺带开源Emit编写的快速反射转实体类FastToT类]

前言:   继上一版本:CYQ.Data 数据框架 版本发布 V4.5,刷的一下又三个多月了, 进一步的说,从 CYQ.Data V4.5的发布到现在,是半年多了,今天,终于得发布新小版本了. 由于上一版本过于稳定,导致此版本无bug修正项,但是新增了几个重要的性能优化功能.   本版本新增加的功能预览   1:优化Access.SQLite数据库链接,以{0}代表根目录 好处:可以配置多个数据库链接,示例如:秋色园QBlog同时用了N个access数据库.   2:MAction增加指定列的查

QBlog博客 V2.5 版本发布 增加健康频道[支持多语言、多用户、多数据库、目录级URL]

QBlog发布历史回顾: 1:2010年11月08日---支持多语言.多用户.多数据库.目录级URL之路过秋天版博客发布[绝对有杀伤力的博客] 2:2010年11月10日---基础却容易被忽略的那点事--web入侵方式及注意事项总结 3:2010年11月15日---支持多语言.多用户.多数据库.目录级URL之路过秋天版博客 V1.0正式版 发布[含详细部署安装说明] 4:2010年11月17日---路过秋天版博客-皮肤制作指南 [附犀利哥入侵攻防站话题] 5:2010年11月29日---路过秋天

震精 - PostgreSQL 10.0 preview 性能增强 - WARM提升一倍性能

标签 PostgreSQL , 10.0 , WARM , 写放大 , 索引写放大 背景 目前,PostgreSQL的MVCC是多版本来实现的,当更新数据时,产生新的版本.(社区正在着手增加基于回滚段的存储引擎) 由于索引存储的是KEY+CTID(行号),当tuple的新版本与旧版本不在同一个数据块(BLOCK)的时候,索引也要随之变化,当新版本在同一个块里面时,则发生HOT UPDATE,索引的值不需要更新,但是因为产生了一条新的记录,所以也需要插入一条索引item,垃圾回收时,将其回收,因此

MongoDB · 最佳实践 · 短连接Auth性能优化

问题 通常我们使用MongoDB的时候,客户端(driver)和MongoDB之间都是使用长连接,但是在某些场景下.某些driver仍然只能使用短连接进行连接,比如PHP.就在我们阿里云数据库MongoDB版商业化后没多久,我们就遇到了一个用户短连接过多导致的性能问题. 这个问题的症状是MongoD的CPU使用率居高不下,16个核都跑满了,影响到了用户的正常使用. 排查 首先想到的当然是看看有没有很多慢查询,针对存在的慢查询都建议用户建了索引后,情况还是没有好转.这时我们观察到用户的driver

Docker 1.10版本发布

本文讲的是Docker 1.10版本发布,[编者的话]Docker 1.10于二月初发布了,这是容器社区最近的重大事件,除了修复很多bug和功能增强之外,Docker1.10还引入了几个我们一直期待的重大改进和特性.在本文中我将会着重阐述我个人认为最有用和最令人兴奋的特性. Docker Compose对于网络和卷的支持Docker Compse 1.6是与Docker 1.10一起发布的,在Docker 1.9中引入了完全重新设计的网络和卷系统后,这一版中增加了对于将网络和卷作为顶级实体的支持

HypriotOS 1.0.0(Blackbeard)版本发布

本文讲的是HypriotOS 1.0.0(Blackbeard)版本发布[编者的话]今天我们骄傲地宣布HyproitOS1.0.0 版本发布-这是一款容器操作系统,可以在任何支持Raspberry Pi系列的设备上运行,能让你在五分钟内从0到Docker. 为了发布这款HypriotOS,我们克服了无数的困难.它不仅包含Docker Engine1.12.1.Docker Compose和Docker Machine最新版本的优秀特性,而且在性能.可靠性和可用性方面都大有提升. 这款产品也很好地