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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值