MongoDB Jira系列-3.0.5修复的那些事儿

大家好,我是E叔。
经常有朋友向我咨询版本选型的问题。
受到老毕同学的启发,E叔决定为大家搬运+翻译+简单解释 MongoDB3.0.4+以后各个版本fixed的比较重要的jira issues。大家可以根据需求来决定版本选型。
今天是3.0.5篇。

Issues fixed in 3.0.5

以下均是3.0.5中修复了的jira issues。(比较重要的issues)
由于人肉整理,难免有遗漏,欢迎补充。

Issues fixed in 3.0.5

SERVER-19513

truncate 一个capped 表的时候 可能其索引在WT中不会删除。

cover index 的查询可能就会返回出这些没删除的索引的documents

SERVER-19375

选择syncsource的时候,此前是比较的最新的数据,应该比较最新oplog数据。

SERVER-19189(与SERVER-18829有关联)

提高了WT引擎在大量threads下的性能。

SERVER-18829

当在WT中进行大量index的建立的时候,会超过我们WT设置的最大cache,可能会OOM之类

SERVER-19178

由于WT tracks和expires capped表的方式问题,性能有所损耗(在大量inserts的情况,)

注意:oplog就是个capped collection!

现在WT会cache住capped的第一个没有过期的document在cache中,提高了效率。

SERVER-18994

producer thread can continue producing after a node becomes primary

SERVER-18926

full text search 在WT中效率很低,使用内存较多

yield过程中 intermediate的数据buffer在cache中,但是在$text 和geoNear的long queries有个bug:

In particular, if a such a query yields y times and buffers d documents, the overall time spent in yield-preparation was O(yd). With the fix, the time complexity is reduced to O(y).

SERVER-18902

超过1MB大小的document,WT速度slow down

原因如下

WiredTiger does not store documents larger than its default leaf_value_max in the in-memory cache. The leaf_value_max value is 1 megabyte. As a result, operations that read or modify larger documents are significantly less efficient than with smaller documents.

Starting with MongoDB 3.0.5 all documents are stored in the in-memory WritedTiger cache, but this change only impacts collections created after upgrading to 3.0.5 or later. Existing collections are unaffected by this change.

WT的每个leaf的leaf_value_max是1MB,如果超过1MB就存储多个,这时候效率变差。

Users with documents larger than 1 megabyte may use the --wiredTigerCollectionConfigString 'leaf_value_max='configuration option to increase the value of leaf_value_max beyond 1 megabyte to improve performance when accessing large documents.

For example, to ask WiredTiger to put in its cache documents of up to 16 megabytes in size, use:

--wiredTigerCollectionConfigString 'leaf_value_max=16000000'

Note that this setting only impacts collections created after the change. Existing collections are not be affected by this change, so users with existing collections containing large documents may want to move them to a newly created collection, replicate them to new instances running 3.0.5, or perform a dump + restore cycle on these collections.

3.0.5修复,但是只有在3.0.5之后建立的表才有效,可以重新建立表,导入数据之类。

SERVER-18838

当意外宕机(如断电)的时候,

这些操作:database creation

database dropping

collection creation

collection dropping

index creation

index dropping

将可能会作用在invalid的data set中,导致重启后recover失败

SERVER-17386

WT 不限制mongo打开的wt session。这样造成了一定的内存泄露

WiredTiger allows MongoDB to open an unbounded number of WiredTiger sessions, which means that despite a limited number of WiredTiger cursors per session, the total number of cached sessions an cursors may lead to excessive memory use.

时间: 2024-08-04 07:53:05

MongoDB Jira系列-3.0.5修复的那些事儿的相关文章

MongoDB Jira系列-3.0.6修复的那些事儿

大家好,我是E叔. 经常有朋友向我咨询版本选型的问题. 受到老毕同学的启发,E叔决定为大家搬运+翻译+简单解释 MongoDB3.0.4+以后各个版本fixed的比较重要的jira issues.大家可以根据需求来决定版本选型. 今天是3.0.6篇. Issues fixed in 3.0.6 以下均是3.0.6中修复了的jira issues.(比较重要的issues) 由于人肉整理,难免有遗漏,欢迎补充. SERVER-20248 与连接数&session有关的内存泄露一则 SERVER-1

MongoDB Jira系列-3.0.4修复的那些事儿

大家好,我是E叔. 经常有朋友向我咨询版本选型的问题. 受到老毕同学的启发,E叔决定为大家搬运+翻译+简单解释 MongoDB3.0.4+以后各个版本fixed的比较重要的jira issues.大家可以根据需求来决定版本选型. 今天是3.0.4篇. Issues fixed in 3.0.4 以下均是3.0.4中修复了的jira issues.(比较重要的issues) 由于人肉整理,难免有遗漏,欢迎补充. SERVER-18822 WT引擎的 shard在chunk migration的时候

苹果紧急发布新系统iOS 11.0.1 修复多种BUG

本文讲的是苹果紧急发布新系统iOS 11.0.1 修复多种BUG,不久前,苹果面向所有的 iOS 设备推送了最新版的 iOS 11 操作系统,和往年一样,新版系统给用户设备带来各种各样的问题以及软件 BUG,导致部分软件运行缓慢,甚至死机.据外媒最新消息,面对用户提出的各种意见,苹果迅速发出了一个升级包. 据美国科技新闻网站 AppleInsider 报道,周二,在 iOS 11 发布一周之后,苹果对外发布了升级包以及最新版系统 iOS 11.0.1,新版本旨在修正之前版本存在的各种软件问题.

东芝basic系列USB3.0移动硬盘

原厂移动硬盘有很大的优势:盘体质量有保证,售后服务更放心,增值服务多.加上USB3.0近两年的快速发展,结合原厂硬盘推出的USB3.0高速移动硬盘正在逐渐占领市场.今日笔者了解到,东芝原厂basic黑甲虫系列USB3.0移动硬盘500GB特价促销,亚马逊报价509元,感兴趣的朋友不妨由此购买点击进入亚马逊. 点击进入亚马逊 东芝黑甲虫移动硬盘特点:使用再生材料,环保 原厂品质,有技术优势 三年质保 东芝basic系列USB3.0移动硬盘包装采用再生材料制作,以最大限度减少资源浪费,硬盘采用了更轻

苹果ios7.0.4修复了哪些bug?ios7.0.4可以升级吗?

问题分析 苹果今天放出了iOS7.0.4系统更新,ios7.0.4修复了哪些bug 解决办法 第一,根据苹果官方介绍,此次ios7.0.4固件只是一个小的更新,其主要修复了某些用户的FaceTime通话失败的问题. 第二,该问题同样存在于运行iOS6系统的Touch 4中.而据越狱大神Muscle Nerd介绍,iOS 7.0.4更新并没有带来任何安全方面的改进,不会对完美越狱造成任何影响,用户可以放心升级.

PHP 4.4.0发布 修复导致内存崩溃问题

  PHP开发小组宣布了PHP 4.4.0版本的发布,这是一个专注bug修复的发行版,没有什么新的功能添加到其中.主要是解决了一个严重的PHP相关引用导致的内存崩溃问题.假如引用出错,PHP将创建一个内存崩溃事件,并且是可以被任意访问的.版本号中间一位的修改,主要是因为这个bug修复涉及到了PHP内部API函数的改动.        一个单独版本的发布声明在这里.主要包括从PHP 4.3.11到PHP 4.4.0.具体的请参考PHP 4 Changelog.

硬盘0磁道修复方法

"0"磁道处于硬盘上一个非常重要的位置,硬盘的主引导记录区(Mp)就在这个位置上.Mp位于硬盘的0磁道0柱面1扇区,其中存放着硬盘主引导程序和硬盘分区表.在总共512字节的硬盘主引导记录扇区中,446字节属于硬盘主引导程序,64字节属于硬盘分区表(DPT),两个字节(55 AA)属于分区结束标志.由此可见,"0"磁道一旦受损,将使硬盘的主引导程序和分区表信息遭到严重破坏,从而导致硬盘无法自举."0"磁道损坏也属于硬盘坏道,只不过由于它的位置太重要

MongoDB学习系列(3)--解决MongoDB Unexpected Shutdown问题

晚上准备继续学习 PHP+MongoDB,点击Run_MongoDB_Service.bat文件,这个文件是我写的bat文件,就是快速启动MongoDB.但是命令 行一闪而过,我很奇怪.昨天晚上写代码还是正常的,怎么今天用就不正常了.我只好手动敲一遍命令.界面好像和之前不一样,个人觉得应该是出错了.错误界面 如下: 主要信息有2个: 1.Unclean shutdown detected. 2.可以恢复的参考:http://docs.mongodb.org/manual/tutorial/rec

MongoDB学习系列(2)--使用PHP访问MongoDB

第一部分:介绍 在Windows上安装最新 MongoDB步骤非常的简单,这里不做介绍.但是如果你安装的时候没有将MongoDB作为服务运行,每次你都要使用cmd切换到指定的目录下,然后在 cmd中启动MongoDB服务,然后再使用另外一个cmd运行Javascript Shell.所以我自己创建了2个.bat文件来简化这个操作. Run_MongoDB_Service.bat代码为: d: cd d:\mongodb\bin mongod --dbpath d:\mongodb\data Ru