分布式系统及其事务处理方法技术方案

技术编号:9936883 阅读:153 留言:0更新日期:2014-04-18 20:23
一种分布式系统的事物处理方法,用于在分布式系统中处理事务,所述分布式系统包括多个节点且各个节点具有自身的副本,其特征在于,包括如下步骤:各个节点向各自的副本发送所述事物的提交日志;各个节点从所述副本接收对于所述提交日志的答复,由此完成所述事物的提交。

【技术实现步骤摘要】
【专利摘要】本专利技术涉及一种分布式系统的分布式事务优化方法及将事物优化的分布式系统,并且涉及在分布式系统中处理事务的方法,该分布式系统包括多个节点且各个节点具有副本。本专利技术的方法包括如下步骤:一个协调者节点向其副本发送所述事物的提交日志;所述协调者节点从所述副本接收对于所述提交日志的答复;所述协调者节点向所有参与者节点发送用于请求所述事物的提交的提交消息;各个所述参与者节点基于所述提交消息执行所述事物的提交。【专利说明】
本专利技术涉及一种,具体地,涉及在分布式系统(Distributed System)中执行的分布式事务(Distributed Transaction)的优化,尤其涉及一种在分布式系统中使分布式事务的提交优化的方法及实现了事物优化的分布式系统。本专利技术是从作为韩国知识经济部的产业融合源泉技术开发事业的一环而执行的研究中得出的(10040824,实时处理大容量传感器流数据的开放式传感器DBMS开发)。
技术介绍
分布式系统包括在两个以上网络中相互连接的多个节点,例如,包括独立服务器、计算机或者数据库系统等。分布式系统是如下系统:在通过网络连接的各节点分散执行一个作业单位的事物,由此被看作是执行一个作业。因此,在分布式系统中,在各个本地资源(local resource)所发生的事物内容或结果与连接于网络的其他节点同步。在多个节点中将全部事物整合到一起而管理的一个节点会成为事物的协调者(coordinator)或主节点(master),而剩下的节点会成为参与者(participant)或从节点(slave)。此时,在多个节点中,产生事物的一个节点会成为事物的协调者,而剩下的系统会变成参与者。在分布式系统中执行的分布式事务是指在分布于网络的资源中执行事物,通常在各个节点利用用于事物一致性(atomicity)的两阶段提交协议(2-phase commitprotocol)而进行处理。在两阶段提交协议中协调者请求参与者处理各个本地事物(localtransaction)。协调者在各阶段从所有参与者接收到成功的答复(reply)后决定事物的成功与否。若所有参与者的事物都成功了则该阶段便是成功,若不是则该阶段便是失败。当事物成功时向用户发送对提交(commit)的答复,当失败时,请求全体参与者中止(abort)各个本地事物。两阶段提交协议一般分为两个阶段而执行。第一个阶段是处理准备(prepare)阶段。在该阶段中,协调者将要求准备本地事物的消息记录到自己的日志中,向各参与者发送处理准备消息。当各个参与者接收处理准备消息并各自能够执行本地事物时,将处理准备消息记录到自己的日志中,并向协调者发送处理准备消息。这样,全体参与者和协调者通过日志永久地记录各个本地事物达到处理准备阶段的事实。在该过程中若一部分参与者无法处理本地事物,则协调者将意识到本地事物的失败,请求全体参与者中止各个本地事物。第二个阶段是提交(commit)阶段。该阶段在确认所有参与者和协调者已处于处理准备阶段之后进行。协调者对全体参与者发出执行提交的请求,各参与者在执行提交后向协调者发送对此操作的答复。此时为了永久性,各参与者将对于提交的信息记录在自己的日志中。若从所有参与者接收到提交成功的答复,则协调者便做出全局提交(globalcommit)成功的判断。即使在一部分参与者中本地事物提交失败,但也有可能在其他一部分参与者本地事物提交成功,因此无法立即判断成败。在这种情况下,为了分布式事务的一致性,需要执行后处理作业。后处理作业根据分布式系统的结构而定,作为这种后处理作业,可以列举例如预定丢弃(presumed abort)和预提交(presumed commit)。在第一个阶段成功而尚未进行第二个阶段之前各参与者无法决定本地事物的提交与否。此时,若本地事物接近修改的数据则无法看到数据。换言之,只有完成第二个阶段的提交才能做出各事物成功的判断,因此处理准备阶段的事物等于未进行任何处理的状态。两阶段提交协议使得与所有参与者之间发生两次请求-答复集(request-respons set),因此成为分布式系统的性能上的洋脚石。为解决该问题提出了使协议简单化的多种方法。其中有一种方法是一阶段提交协议。一阶段提交导入了每次在协调者日志和参与者侧进行事物时提前使其处于准备阶段的Implicit yes_vote (隐含同意)。在这种情况下会留下追加日志,每次有新作业时都需要变更参与者的状态。另外,必须确保将协调者的日志存储在如硬盘等数据存储装置,因此在数据存储装置的性能和速度相对低的情况下,提交的执行时间比较长。近年来随着对大容量系统的要求增加,分布式系统环境为了确保数据的永久性(durability)和可用性(availability)而经常向系统导入副本(replica)。具体而言,针对特定的数据或机器设置副本,以在无法接近原数据或机器的情况下也能够利用副本来提供与原本相同的数据和服务。但是,在具有副本的分布式系统环境下要适用现有分布式事务的处理方式有相当多的难处。即,这是因为,这种分布式系统为了处理分布式事务,不仅要支持两阶段提交协议,还要承担执行原本-副本之间的通信所需要的负荷。
技术实现思路
因此,本专利技术的目的在于提供一种通过在分布式系统中缩减分布式事务的提交步骤来对分布式事务的提交进行优化的方法。为达到上述目的,根据本专利技术实施例,提供一种在分布式系统中处理事物的方法和用于实现所述方法的分布式系统。在本专利技术实施例中,分布式系统包括多个节点,且各个节点具有自身的副本。在这种分布式系统中处理事物的方法包括如下步骤:各个节点向各自的副本发送所述事物的提交日志;各个节点从所述副本接收对于所述提交日志的答复,由此完成所述事物的提交。在本专利技术实施例中,所述事物是本地事物,各个所述节点为了在所述分布式系统中确保永久性而具有一个以上的副本。在本专利技术实施例中,分布式系统包括多个节点,且各个节点具有副本。在这种分布式系统中处理事物的方法包括如下步骤:一个协调者节点向其副本发送所述事物的提交日志;所述协调者节点从所述副本接收对于所述提交日志的答复;所述协调者节点向所有参与者节点发送用于请求所述事物的提交的提交消息;各个所述参与者节点基于所述提交消息执行所述事物的提交。在本专利技术实施例中,所述协调者节点向各个参与者节点发送的提交消息是不需要各个所述参与者对于所述提交消息作出响应的提交请求。在本专利技术实施例中,所述方法还包括如下步骤:未接收到所述协调者节点发送的所述提交消息或者所述提交失败的参与者节点,就所述事物的提交向所述协调者节点进行事后确认;进行所述事后确认的步骤包括:各个参与者节点周期性地确认是否接收到所述提交消息;各个参与者节点在未接收到所述提交消息的情况下,询问所述协调者节点是否发送了所述提交消息;各个参与者节点根据来自所述协调者的对于所述询问的答复,执行所述事物的提交或中止。在本专利技术实施例中,所述副本在其原节点无法发挥功能时代替所述原节点来处理所述事物。在本专利技术实施例中,所述分布式系统包括多个节点和属于各个所述节点的副本,并且各个所述节点向各自的副本发送事物的提交日志,并从所述副本接收对于所述提交日志的答复,由此完成本地事物。在本专利技术本文档来自技高网
...

【技术保护点】
一种分布式系统的事物处理方法,用于在分布式系统中处理事务,所述分布式系统包括多个节点且各个节点具有自身的副本,其特征在于,包括如下步骤:各个节点向各自的副本发送所述事物的提交日志;各个节点从所述副本接收对于所述提交日志的答复,由此完成所述事物的提交。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:林昍映朴相永
申请(专利权)人:株式会社特博睿
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1