庄琪钰1,2,李彤1,2,卢卫1,2,杜小勇1,2
1中国人民大学信息学院,北京
2数据工程与知识工程教育部重点实验室,北京
摘要:近数据计算范式驱动了银行、券商在全国或全球范围内建设多个数据中心。在传统的业务模式中,事务聚焦单个数据中心的数据访问。随着业务模式的变化,跨数据中心的分布式事务成为常态,例如,银行账户之间的转账、游戏账户之间的装备交换等,而这些账户的数据存储在不同区域的数据中心上。分布式事务处理需要两阶段提交协议来保证各参与节点子事务提交的原子性。在跨空间域场景下,节点之间的网络时延更长且存在差异性,传统的事务处理技术需要拓展,以保证系统能够提供较高的吞吐量。在分析了跨域事务存在的问题和优化空间后,提出了一种新的分布式事务处理算法Harp。Harp在保证可串行化隔离级别的前提下,根据网络时延的差异,将部分子事务延迟执行,减少了事务的锁争用时长,提升系统并发度和吞吐量。实验表明,在YCSB负载下,Harp的性能比传统算法提升了1.39倍。
关键词:跨空间域分布式事务;网络差异;事务调度;锁争用
论文引用格式:
庄琪钰,李彤,卢卫,等.Harp:面向跨空间域的分布式事务优化算法[J].大数据,,9(4):16-31.
ZHUANGQY,LIT,LUW,etal.Harp:optimizationalgorithmforcross-domaindistributedtransactions[J].BigDataResearch,,9(4):16-31.
0引言年年初,国家完成了全国一体化大数据中心体系总体布局设计,正式启动“东数西算”工程,在京津冀、长三角、粤港澳等八大区域部署国家算力枢纽节点,建设全国一体化算力网络。数据管理正在从面向或限定于单空间域(单一数据中心)的孤立服务发展到跨空间域(跨数据中心)的协同服务阶段。分布式数据库因其高可扩展、高可用以及低成本等特点,在大规模数据的管理和分析中有着广泛应用。为了确保近数据计算,银行、电商、云计算厂商等往往会建设多个数据中心,例如,亚马逊建设有38个数据中心,苹果建设有11个数据中心(6个在美国,2个在丹麦,3个在中国)。通过这种方式,可以将用户的数据存储在最近的数据中心,当用户发起事务的读写操作仅局限于其个人数据时,近数据计算可以保证该事务具备较高的性能。然而,跨域交易打破了近距离计算的假设。跨域交易指的是一个事务涉及处在两个不同区域的用户发生的交易。例如,一个位于广东的用户需要转账元给一个位于北京的用户,由于两个用户的数据存放在不同的数据中心,需要对这两个用户之间的数据进行协调。在处理跨空间域分布式事务时,数据库的并发控制将会遇到新的挑战。两阶段封锁(two-phaselock,2PL)协议是分布式数据库并发控制的经典协议,影响该协议性能的重要指标是锁争用时长(contentionspan)。锁争用时长指的是从事务在执行阶段获取数据项上的锁到事务释放锁的这段时间。在网络时延的影响下,分布式事务的锁争用时长将远大于单机事务,这会限制系统的并发度并且增加系统的回滚率。在跨空间域场景下,分布式事务可能会涉及不同数据中心的多个节点,它们之间的网络时延更长,同时差异性更大。分布式事务的执行通常需要等待最“慢”的子事务(子事务所在参与者节点和协调者节点间的网络时延较大)执行完成后才可以被提交,这会导致锁争用时长进一步变长,给跨空间域分布式事务处理带来了较大的挑战。为了在保证正确性前提下,最小化跨空间域分布式事务的锁争用时长,本文提出了新的事务处理算法Harp。Harp遵循两阶段封锁协议,因此可以保证事务的正确性。此外,Harp充分考虑了网络差异性,根据实时评估的网络时延调整子事务的执行时刻,推迟“快”子事务的执行时刻(子事务所在参与者节点和协调者节点间的网络时延较小),从而减少“快”子事务因等待“慢”子事务产生的不必要的锁争用,提高锁资源的利用率,提升系统并发度和吞吐量。实验表明,在某些场景下,Harp的吞吐量能达到传统算法的2.39倍,同时回滚率下降了32%。1从单空间域分布式事务到跨空间域分布式事务1.1单空间域分布式事务事务是用户定义的一组数据库操作组成的序列,是数据库管理系统中的最小执行单元。分布式事务是指在事务中包含对不同节点上的数据项的操作,当服务端收到一个分布式事务时,通常将其交由一个协调者来负责。在执行阶段,协调者将事务拆分成多个子事务并分发给各个参与者,参与者根据并发控制算法执行事务。例如,如果采用2PL作为并发控制协议,参与者将在执行阶段对数据项进行加锁,这适用于高冲突场景,但会降低系统的并发度,并且需要考虑死锁问题。如果采用乐观并发控制(optimisticconcurrencycontrol,OCC)协议,参与者在执行阶段不需要对数据项加锁,在提交前对数据项进行验证,这适用于低冲突场景。在执行阶段结束后,分布式数据库通常采用两阶段提交(two-phase