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

数据库 其他数据库 MongoDB
8月29号,MongoDB发布了其2.2版本,2.2 版本可以看作是2.0 版本的功能增强版,本次改进最大的亮点在于其并发性能的提升

 我们能够看到,广受诟病的全局锁已经在这一版中被拿掉,取而代之的是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

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

【编辑推荐】

  1. MongoDB 2.0 正式版发布
  2. MongoDB 2.0新功能逐个看之Compact Command
  3. 主流NoSQL数据库全方位评测之MongoDB
  4. 教你如何利用MySQL学习MongoDB
  5. 在Windows环境下MongoDB搭建和简单操作

责任编辑:彭凡 来源: NOSQLfan
相关推荐

2010-05-21 08:35:04

Android 2.2Google

2010-06-08 09:45:27

openSUSE 11

2012-05-07 23:45:54

FantomJavaJVM

2012-03-06 13:45:43

JavaJActor

2009-06-18 09:14:47

Spring modu

2016-01-14 13:40:55

ThinkJS性能ypeScript

2014-07-04 13:33:03

jQueryjQuery Mobi

2012-05-09 09:11:52

Silverlight

2009-07-16 16:53:29

Jython 2.5

2012-08-21 10:54:46

2013-03-07 21:13:34

APM网络优化深信服科技

2012-05-17 13:28:08

OpenStack

2011-08-18 11:26:23

Kingsoft OfOffice

2019-12-25 09:49:12

WebKitWindowsChrome

2014-05-20 16:27:35

JVMScala

2014-03-03 13:42:32

Informatica

2013-11-26 10:34:00

IT运维管理BTIM北塔

2009-05-13 09:17:52

jBPM 4工作流jBPM

2009-12-28 10:16:48

Groovy 1.7

2009-02-25 08:38:01

Windows 7上网本
点赞
收藏

51CTO技术栈公众号