http://blog.chinaunix.net/xmlrpc.php?r=blog/article&id=4865696&uid=15795819
2015.3.3 在经历了改版本号和11个rc版本之后,期待已久的Mongodb3.0.0终于发布,举群欢腾,下面我们就来看一下这个跳票版本主要有哪些改进。
一、插件式存储引擎API
MongoDB向MySQL看齐,开发了插件式存储引擎API,为第三方的存储引擎厂商加入Mongodb提供了方便。已经支持和即将支持的一些存储引擎:
- MMAP v1 默认存储引擎
- WiredTiger
- RocksDB
- TokuFT
- FusionIO(裸设备)
二、WiredTiger存储引擎
毫无疑问,WiredTiger存储引擎的引进是此版本最大的亮点。MongoDB公司已然感受到Tokumx深深的恶意和广大使用者对mongodb耗费巨大内存和磁盘的深恶痛绝,所以MongoDB拿(为)出(了)了(不)最(跳)大(票)的(更)诚(久)意,直接收购了WiredTiger,做了一个土豪应该做的事情。下面看一下这个存储引擎都给MongoDB的使用者带来了哪些福音。
- 文档锁
WiredTiger通过多版本控制(MVCC)实现了文档锁,再也不用忍受库锁带来的并发性问题。这将大大提高诸如比价,打车等全update类型应用的可用性。这是一个现代数据库应该做的,不用说谢谢。
- 压缩
当,监控报表上几十台机器磁盘报警的时候,当,删了表不释放空间的时候,当,挨个机器重新同步释放碎片的时候,允许我哭一会。现在好了,wiredTiger压缩一切,压缩journal,压缩表,压缩索引,且都是单独文件存储,想删就删,删了就释放,浑身上下哪哪都不疼了。
WiredTiger支持snappy(默认)、zlib压缩算法和None高端不压缩算法。snappy根据测试可以减少80%的磁盘使用。虽然可能会提高一些cpu,但是相比压缩带来的好处,天空飘来五个字儿.....
- 内存可配置
通过wiredTiger.engineConfig.cacheSizeGB参数可以配置运行时MongoDB内存使用大小,默认为物理内存的一半。老板再也不说MongoDB是内存小恶魔了。
wiredtiger还有其他一些参数配置,具体详见:http://docs.mongodb.org/v3.0/reference/program/mongod/#cli-wiredtiger-options
三、MMAP v1存储引擎
MongoDB给之前内存映射的存储也起了个名字,那就是“内存映射第一版”,MMAPv1依旧是MongoDB的默认存储引擎。此版本最大的改进就是锁力度变成集合锁,也就是表锁。但最大的问题是表空间还是按照库名来的,所以删除表依旧不会释放空间。为了解决空间重用问题和碎片问题,mongodb这次彻底的将Power of 2 Sized Allocations扶正,也就是之前说的usePowerOf2Size,将padding factor废弃。对于增删改频繁的业务,使用Power of 2 Sized Allocations,以提升效率。对于纯写入的应用,使用no padding,以节省空间。
四、复制集改进
- 最大支持50个数据节点,但是投票节点仅有7个。相配套的,getlasterror中的 w: “majority” 项也仅代表投票节点的大多数。
- 修改rs.stepDown()机制。在Primary执行stepDown:①、尝试kill掉长时操作,如建索引,map reduce。②、判断主从延迟,从库延迟不能超过10s。10s可配置,使用secondaryCatchUpPeriodSecs参数。
五、sharding改进
- 添加sh.removeTagRange()函数
- 为moveChunk和cleanupOrphaned 命令添加writeConcern选项。
- 废弃releaseConnectionsAfterResponse参数,mongodb在返回之后就会立即释放链接回连接池,这大大降低连接数的使用。
六、查询和索引
-
修改explain函数,现在explain可以支持count,find,group,aggregate,update,remove等操作。显示结果更全面更精细化。使用方法也有修改
点击(此处)折叠或打开
- db.collection.explain().<method(...)>
- 后台索引建立过程中,不能进行删库删表删索引操作。
- 使用 createIndexes命令可以同时建立多个索引,并且只扫描一遍数据,提升了建索引的效率。
- 废弃dropDups参数,以后不能通过这个删除重复数据了。
以上是一些主要的改进,还有很多小地方比如废弃了closeAllDatabase命令,废弃了addUser()函数等,不再一一介绍,更多详见http://docs.mongodb.org/v3.0/release-notes/3.0/。
此版本改进还是比较大,但是毕竟刚出,升级有风险,上线需谨慎!
相关推荐
5. **新查询优化器**:MongoDB 3.0引入了新的查询优化器,能更好地分析查询计划,提高查询效率。 6. **操作日志(oplog)大小动态调整**:在3.0.6中,oplog大小可以根据需求动态调整,提高了系统的适应性。 7. **...
MongoDB 3.0.6 版本是在2015年发布的一个稳定版本,包含了多个重要的改进和修复。这个版本主要关注性能优化、安全性增强以及对不同操作系统(如Windows 7)的支持。在Windows 7环境下运行MongoDB,用户可以利用其...
MongoDB 3.0.4 是 MongoDB 发布的一个稳定版本,它引入了许多关键功能和改进。以下是这个版本的一些重要特性: 1. **文档数据库**:MongoDB 使用JSON格式的文档来存储数据,这种格式允许嵌套的数据结构,使得复杂...
2015.3.3正式发布了Mongodb3.0,对比2.0版本加入了许多新特性,主要加了新的存储引擎WiredTiger,默认引擎是MMAP;本文档主要讲述的是MongoDB 3.0数据压缩测试;感兴趣的朋友可以过来看看
MongoDB 3.0 是在2015年3月3日正式发布的,与之前的2.0版本相比,它引入了大量的新功能和技术改进。其中最重要的一个特性就是加入了新的存储引擎——WiredTiger,而默认使用的存储引擎仍然是MMAPv1。下面我们将详细...
1. Vue 3.0:Vue.js 是一款流行的前端JavaScript框架,其最新版本3.0引入了许多性能优化和新特性,如Composition API、Suspense组件和Teleport等。Vue 3.0 提供了更好的模块化和代码组织方式,使得项目的维护和扩展...
这本书是根据CC BY-NC 3.0许可发布的,意味着可以自由地复制、分发、修改或展示这本书,但是必须按照许可条款,作者Karl Seguin应该被明确地认定为作者,并且不能用于商业目的。 书中提到,虽然技术的发展速度很快...
这个特定的版本 2.2.4 是 Grails 的一个稳定发行版,发布于2014年,包含了当时最新的特性和改进。 **描述解析:** "管理您的笔记" 表示 notey 应用程序提供了创建、编辑和组织个人笔记的功能。它利用了 MongoDB ...
6. **用户体验**:源代码可能涉及到UI/UX设计,如响应式布局以适应不同设备,以及无障碍访问( Accessibility)特性,确保所有用户都能方便地使用社区功能。 7. **社区功能**:社区可能包含项目展示、论坛讨论、...
1. **MongoDB 的核心特性** - 文档型数据库:MongoDB 存储数据以 JSON 格式的文档,这使得数据模型灵活且易于理解和处理。 - 分布式架构:支持水平扩展,可以添加更多的服务器来提高性能和存储容量。 - 自动分片...
首先,MongoDB的“最新版本”可能指的是发布时的最新稳定版本,例如这里的3.0.3。每个新版本通常会带来性能优化、新功能和错误修复。在3.0.3这个版本中,可能包括了增强的查询性能、更好的数据安全性和改进的复制集...
从MongoDB 3.0版本开始,MongoDB引入了新的存储引擎API,这使得用户能够集成具有新功能的可插拔存储引擎,从而更好地利用特定的硬件架构。MongoDB自带多种支持的存储引擎,对于大多数应用而言,WiredTiger存储引擎...
手册最后提供了MongoDB的发布笔记,这些笔记记录了MongoDB的当前稳定版本和之前版本的变更点以及最新的版本特性。如果您在使用MongoDB时遇到问题,或者希望了解最新版本的功能,这些发布笔记将是宝贵的资源。 总的...
- **特性概述**:列举ThinkPHP3.0的主要功能,如自动加载、缓存机制、安全特性等。 - **系统流程**:描述请求处理的整体流程,从用户请求到响应生成的过程。 - **开发流程**:指导开发者如何构建应用,包括项目...
Spring 3.0是Spring框架的一个重要版本,它在2009年发布,带来了许多新的特性和改进,显著提升了框架的灵活性和可扩展性。这个"spring3.0最新lib包"包含了Spring框架的不同模块,每个模块都有独立的JAR文件,允许...
Spring 3.0 是 Spring 框架的一个重要版本,发布于2009年,它带来了许多新特性和改进,极大地增强了 Java 开发者在企业级应用开发中的灵活性和效率。Spring 框架是一个全面的后端开发解决方案,核心特性包括依赖注入...
这款工具以其轻量级、高效能以及对MongoDB 3.0及以上版本的兼容性而受到开发者的欢迎。在MongoDB的生态系统中,它扮演着数据库管理和操作的重要角色,尤其对于那些不熟悉命令行界面或者希望提升工作效率的用户来说,...
- ThinkPHP遵循开放出版许可协议1.0或更高版本,该协议允许自由使用、复制、修改和发布,但需保留版权声明。 **1.6 目录结构** - ThinkPHP的目录结构清晰,主要包括应用目录(Application)、运行时目录(Runtime)...