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
统计操作一直不是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
来源:http://blog.nosqlfan.com/html/4111.html
分享到:
相关推荐
在 MongoDB 2.2 版本之后引入了聚合框架,这为开发者提供了更高效的数据处理方式。 #### 聚合管道(Pipeline)概念 聚合管道由多个阶段(stages)组成,每个阶段针对输入文档执行特定的操作,并将处理后的结果传递...
- **2017年**:MongoDB 3.6版本发布,支持多文档事务,大大提升了数据一致性的保障。 - **2019年**:MongoDB 4.2版本发布,增强了安全性和性能。 **1.2 MongoDB的特点与优势** - **文档存储模型**:MongoDB使用...
- `URET NFO v2.2.exe` 和 `URET.nfo`:这些文件通常是 P2P 文件分享中包含的信息文件,提供关于软件的发布者、版权信息和使用条款等。 综上所述,NoSQL Manager for MongoDB 是一个强大的 MongoDB 管理工具,特别...
2.2版本发布于2008年,虽然现在已有更新的版本(如7.x),但2.2仍然被一些项目所使用。它支持Ajax技术,可以创建复杂的、交互性强的Web应用,无需后端编程知识。 2. **网络硬盘系统**:dogdisk是一个利用ExtJS实现...
MongoDB的发布说明详细记录了每个版本的新特性、已知问题和解决的bug等信息。 ##### 12.1 当前稳定版 这部分介绍了当前稳定的MongoDB版本,包括版本号、新特性等。 ##### 12.2 之前的稳定版本 这部分列出了之前...
#### 2.2 数据库操作 - **启动连接**:使用MongoDB客户端库(如Mongoose)与MongoDB数据库建立连接。 - **查询操作**:例如,通过用户名查找用户、根据ID获取文章详情等。 - **增删改操作**:实现用户注册、文章发布...
选择高性能硬件,优化网络带宽和延迟,选用稳定的操作系统和MongoDB版本。 3.5 MongoDB版本规划设计: 选择适合当前业务需求的稳定MongoDB版本,考虑未来升级路径。 3.6 存储服务(MongoDB)运营监控规划设计: ...
- **版本历史**:列出了之前稳定版本的信息及发布日期。 #### 10.3 其他MongoDB发行说明 - **补丁版本**:提供了补丁版本的信息。 - **实验性功能**:列出了实验性功能及其状态。 #### 10.4 版本号 - **命名规则**...
`pymongo-2.2.1`这个版本的发布,意味着开发者可以利用此驱动程序与MongoDB 2.2.x版本进行交互。 一、pymongo介绍 1. pymongo核心功能: - 连接MongoDB服务器:`pymongo`提供了连接MongoDB实例的方法,如` ...
与早前版本相比,2.2 版本进一步提高了性能,简化了部署,并扩展了对于云服务的支持。 *** Core是.NET Core的一部分,它与传统的***有所区别。*** Core旨在创建轻量级、模块化和面向服务的应用程序。它与.NET ...
该系统由方维公司开发,以其稳定性和易用性著称,尤其在2022年6月发布的这个版本中,已经移除了对特定域名的限制,使得用户可以在更多的平台上灵活运用。 一、系统架构与技术栈 方维购物分享系统2.2商业版可能基于...
这个文档包含了作者信息、发布日期、地理位置、评分、评论和标签等字段,其中评论字段是一个嵌套的数组,每个元素也是一个文档,表示一条用户评论。 MongoDB 的查询语言非常强大,支持动态查询。例如,你可以通过...
5. **Web API**:ASP.NET Core支持构建RESTful API,2.2版可能涵盖如何创建Web API,包括使用MongoDB这样的NoSQL数据库,以及面向JavaScript的API设计。 6. **数据访问**:通过EF Core,开发者可以轻松地处理数据库...
2.2 了解JavaScript数据类型 12 2.3 使用运算符 13 2.3.1 算术运算符 13 2.3.2 赋值运算符 14 2.3.3 运用比较和条件运算符 14 2.4 实现循环 16 2.4.1 while循环 17 2.4.2 do/while循环 17 2.4.3 for循环 17 2.4.4 ...
它配置有RabbitMQ,MongoDB(快照存储),PostgreSQL(读存储),EventStore(GES)。 它针对.Net Core 2.2,并包含。 事件源/ CQRS架构 最常见的CQRS / ES架构如下图所示 该示例包含以下概念,每个概念如下所示 ...
版本2.2的发布,带来了许多重要的改进和增强。首先,它提升了对多种数据库系统的兼容性,确保用户可以在一个统一的接口下处理不同的数据库,无需学习新的API或语言。其次,它优化了性能,使得数据查询和操作的速度更...
通过`spring-boot-starter-data-redis`起步依赖,你可以快速设置Redis客户端,并利用Spring Data Redis库提供的高级功能,如事务、发布/订阅和lua脚本支持。 MyBatis是一个持久层框架,它提供了SQL映射框架,允许...
此外,Spring Data MongoDB也得到了更新,以适应不断发展的MongoDB特性和最佳实践。 Spring Boot 2.0与Spring 5.0并行发布,为微服务架构带来了更佳的开箱即用体验。Spring Boot简化了Spring应用的初始化和配置,而...
后端可能采用Python的Django或Flask框架,结合数据库技术如MongoDB或PostgreSQL,构建稳定的数据处理和API接口。 **三、数据管理与预处理** 3.1 数据源 数据主要来源于石油企业的生产数据、地质资料、市场报告等,...
##### 2.2 数据仓库简介 数据仓库是一种用于存储和管理历史数据的系统,主要用于支持业务决策。它将来自不同源系统的数据进行清洗、转换后集中存储在一个中心位置,以便于后续的分析处理。数据仓库通常包含三层结构...