技术开发 频道

同步设计在高性能OLTP数据库中的实践

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

同步设计在OLTP数据库中实践
▲第五届中国数据库技术大会

  自2010年以来,国内领先的IT专业网站IT168联合旗下ITPUB、ChinaUnix两大技术社区,已经连续举办了四届中国数据库技术大会,每届大会与会规模超千人,大会云集了国内水平最高的数据架构师、数据库管理和运维工程师、数据库开发工程师、研发总监和IT经理等技术人群,是目前国内最受欢迎、人气最高的的数据库技术交流盛会。今年是中国数据库技术大会五周年,大会将继续秉承分享IT非常好的应用实践的宗旨,围绕传统数据库和大数据两条技术主线,在目前IT技术和管理快速的大背景下,更加深入地探讨数据库技术的现状和未来的发展方向,以及我们在这个转型过程中的实践经验和教训。

  在4月10日下午举行的《数据库性能调优》专场演讲中,来自天津神舟通用数据技术有限公司技术总监冯柯老师为我们分享了《同步设计在高性能OLTP数据库中的实践》的相关话题。

同步设计在OLTP数据库中实践
▲天津神舟通用数据技术有限公司技术总监冯柯

  对于OLTP,冯柯老师形容是数据库界的珠穆朗玛,其主要的应用特征包括高并发、短事务以及更新密集。之后,冯柯老师向我们展示了一张TPC-C测试基准图。

  图中给出的三条曲线分别是O记、MySQL、以及神舟数据库(上一版本),在万笔交易/分钟数据方面,神舟数据库(上一版本)表现并不优越。为此,冯柯老师在下面的演讲中,为我们分析了其中的问题。

  出现这样的情况,是并发协议出了问题?还是同步原语出了问题?冯柯老师给出的分析是,首先并发协议是整个并行系统的基础;优秀的并发协议(如MVCC读写并行)对高性能OLTP数据库至关重要,但是:好的协议并不的等于好的实现。

  此外,对于同步原语问题,冯柯老师表示,同步原语实现的目标,在于减少同步本身的开销,在临界区执行路径较短时,可以发挥很大作用。并且,以数据库为代表的复杂并行系统,真正决定并发性能的,往往是一些逻辑复杂、执行路径较长的临界区,优化同步本身对性能的帮助有限。

同步设计在OLTP数据库中实践

  基于此,冯柯老师认为,出现这样的情况,主要在于关键临界区争用剧烈,部分临界区出现“越并发性能越差”问题。所以,解决问题的关键在于优化同步设计,减少临界区争用!同步设计才是我们需要主攻方向!

  接下来冯柯老师也介绍神舟数据库针对这种情况所做的改变,包括针对锁(Lock)、优化、分区等。针对自然的优化,冯柯老师解释到,首先是让访问不同锁资源的事务可以同时执行,其次是基于HASH表的锁表设计。

  对于抽象:复制(Replication)的定义:

  · 所有资源(如锁)被复制成一个全局版本和多个(每事务)私有版本;

  · 根据访问特性将临界区(操作)拆分为读者和写者,满足;

  · 读者只存取(注意:不是读取!)私有版本,各读者并发执行,互不干扰;

  · 写者严格串行,存取全局版本,并负责将其更新复制(同步)到受影响的所有私有版本中;

  · 对于私有版本的访问需要同步(读者:单点争用 -> 多点并行)。

同步设计在OLTP数据库中实践

  最后,冯柯老师总结针对这个问题的解决方案,在战略层面——让临界区变得更少;在战术层面——让临界区变得更短;在战斗层面——让出入临界区变得更高效。

  据悉,神舟通用数据技术有限公司致力于神通国产数据库产业化,隶属中国航天科技集团公司,是国内最具影响力的基础软件企业之一。公司提供神通数据库系列产品与服务,产品技术领先,先后获得30项数据库技术发明专利,在国产数据库行业处于领先位置。

1
相关文章