查看原文
其他

分布式事务数据库系统评估体系

马鹏玮 魏凯 等 中国信息通信研究院CAICT 2019-07-10
 

导读

总结了分布式事务数据库系统的定义和特点,并在评估了分布式事务数据库的现有测试基准之后,提出了一种新的分布式事务数据库系统评估框架和测试方法。本文为世界上分布式事务数据库的测试和选择提供了新的指导。


一、引言


电子商务的时代已经到来,如今互联网金融和移动互联网使支付习惯从现金支付转移到移动支付,这导致了大量的实时用户、数据和并发的业务场景,这些业务场景需要事务数据库来支持其正确性和性能。据统计,淘宝的“双十一”营业额在8年内增加了3000倍,即从2009年的5200万元增加到2017年的1662亿元。然而,在2011—2014年“双十一”的过程中,16家上市银行中有8家出现了拥堵。传统数据库在移动支付等新业务场景中受到了很大的限制。


目前,金融银行等大型企业大多采用集中式交易数据库架构。该架构采用向上扩展模式,即通过提高单机的硬件性能来增加处理能力的上限。然而,随着摩尔定律的逐渐失效,这种模式开始暴露出其性能瓶颈。由于成本和性能原因,大多数新兴互联网企业开始探索分布式事务数据库架构之路。多年的实践经验证明了分布式事务数据库体系结构可以支持大规模、高并发的业务场景。以支付宝为例,2013年全部拆除了IBM小型机和EMC存储设备,并于2014年开发了一个新的分布式数据库来取代Oracle数据库:Oceanbase和x86服务器架构成功通过了2015—2017年的在线业务测试。据报道,相应的硬件和软件成本下降了约60%,而性能却提高了数十倍。因此,分布式事务数据库已成为新业务环境中事务数据库的演进方向。


目前,分布式事务数据库技术的发展还处于起步阶段,因此仍存在许多问题。


(1)没有关于分布式事务数据库的一致定义。每家公司都根据自己的要求和理解开发自己的产品。


(2)分布式交易数据库技术的发展仍处于孤立状态,这意味着行业的相关成果和经验尚未得到有效共享。


(3)分布式事务数据库有和传统数据库不同的新功能,业界需要新的基准工具来衡量各种技术实现。


为了解决上述问题,本文首先研究了分布式事务数据库的技术和产业,并给出了分布式事务数据库的定义;同时,对各种分布式交易数据库技术路线进行了比较研究,并对技术特点进行了比较和总结;然后,分析了当前事务数据库测试基准的缺点,开发了分布式事务数据库的功能和性能评估方法,涵盖了各种技术特性;最后,对分布式事务数据库的开发提出了一些建议。


二、分布式交易数据库的定义


目前,业界对分布式事务数据库没有统一的定义。本文在总结了学术界和行业界的观点后,将分布式事务数据库分为3个核心属性和6个核心能力。


(一)3个核心属性


分布式事务数据库的3个核心属性:


(1)事务数据库属性。数据库核心数据逻辑管理模型具有事务处理能力,符合完整的ACID(原子性、一致性、隔离性、持久性)特性要求。


(2)大规模在线交易处理能力。一个有关数据库管理系统,可以处理大量的在线事务处理负载。


(3)分布式架构属性。计算和存储都可以通过多个节点有效地使用并行功能。


(二)6个核心能力


分布式事务数据库的6个核心能力:


(1)计算和存储可以基于诸如x86的工业标准在硬件中实现。新的分布式事务数据库基于标准的x86行业标准硬件,但不是基于原始大型机和小型机专用硬件。这有助于控制预算并统一开发方法,从而可以在业界广泛推广。


(2)遵守事务数据库的关系模型,完全满足事务的ACID要求。分布式事务数据库主要用于支持事务;分布式事务数据库需要能够完全支持ACID属性。


(3)能够支持高度并发的OLTP工作负载。随着移动互联网的快速发展,分布式事务数据库支持的OLTP服务数量将呈指数级增长。分布式事务数据库不仅需要确保业务的正确性,还需要能够支持高并发性能要求,以真正满足业务开发的需求。


(4)支持标准SQL(标准查询语言)数据操作。目前,大多数数据库服务都是用SQL语言编写的,如果分布式事务数据库不能支持完整的标准SQL,那么业务将面临大规模的转型,这对数据库应用程序来说是不能容忍的。因此,在分布式事务数据库中支持标准SQL的能力是数据库分布式转换的前提。


(5)自动故障自我修复和切换的高可用性保证。在分发事务数据库之后,每个节点共享计算和存储的压力。此时,如果单个节点发生故障,数据库系统需要快速执行切换过程以确保业务的连续性。


(6)支持跨数据中心级别的横向扩展能力。由于事务业务规模的不断增长,分布式事务数据库将提出越来越高的性能要求。由于分布式主要依赖于横向扩展能力来提高处理性能,分布式事务数据库需要在数据中心层面的横向扩展能力,以满足未来业务增长的交易处理需求。


三、当前分布式交易数据库的分析


由于分布式事务数据库仍处于开发的早期阶段,并且每个数据库产品都是根据自己的业务实践逐步开发的,因此形成了不同的技术路线和理论框架。数据库理论家提出了一种新的数据管理模型,试图从根本上解决相关问题。然而,数据库行业试图通过各种工程研究和开发方法的实践在数据库设计架构中找到突破。结合近10年来分布式事务数据库领域的学术和工业成果,可以梳理出几种分布式事务数据库的发展方向(见表1)。


表1  几种分布式事务数据库技术特点


(1)基于单一事务关系数据库的业务分布式事务转换方案


该方案可以有效地利用原始单一计算机事务处理数据库的成熟优势,通过在应用层中建立数据分片和数据路由规则,建立复合分布式事务数据库体系结构。


此体系结构要求DBA(数据库管理员)手动控制应用程序流量的分发和管理。因此,对业务层的入侵更为严重,但可以缓解集中式数据库缺乏存储和计算能力的缺点。


(2)基于单个事务数据库的分布式管理组件的解决方案


通过改进单个事务数据库引擎层的原始体系结构,使用独立的分布式控制逻辑单元来实现自动路由策略;通过匹配理论和一致性算法,解决分布式事务数据库的一致性问题。该方法主要分为嵌入式中间件模式和独立中间件模式两种解决方案。


●嵌入式中间件使用DAL(数据访问层)来管理数据碎片规则和路由策略。这里的DAL不是一个独立的中间件,而是嵌入在业务方面的中间层模式,通常以Jar包的形式提供给应用程序系统以进行调用。


●独立中间件通过代理服务器机制管理数据碎片规则和路由策略。独立中间件通常是一个独立的逻辑和物理处理系统架构,与业务层和数据存储和计算层隔离,侧重于数据分发管理功能。


(3)新的分布式数据库理论和工程实现架构


这种数据库通常由数据库驱动、计算节点集群、数据节点集群和全局管理节点4部分组成。多个数据副本以自定义或自动优化的策略存储在数据集群的多个节点上。数据节点不共享数据,并且通过自动一致性算法实现副本之间的同步。计算节点负责分布式查询处理和全局事务控制。全局管理节点是实现分布式事务的一致性以及维护子表的分区和拓扑的必要组件。节点通过高速互联网络相互通信,从而完成对应用数据请求的快速处理和响应。


四、当前交易数据库基准的分析


事务数据库在漫长的开发过程中积累了大量的测试经验。许多组织和个人依靠这种测试经验来创建通用的测试工具和基准来验证事务数据库的功能和性能。业界常用的事务数据库测试工具包括Sysbench、TPC-C、Mysqlslap、TCPCopy。


(1)Sysbench


Sysbench是一个开源多线程性能测试工具,可在CPU、内存、线程、IO、数据库等领域执行性能测试。该数据库目前支持MySQL/Oracle/PostgreSQL。这是一种非常受欢迎的DBA压力测试工具。但是,缺乏场景支持,只能用于测试常见的资源性能限制。


(2)TPC-C


TPC-C由TPC Institute开发,用于测试典型复杂OLTP系统的性能。TPC由5个处理逻辑组成。是一种接近电子商务平台业务的压力测量工具。是目前测试事务数据库中最常用的基准工具。其执行逻辑包括新订单、付款、订单状态、交货、库存级别。但是,TPCC不能完全反映分布式事务数据库的能力,因为它的数据生成速度慢,单一业务场景,以及缺乏分布式特征来衡量维度等。


(3)Mysqlslap


Mysqlslap是一个官方压力测试工具,自第5.1.4版开始提供。压力测试是通过模拟访问MySQL的多个并发客户端来执行的,同时提供更详细的数据性能报告,可用于比较同一环境中多个存储引擎的并发压力性能。但是,Mysqlslap仍然缺乏用于度量维度的分布式功能,并且场景单一。同时,与MySQL类的非数据库不兼容。


(4)TCPCopy


TCPCopy是TCP流量的实时复制工具,版本1.0由NetEase engineer @ tcpcopy开发和维护,通常用于将生产环境的在线流量实时复制到测试环境以进行测试。优点是测试数据接近实际水平并且实施起来相对简单。但是,配置复杂,涉及在线环境,因此风险很高。


一般而言,工业中常用的当前测试方案和工具不能直接应用于分布式事务数据库。基于当前通用测试工具的优点,业界需要补充分布式特性,开发适用于分布式事务数据库的功能和性能评估方法和工具。


五、分布式交易数据库的功能评估方法


分布式事务数据库的计算和存储模式不同于传统的集中式事务数据库。因此,传统的集中式事务数据库评估方法不能直接应用于分布式事务数据库。


根据分布式事务数据库的特点,从6个维度提出了分布式事务数据库的功能测试方法,从而全方位地测量分布式事务数据库的能力,为分布式事务数据库的开发和应用提供了指导。


(1)基本功能


分布式事务数据库应能够具备传统集中式事务数据库的基本功能。在分布式转换之后,可以最大限度地简化业务系统和人员的适应工作,并且可以保证数据库现有业务的正常运行。同时,分布式事务数据库需要能够反映基本的分布式功能,这为性能扩展、运营和维护等新架构做好了准备。基本功能指标包括:


●支持常见的数据类型、运算符、字符集、函数、SQL语法等功能;数据分片、分区、分布式事务,隔离级别设置的能力。


●支持数据碎片,分区操作,分布式事务,隔离级别设置的能力。


●执行计划,表分区和索引的能力。


(2)兼容性


表示分布式事务数据库与现有业务系统和通用数据库硬件和软件工具连接的能力。此类指标衡量分布式事务数据库实施后对现有业务生态系统的影响程度。兼容性指标主要包括:


●支持ODBC、JDBC和其他常见连接。


●数据类型的隐式转换。


●传统数据库中异构数据的总迁移。


●能够使用其他数据库进行远程连接操作。


●x86等通用硬件的支持能力。


(3)管理


完整友好的管理能力可以为分布式事务数据库的操作和维护提供有效支持。这有助于数据库DBA、数据库业务负责人和相关应用程序支持团队拥有更好的数据库管理和控制功能。管理能力的具体指标包括:


●易于使用的安装部署、配置管理和升级功能。


●分布式事务数据库能够对节点和数据进行实时监控和统计分析;同时,分布式事务数据库可以以各种形式通知和报警各种信息。


●分布式事务数据库可以实现无死锁或自动处理死锁。


●分布式事务数据库可以管理、查看和处理常见类型的日志。


●分布式事务数据库可以支持在线数据库模式定义语言和管理命令。


●分布式事务数据库能够管理、查看和处理系统中的常见日志类型。


●分布式事务数据库可以多种形式备份和恢复数据,如时间、增量和全量。


●分布式事务数据库可以自定义集群内的隔离资源分组。


(4)高可用性


分布式交易数据库是各种核心业务的基础设施,当发生故障时可能导致大量经济财产损失。因此,高可用性必须能够满足相应的要求,从而确保业务的连续性和稳定性。高可用性的具体指标包括:


●分布式事务数据库可以在硬件事故中提供正常的数据库服务,如停电、硬盘故障、网络闪络、计算机房断开等。


●分布式事务数据库可以在主中心数据备份和同步失败的情况下提供正常的数据库服务。


●分布式事务数据库可以在CPU资源过载、IO资源过载、内存资源过载、磁盘空间过载和其他操作系统软件故障下提供正常的数据库服务。


●分布式事务数据库可以在数据库服务失败的情况下提供正常的数据库服务,例如数据文件损坏、数据节点损坏、系统表损坏等。


●分布式事务数据库可以在应用程序连接丢失、外围系统错误等情况下提供正常的数据库服务。


(5)可扩展性


分布式事务数据库必须提供在线水平扩展功能。需要在客户业务扩展的基础上满足客户业务增长的需求而没有明显的意识,从而解决现有集中式事务数据库系统的磁盘容量和计算性能的瓶颈。具体扩容包括:


●读取和写入服务的计算资源可以在集群中的节点之间自动平衡。


●可以根据业务方的定制要求平衡存储的数据。


●集群可以实现在线扩展操作,而不会影响业务的正常运行。


●可以配置集群以实现在线容量减少,从而实现资源的合理规划和利用。


(6)安全性


为了使公司业务远离法律和业务风险,分布式事务数据库需要完整的安全功能。例如,防止敏感数据泄露并消除错误的操作行为等。安全能力的具体指标包括:


●分布式事务数据库能够在库级别和表级别验证数据操作的权限。


●分布式事务数据库可以验证访问用户,如实施白名单和黑名单审查。


●分布式事务数据库可以审计和跟踪所执行的各种操作,从而定位和分析关键问题。


●分布式事务数据库可用于流量控制,以防止由于某一突发流量引起的整个系统故障,这将影响其他服务的正常运行。


六、结束语


本文提出了分布式事务数据库的综合定义和特征定义,分析了当前各种技术架构和产品特性的分布式事务数据库,并在分析分布式事务数据库评估方法的不足之处的基础上,提出了分布式事务数据库的功能和性能评估方法。该方法基于分布式特征,从多维度测量分布式事务数据库的特殊能力。这些工作对分布式事务数据库的开发具有非常重要的指导意义。


未来,将以工具的形式自动化评估方法,并为分布式事务数据库的选择和评估提供更方便的服务。



作者简介

马鹏玮:中国信息通信研究院云计算与大数据研究所大数据与区块链部工程师。

联系方式:mapengwei@caict.ac.cn


魏  凯:中国信息通信研究院云计算与大数据研究所副所长,高级工程师。

联系方式:weikai@caict.ac.cn


姜春宇:中国信息通信研究院云计算与大数据研究所大数据与区块链部副主任。

联系方式:jiangchunyu1@caict.ac.cn


李俊逸:中国信息通信研究院云计算与大数据研究所大数据与区块链部工程师.

联系方式:lijunyi@caict.ac.cn


本文刊于《信息通信技术与政策》2019年第5期


《信息通信技术与政策》

由工业和信息化部主管、中国信息通信研究院于1975年主办的《电信网技术》(月刊)自2018年3月正式更名为《信息通信技术与政策》。《信息通信技术与政策》刊载内容在覆盖传统电信领域的基础上向信息、通信和ICT领域延伸。本刊物重点解读行业政策、标准,报道国家重大科研项目成果及业内最新最热产品与技术解决方案。


主要栏目:专题、专家论坛、产业与政策、发展策略、泰尔检测、产品与技术方案。


投稿邮箱:ictp@caict.ac.cn



校  审 | 陈  力、 珊  珊

编  辑 | 凌  霄



推荐阅读

人工智能在数据治理中的应用

工业互联网中时序数据处理面临的新挑战


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存