免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1097 | 回复: 2
打印 上一主题 下一主题

[MongoDB] MongoDB Jira系列-3.0.4修复的那些事儿 [复制链接]

求职 : Linux运维
论坛徽章:
203
拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:182015年亚洲杯之约旦
日期:2015-04-05 20:08:292015年亚洲杯之澳大利亚
日期:2015-04-09 09:25:552015年亚洲杯之约旦
日期:2015-04-10 17:34:102015年亚洲杯之巴勒斯坦
日期:2015-04-10 17:35:342015年亚洲杯之日本
日期:2015-04-16 16:28:552015年亚洲杯纪念徽章
日期:2015-04-27 23:29:17操作系统版块每日发帖之星
日期:2015-06-06 22:20:00操作系统版块每日发帖之星
日期:2015-06-09 22:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-01-15 18:37 |只看该作者 |倒序浏览
大家好,我是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的时候如果,在源chunk上有大量写,可能会造成migration后的chunk缺失部分数据。

SERVER-18646

如果handle在checkpoint start的时候繁忙(如在bluk load的时候),如果这时候的checkpoint 访问到这个handle,如强制drop,之类的,那么chekpoint就会failed

SERVER-18629

将journal 的fdatasync 错误的进行在了data数据目录中,原因是:The reason is because __wt_log_open initializes log->log_dir_fh by calling __wt_open(session, “journal”, …), which expands the path to “/mnt/db/journal” before passing it to __open_directory. But __open_directory appears to expect the path to a file in the directory rather than the path of the directory, as it strips the final component of the path and opens “/mnt/db”. The result is that the wt log system calls fdatasync on “/mnt/db” and not on “/mnt/db/journal”.

There are two consequences to this:

• Performance – the unnecessary fdatasync calls on /mnt/db can get stuck behind a lengthy call to fdatasync on a .wt file, or otherwise be hampered by i/o to .wt files; whereas an fdatsync call to /mnt/db/journal should be unimpeded by any activity in /mnt/db if the /mnt/db/journal has been placed on a separate drive, per our recommended best practices.

• Durability – I believe durability of journaled writes depends on the fdatasync of /mnt/db/journal, in order to ensure that newly created journal files are durable.

SERVER-18409

在标明一个node为down之前,再次尝试心跳检测

SERVER-18326

初始化同步的时候,reset了状态 清空了oplog,这时候可能会触发rollback logic to attempt and fail a rollback leading to a controlled shutdown.

The rollback logic should ignore an empty oplog during rollback to accommodate for initial/re-sync running at the same time.

SERVER-18316

WT引擎在系统意外crash后可能无法恢复启动(如果中断了checkpoint)

SERVER-18315

checkpoint提交时,吞吐量下降明显。

SERVER-18246

mongos保持着到所有shard的链接,但是不直接管理他们的lifetime,当mongos连接到recovering状态的复制集成员的时候可能出现error。

SERVER-18213

WT引擎在批量提交或者批量update的时候设置了upsert=true,且没有匹配到document,且update的item有唯一index,就可能会出现大量 WriteConflict

SERVER-18190

从上的读操作可能会block住复制。

因为当从压力大的时候在从上的一些长查询可能会不让出锁,不yield。

造成复制延时。

SERVER-17923

从节点在background模式下对同一个collection建立多个index的时候,这是时候该collection的元数据变动,可能会fatal error

SERVER-15225,SERVER-20139

执行计划cache的刷新问题,对同一种类查询,执行计划有cache就不去验证,同一种类查询但是条件不同可能的执行情况也不同。

可以通过internalQueryCacheReplanningEnabled参数的设置来解决
The query optimizer caches plans for each query shape and reuses these plans for a time. In situations where the performance of the cached plan is poor for a particular instance of the query shape, the optimizer may select a the plan with poor performance and fail to evict the cache entry. This behavior may impact deployments where two queries with the same shape have different performance characteristics if they have different selectivity.
This improvement makes the query planner evaluate the cost of the cached query plan, and if the cost of this plan is too high, the query planner switches to a more efficient plan. This more efficient plan is then cached for future use.
This improvement is not enabled by default. To enable by default set the internalQueryCacheReplanningEnabled parameter totrue using the setParameter command on a running system, or at start time using the setParameter commandline option orsetParameter in the configuration file.
For example, to enable using setParameter:
db.runCommand({setParameter: 1, internalQueryCacheReplanningEnabled: true})
This improvement can be disabled as follows:
db.runCommand({setParameter: 1, internalQueryCacheReplanningEnabled: false})
3.0.4可以使用这个参数,默认是关闭

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
2 [报告]
发表于 2016-01-18 10:20 |只看该作者
我刚开始学习。期待指教。

求职 : Linux运维
论坛徽章:
203
拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:182015年亚洲杯之约旦
日期:2015-04-05 20:08:292015年亚洲杯之澳大利亚
日期:2015-04-09 09:25:552015年亚洲杯之约旦
日期:2015-04-10 17:34:102015年亚洲杯之巴勒斯坦
日期:2015-04-10 17:35:342015年亚洲杯之日本
日期:2015-04-16 16:28:552015年亚洲杯纪念徽章
日期:2015-04-27 23:29:17操作系统版块每日发帖之星
日期:2015-06-06 22:20:00操作系统版块每日发帖之星
日期:2015-06-09 22:20:00
3 [报告]
发表于 2016-01-18 18:18 |只看该作者
@renxiao2003
一起学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP