技术开发 频道

秒杀场景危机 淘宝丁奇分享解决方法

   【IT168大会报道】2013年4月18-20日,第四届中国数据库技术大会(DTCC 2013)在北京福朋喜来登酒店拉开序幕。在为期三天的会议中,大会将围绕大数据应用、数据架构、数据管理(数据治理)、传统数据库软件等技术领域展开深入探讨,并将邀请一批国内顶尖的技术专家来进行分享。本届大会将在保留数据库软件应用实践这一传统主题的基础上,向大数据、数据结构、数据治理与分析、商业智能等领域进行拓展,以满足于广大从业人士和行业用户的迫切需要。

  自2010年以来,国内领先的IT专业网站IT168联合旗下ITPUB、ChinaUnix技术社区已经连续举办了三届数据库技术大会,每届大会超过千人规模,云集了国内技术水平最高的数据架构师、DBA、数据库开发工程师、研发总监、IT经理等,是目前国内最受欢迎的数据库技术盛会。

秒杀场景危机 淘宝丁奇分享解决方法
大会精彩专题

秒杀场景危机 淘宝丁奇分享解决方法
▲淘宝核心系统数据库组技术专家,淘宝MySQL版本的核心开发者之一丁奇

   本次数据库大会,由来自淘宝核心系统数据库组技术专家,淘宝MySQL版本的核心开发者之一丁奇(林晓斌)为我们带来的《秒杀场景下MySQL的低效--原因和改进》的精彩演讲,演讲中解读了秒杀场景下MySQL的低效--原因和改进 InnoDB的行级锁给极大地提高了引擎的并发度,但在秒杀这种场景下,大量线程需要同时更新一行,导致串行处理,进而导致MySQL内部大量线程堆积,对服务性能、稳定性造成很大伤害。此topic介绍了一种利用应用特征对秒杀场景的改进,性能测试结果显示提升15倍左右,并且提高了服务稳定性。

  秒杀/热卖商品背景

秒杀场景危机 淘宝丁奇分享解决方法

  在秒杀/热卖商品的时候,会发生并发线程增加,tps急剧下降,于此同时每个商品有128个线程并发请求的时候,tps已经跌到600 不可接受的数值,在这个时候,还有更坏消息是,秒杀的时候,一个商品何止128个人来抢?

 

秒杀场景危机 淘宝丁奇分享解决方法

  对于秒杀/热卖商品这种情况,通过认真的分析,可以得出这种情况的特点,首先是很直接,其次是很暴力,正常的业务死锁会变成超时,最后是不治标,除掉老大,还有老二,问题的症结没有解决,这时候究竟该如何解决呢?经过不断努力,得出了第一种解决方法关掉死锁检测。

秒杀场景危机 淘宝丁奇分享解决方法

  对于在固定的硬件条件下、每个系统都有一个对应的状态最优值,那么在InnoDB的线程数下,将排队队列提到进入引擎层前,这样就能够很好的解决在性能方面具有很好的提高。

秒杀场景危机 淘宝丁奇分享解决方法

  根据前面的排队技术,利用多线程并发下,InnoDB内部要做死锁检测等操作,会对性能影响及其严重,明确的串行事务,则server层串行,Group commit减少引擎执行次数,让性能最佳优。

0
相关文章