MongoDB 2.2版本发布 并发性能增强
创始人
2024-08-30 21:20:51
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

  • 文档: 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

【编辑推荐】

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

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
规避非法攻击 用好路由器远程管... 单位在市区不同位置设立了科技服务点,每一个服务点的员工都通过宽带路由器进行共享上网,和单位网络保持联...
范例解读VB.NET获取环境变... VB.NET编程语言的使用范围非常广泛,可以帮助开发人员处理各种程序中的需求,而且还能对移动设备进行...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...