技术开发 频道

DTCC2013:InnoDB架构分析与TNT引擎优势

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

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

DTCC2013:InnoDB架构分析与TNT引擎优势
▲点击查看大会专题报道

  在DTCC2013大会MySQL架构与优化专场,来自网易杭州研究院的何登成为我们带来了《InnoDB架构分析以及TNT引擎的优势》演讲。何登成首先介绍到,在目前MySQL的所有官方开源引擎中,InnoDB是唯一的一个支持事务的通用性引擎。其广泛的使用于淘宝、支付宝、网易、Facebook、Twitter等。

DTCC2013:InnoDB架构分析与TNT引擎优势
▲网易杭州研究院的何登成

  什么才是最好的InnoDB呢?何登成讲到,“首先是MVCC,InnoDB采用了于Oracle类似的多版本实现策略,此策略是InnoDB能够成功的基础;其次是Simple First,InnoDB架构实现简单,包括:并发控制;B+-Tree;大对象。简单先行,是InnoDB成功的第二个基础;第三是Cluster Index,索引组织表,是InnoDB在互联网简单OLTP应用中高性能的基础。”

  而最坏的InnoDB则是体现在如下这几方面,研发进度慢:用户需求,往往要几年后才能加上;新版本稳定性:新版本发布之后,Bug较多(新版本功能越多,稳定周期越长)。目前广泛使用的,仍旧是MySQL 5.1,MySQL 5.5逐步推广;InnoDB目前在Oracle手中:考虑到Oracle自己的产品,以及其针对开源的策略,有使用风险;缺乏有效的度量数据:运维过程中无法定位问题所在。

  何登成还介绍了网易自己研发的TNT。何登成介绍到,“TNT由网易杭研研发的具有自主知识产权的,基于MySQL的存储引擎。TNT是在网易研发的前一版本存储引擎NTSE的基础上发展而来。”

DTCC2013:InnoDB架构分析与TNT引擎优势
▲TNT的架构创新

  讲到TNT引擎的优势,何登成谈到了以下几点:一是高可用设计:创建/删除索引、Optimize等操作,在线完成,过程无需拷贝表,最终短暂锁表。新增列操作,瞬时完成,只修改表定义,不修改数据;二是监控与诊断:提供各方面的监控信息,方便运维管理;三是高并发支持:内部并发瓶颈较少;四是研发进度保障:TNT自主研发,能更快的响应Bug与用户需求;五是完备的性能测试框架:TNT有一整套完备的性能测试框架,用于定位系统的性能瓶颈等;六是事务与非事务切换功能:TNT引擎,可以同时支持事务表与非事务表,由用户选择。

  而目前TNT也还存在着一些不足之处,何登成介绍说:“首先TNT是新生产品,未经过线上应用挑战,引入TCPCopy工具,模拟线上应用测试;其次是TNT对于长事务的支持较差:长事务,会导致内存多版本无法回收,内存使用量增加。适用于短事务的OLTP应用;最后TNT在很多细节上的优化,还不够:TNT的很多模块,缺乏在于细节上的深入优化(这也跟我们产品初创阶段有关)。TNT 2.0.2-RC版本代码量在11万行左右,而MySQL 5.6.10-GA版InnoDB代码量在16万行左右,这方面TNT还差很多。”

0
相关文章