首页 / 新闻

08.

26

2015

Hadoop分布式事务处理新突破

技术博客

2015年7月23日的中国Hadoop技术峰会首日,在全体会议上,来自ebay,星环科技,IBM与Cloudera四家公司的代表先后上台发表讲话。内容从Hadoop技术与发展概览到最新Power平台的发布,几乎涵盖了当今中国业内Hadoop大数据技术的所有热点。

其中,本次技术峰会主办方星环科技的代表也是本次峰会的联合主席——星环科技创始人兼CTO孙元浩的发言,不同于其他代表展望Hadoop未来发展的基调,而是从十五年前Eric的一篇演讲入手,提出了Hadoop技术发展中分布式事务处理一致性的困难。他从CAP定理开始,提出了实现一致性的矛盾所在,尤其是保障一致性与可用性的困难。但是随后孙元浩进行了ACID详解,理论上阐述了星环科技对分布式事务处理一致性的两种解决方案。并同时通过PPT演示展现了星环科技Transwarp Inceptor对当前分布式事务处理一致性问题解决的处理方案及其优越性。

演说的一开始,孙元浩简要概述了CAP理论的历史,即从1998年Eric Brewer提出理论假设一直到2002年被证明的过程。紧接着他通过CAP的三选二定理,

指出在数据一致性(C)、系统高可用性(A)、容忍网络隔离(P)中,容忍网络隔离是必选项,也就是只有CP与AP两种可行组合选项。

随后,孙元浩用三张PPT进行了CAP定理图解展示,详细地阐述了CA、CP、AP三种组合的各自优劣。

基于此,又对数据一致性和系统高可用性做出了比较。同时,也站在考虑一致性的背景之下,对Local Transaction与Global Transaction进行了定义解释,并将它们放在了对比的平台上。

孙元浩重新解读CAP定理的内涵,是这次演讲中的一个转折点。他将Eric在2012年的一篇文章《CAP Twelve Years Later: How the "Rules" Have Changed》作为对CAP定理“辩护”的开始,提出结论:经过重新解释后的CAP定理意味着创建一个保证一致性的高可靠系统是完全有可能的。随即,进一步叙述了Multiple replicas + Paxos可以提供一致性+更好的可用性(Availability),而Multiple replicas + Paxos + 2PC(两阶段提交)可以实现Global Transactions。此外,孙元浩还从OLTP在线交易系统和DATA Warehouse两方面的优势论述了选择Global Transaction的理由。

孙元浩对ACID的详解,受到在场不少听众的关注。ACID,即是Atomicity(事务的所有操作在数据库中要么全部正确反映出来,要么完全不反映),Consistency(一个事务在独立执行时,该事务保持数据库状态的一致性),Isolation(并发事务执行时,系统保证每个事务之间不受其他事务的影响)与Durability(一个事务成功完成后,它对数据库的改变是永久的,即使出现系统故障)。基于ACID的详解,孙元浩提出了星环科技Transwarp Inceptor对分布式系统中一致性保证的解决方案。在Transactions in Transwarp Inceptor方面,采用多版本两阶段封锁协议实现可串行化快照隔离(Serializable Snapshot Isolation)。具有两阶段封锁协议可保证事务的完全可序列化和多版本(快照)隔离可以保证只读事务的高并发性两大优点。

而Locks in Transwarp Inceptor采用了申请锁(2-Phase Commit),具有follower故障恢复后从leader获取最新状态,leader故障后重新选举等特点。

在事务处理的冲突上,当两个事务试图更新同一行数据,考虑下列情况:

1、Transaction1先开始,执行完select子句后,Transaction2开始执行;

2、Transaction2先完成提交。

同时也提供两种解决方案:

1、先提交者胜(First Committer Wins),后提交者退出(Abort)。等到并发事务都结束时再释放互斥锁,并检测冲突。

2、使用select for update语法,读取数据时就申请互斥锁。

最后,孙元浩总结了Transwarp Inceptor在对分布式事务处理支持能力上的几大优势,包括支持ORC格式的增删改查,支持全局的分布式事务处理,支持可串行化的快照隔离级别,满足数据仓库和数据集市对数据一致性的要求等等。

从孙元浩的演讲内容中不难发现,一直以来困扰业界的分布式事务处理一致性得到了突破的希望,也就是说在hadoop上实现全局事务处理在理论和实践上都是可行的,而星环的产品已经能够通过对ACID和全局事务的支持,进入金融、电信等行业客户的核心应用领域。