资讯专栏INFORMATION COLUMN

Mongodb新旧版本索引创建锁分析

IT那活儿 / 2191人阅读
Mongodb新旧版本索引创建锁分析

点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!


  

客户生产环境中当前使用的Mongodb数据库大多数都是3.6或者更低的版本,在3.X版本中创建索引,分为前台和后台创建,前台创建索引会加库级锁,导致该库上的其他所有读写操作都会被阻塞,后台创建则不会阻塞增删改查操作,但是建索引的效率会变慢。

本文将对3.6和4.2以上版本建索引的区别进行对比。


官方文档相关的说明

从 MongoDB 4.2 开始,创建索引仅在构建过程的开始和结束期间对被索引的集合获取排他锁,以保护元数据更改。构建过程的其余部分使用后台索引构建的行为来最大化构建期间对集合的读写访问。
4.2版本以后的优化后的索引创建过程的性能至少与旧版本的background创建方式相同。如果说创建索引的集合的增删改操作较少,则性能跟前台创建索引一样。
索引的创建过程及加锁情况如下表:


不同版本数据库建索引测试对比

本次采用3.6和4.2两个版本在相同的集合上创建索引进行对比。
测试用的集合包含1000W个文档,大小近400MB。
3.6版本前台创建索引,可看到从建索引开始一直持有库级排他锁,如下图:
当在后台创建索引时,全局、库级、集合级都是IX锁,不会对其他读写操作进行阻塞,见下图:
在4.2版本中创建索引时,由于两个持有排他锁的阶段时间都很短,我们没法捕获到,下面两个截图,分别是集合扫描和临时表(side write table)数据处理阶段,均持有的是意向共享锁和意向排他锁,不会对其他会话读写进行阻塞。

总结:在目前的mongodb运维中,曾出现多次由于开发人员对mongodb索引特性不熟悉,未使用background:true创建索引而导致数据库阻塞的故障。

经验证测试,4.2以后的版本创建索引不会产生长时间的阻塞,且索引创建效率比后台创建索引要略快。所以可以结合其他实际情况推动数据库升级到4.4版。


本文作者:刘运彬(上海新炬王翦团队)

本文来源:“IT那活儿”公众号

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129317.html

相关文章

  • UCloud MongoDB 如何应对高考填志愿的上亿流量高峰

    摘要:优志愿张海鹏宋体背景宋体每年月下旬到月下旬期间是高考填志愿的高峰期,也是优志愿后端面临大流量高并发请求的业务高峰期。对于优志愿读多写少的场景及其业务高峰期,用户可以按需增删节点,更好地实现读取性能的扩展。 随着用户规模的增长,数据库的压力也在成倍增加。面对大流量、高并发,UCloud MongoDB 做到了高效,并展现出了更好的性能体验。 —— 优志愿 CTO 张海鹏 背景...

    cppprimer 评论0 收藏0
  • 记一次MongoDB高负载的性能优化

    摘要:年月日本文是关于记录某次游戏服务端的性能优化此处涉及的技术包括引擎随着游戏导入人数逐渐增加单个集合的文档数已经超过经常有玩家反馈说卡特别是在服务器迁移后从核降到核卡顿更严重了遂开始排查问题确认服务器压力首先使用命令查看总体情况此时占用不高 Last-Modified: 2019年6月13日11:08:19 本文是关于记录某次游戏服务端的性能优化, 此处涉及的技术包括: MongoDB...

    huhud 评论0 收藏0
  • 记一次MongoDB高负载的性能优化

    摘要:年月日本文是关于记录某次游戏服务端的性能优化此处涉及的技术包括引擎随着游戏导入人数逐渐增加单个集合的文档数已经超过经常有玩家反馈说卡特别是在服务器迁移后从核降到核卡顿更严重了遂开始排查问题确认服务器压力首先使用命令查看总体情况此时占用不高 Last-Modified: 2019年6月13日11:08:19 本文是关于记录某次游戏服务端的性能优化, 此处涉及的技术包括: MongoDB...

    vibiu 评论0 收藏0
  • mysql - 收藏集 - 掘金

    摘要:步优化以及其它数据库后端掘金原文链接在发表了一篇简洁有效有趣和令人信服的分钟教程描述了如何进行优化。关于的七种后端掘金对于的,在学习起来可能是比较乱的。 5 步优化 MongoDB 以及其它数据库 - 后端 - 掘金原文链接 Jared Rosoff 在 Scale Out Camp 发表了一篇简洁、有效、有趣和令人信服的《8 分钟 MongoDB 教程》描述了如何进行 MongoDB...

    Donald 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<