SlideShare a Scribd company logo
1 of 18
Download to read offline
InnoDB并发控制在密集型并发更
        新下的问题
      希羽hickey
InnoDB并发控制在密集型并发更新
         下的问题
• 测试篇
 – 双11的死锁开关补丁背景
 – 双12的并发控制补丁性能
• 原理篇
 – 原版的并发控制模型及特点
• 优化篇
 – 一步步排查问题所在
• 问题篇
 – 目前的并发控制补丁存在的问题
InnoDB并发控制在密集型并发更新
      下的问题–测试篇(IC)
• 双11的解决方案:死锁开关补丁(4月份)
InnoDB并发控制在密集型并发更新
      下的问题–测试篇(SB)
InnoDB并发控制在密集型并发更新
      下的问题–测试篇(IC)
  • 读:写:事务写 = 50:6:4
InnoDB并发控制在密集型并发更新
       下的问题–原理篇
      • 简易模型
InnoDB并发控制在密集型并发更新
       下的问题–原理篇
InnoDB并发控制在密集型并发更新
       下的问题–原理篇
      正常的逻辑
InnoDB并发控制在密集型并发更新
       下的问题–原理篇
InnoDB并发控制在密集型并发更新
       下的问题–优化篇
 在密集型的更新场景下, 性能非常差




将死锁开关补丁中增加的deadlock_detect设置为0时,即不检测死锁时
InnoDB并发控制在密集型并发更新
       下的问题–优化篇
把delay干掉,perf top为(性能一般无影响)
InnoDB并发控制在密集型并发更新
       下的问题–优化篇
展开lock_rec_has_to_wait_in_queue后
InnoDB并发控制在密集型并发更新
       下的问题–优化篇
InnoDB并发控制在密集型并发更新
       下的问题–优化篇
InnoDB并发控制在密集型并发更新
       下的问题–优化篇
InnoDB并发控制在密集型并发更新
       下的问题–优化篇
• 问题的本质为大量suspend线程导致的同一页
  面上锁数量非常大,导致销相关函数的开销巨
  大,引发性能急剧下降。
• 我们所做的改动的核心,就是控制因suspend
  进入 srv_mysql_table 的线程数
• 思路1:


• 思路2:
InnoDB并发控制在密集型并发更新
       下的问题–问题篇
• IC集群线上跑的补丁基本第二种思想实现,
  在实战过程中遇到如下几个问题:
 – 对大事务的支持性较差
  • 双12晚高峰期, 搜索dump到主库dump数据虚惊一场。
    (dump一个小时增量!)
 – 对非事务场景的优化提升不及事务场景
  • 优化性能提升只有后者的一半左右
 – 动态开关不“完全”动态
  • running<1000时线上可动态关闭或打开
InnoDB并发控制在密集型并发更新
       下的问题–问题篇
• 优化无止境!

• 感谢:
 – 数据库团队和测试组同学的共同努力,以及IC
   业务同学的支持!

More Related Content

Similar to InnoDB并发控制在密集型并发更新下的问题

数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)
数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)
数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)frogd
 
基于My sql的分布式数据库实践 公开
基于My sql的分布式数据库实践 公开基于My sql的分布式数据库实践 公开
基于My sql的分布式数据库实践 公开YANGL *
 
基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展Sky Jian
 
Google mysql-tools overview
Google mysql-tools overviewGoogle mysql-tools overview
Google mysql-tools overviewPickup Li
 
Taobao数据库这5年
Taobao数据库这5年Taobao数据库这5年
Taobao数据库这5年yp_fangdong
 
做自己的可可豆夾 @ cocoahead.tw
做自己的可可豆夾 @ cocoahead.tw做自己的可可豆夾 @ cocoahead.tw
做自己的可可豆夾 @ cocoahead.twKai-Yuan Cheng
 
電商微服務架構設計與執行
電商微服務架構設計與執行電商微服務架構設計與執行
電商微服務架構設計與執行YC Liang
 
Subversion
SubversionSubversion
Subversioni7Xh
 
张松国 腾讯微博架构介绍08
张松国 腾讯微博架构介绍08张松国 腾讯微博架构介绍08
张松国 腾讯微博架构介绍08drewz lin
 
深入理解Andorid重难点
深入理解Andorid重难点深入理解Andorid重难点
深入理解Andorid重难点Bin Shao
 
Leveldb background
Leveldb backgroundLeveldb background
Leveldb background宗志 陈
 
阿里集团MySQL并行复制特性
阿里集团MySQL并行复制特性阿里集团MySQL并行复制特性
阿里集团MySQL并行复制特性Hui Liu
 
从运维系统的开发谈安全架构设计
从运维系统的开发谈安全架构设计从运维系统的开发谈安全架构设计
从运维系统的开发谈安全架构设计mysqlops
 
MySQL的并发线程性能问题
MySQL的并发线程性能问题MySQL的并发线程性能问题
MySQL的并发线程性能问题Hui Liu
 
2018 LINE Tech Pulse 直通國際分享
2018 LINE Tech Pulse 直通國際分享2018 LINE Tech Pulse 直通國際分享
2018 LINE Tech Pulse 直通國際分享Jeremy Lin
 
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)JoXuZi
 
Lvs在大规模网络环境下的应用pukong
Lvs在大规模网络环境下的应用pukongLvs在大规模网络环境下的应用pukong
Lvs在大规模网络环境下的应用pukongMichael Zhang
 
对MySQL应用的一些总结
对MySQL应用的一些总结对MySQL应用的一些总结
对MySQL应用的一些总结Lixun Peng
 

Similar to InnoDB并发控制在密集型并发更新下的问题 (20)

数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)
数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)
数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)
 
基于My sql的分布式数据库实践 公开
基于My sql的分布式数据库实践 公开基于My sql的分布式数据库实践 公开
基于My sql的分布式数据库实践 公开
 
基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展
 
Intro to svn
Intro to svnIntro to svn
Intro to svn
 
Google mysql-tools overview
Google mysql-tools overviewGoogle mysql-tools overview
Google mysql-tools overview
 
Taobao数据库这5年
Taobao数据库这5年Taobao数据库这5年
Taobao数据库这5年
 
做自己的可可豆夾 @ cocoahead.tw
做自己的可可豆夾 @ cocoahead.tw做自己的可可豆夾 @ cocoahead.tw
做自己的可可豆夾 @ cocoahead.tw
 
電商微服務架構設計與執行
電商微服務架構設計與執行電商微服務架構設計與執行
電商微服務架構設計與執行
 
Subversion
SubversionSubversion
Subversion
 
张松国 腾讯微博架构介绍08
张松国 腾讯微博架构介绍08张松国 腾讯微博架构介绍08
张松国 腾讯微博架构介绍08
 
深入理解Andorid重难点
深入理解Andorid重难点深入理解Andorid重难点
深入理解Andorid重难点
 
Leveldb background
Leveldb backgroundLeveldb background
Leveldb background
 
阿里集团MySQL并行复制特性
阿里集团MySQL并行复制特性阿里集团MySQL并行复制特性
阿里集团MySQL并行复制特性
 
从运维系统的开发谈安全架构设计
从运维系统的开发谈安全架构设计从运维系统的开发谈安全架构设计
从运维系统的开发谈安全架构设计
 
MySQL的并发线程性能问题
MySQL的并发线程性能问题MySQL的并发线程性能问题
MySQL的并发线程性能问题
 
2018 LINE Tech Pulse 直通國際分享
2018 LINE Tech Pulse 直通國際分享2018 LINE Tech Pulse 直通國際分享
2018 LINE Tech Pulse 直通國際分享
 
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
 
Lvs在大规模网络环境下的应用pukong
Lvs在大规模网络环境下的应用pukongLvs在大规模网络环境下的应用pukong
Lvs在大规模网络环境下的应用pukong
 
Sth About SSD
Sth About SSDSth About SSD
Sth About SSD
 
对MySQL应用的一些总结
对MySQL应用的一些总结对MySQL应用的一些总结
对MySQL应用的一些总结
 

InnoDB并发控制在密集型并发更新下的问题