分布式系统中事务的提交技术方案

技术编号:2821201 阅读:188 留言:0更新日期:2012-04-11 18:40
提供了一种用于在分布式系统中提交事务的方法、计算机程序产品、以及系统。该方法、计算机程序产品、以及系统提供从客户端接收在分布式系统中的协调器节点处提交事务的请求,为分布式系统中的每个其它节点跟踪尾部日志序列号,为分布式系统中的每个参与者节点确定与事务相关联的最大日志序列号,并且在每个参与者节点的尾部日志序列号大于或者等于与在相应参与者节点处的事务相关联的最大日志序列号时,在协调器节点处提交事务。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般涉及分布式系统。更具体地,本专利技术针对分布式系统中事务 的提交。
技术介绍
分布式系统是数据被存储于各种数据库中的多节点系统。节点可以是诸 如计算机系统之类的任何数据处理系统。虽然只能通过一个节点访问每个数 据库,但是可以通过分布式系统中的节点访问多于一个数据库。分布式系统中的节点可以通过诸如局域网(LAN)或者广域网(WAN)之类的网络彼此 连接。另外,分布式系统中的节点可以处于一个位置或者散布于多个位置。 分布式系统的示例包括数据库系统、邮件服务器系统等。由于由导致单个逻辑动作的一組请求组成的事务(transaction)可以修改 分布式系统中多个数据库中的数据,因此无论是否发生故障(例如供电中断、 硬件冲突等),分布式系统都必须保证维持数据一致性。因此,在事务可以被 提交之前,事务中每个所请求的操作都必须被"提交了,,,即数据的改变成为 持久的。在数据改变的日志记录被"刷新(flush)"、即写入非易失性存储器 (例如磁盘驱动器)时,数据改变成为持久的。日志记录允许节点通过重新 进行(replay)在故障之前提交的操作来将数据库恢复到其故障前的状态。传统地,分布式系统已经利用两阶段提交(2PC)协议来保持数据一致 性。在2PC系统中,每个事务的协调器节点、即客户端(例如应用程序)递 交事务的节点为事务中的每个请求识别分布式系统中负责处理请求的节点。 被分配用来处理事务中的请求的每个节点被称为参与者节点。两阶段提交协议中的每个参与者节点投票决定(vote)提交还是中止事 务,并将其投票发送到协调器节点。然后,协调器节点基于来自每个参与者 节点的投票做出关于提交还是中止事务的最终决定。仅在所有参与者节点都 投票决定提交事务时,协调器节点才将提交事务。否则,协调器节点将中止 事务。然而,两阶段提交协议并不非真正是消息高效的,这是因为在阶段一期 间,协调器节点将消息发送到每个参与者节点来准备提交事务。然后,每个 参与者节点决定其是否可以提交所请求的 一个或多个搡作,并将消息以及其 关于提交还是中止事务的投票一起发送回协调器节点。在第二阶段中,协调 器节点基于其从参与者节点接收的所有投票来决定提交还是中止事务,并将 消息发送到每个参与者节点以提交或者中止事务。分布式系统所采用的另 一种提交协议是在名称为"Method of Commitment in a Distributed Database Transaction"的美国专利第5799305号中 讨论的两间隔提交(2IC),其整体合并于此以用于全部的用途。2IC系统使 用从间隔协调器接连发送的间隔消息来确定提交还是中止事务。因此,虽然 2IC系统比2PC系统需要的消息收发(messaging )要少,但是比起所必需的, 其仍然是消息密集的(message-intensive )。因此,需要一种比现有的提交协议要消息高效的分布式事务提交协议。 本专利技术寻求解决这样的需要。
技术实现思路
提供了一种用于在分布式系统中提交事务的方法、计算机程序产品、以 及系统。该方法、计算机程序产品、以及系统提供从客户端接收在分布式系 统中的协调器节点处提交事务的请求,该分布式系统包括一个或多个参与者 节点;对分布式系统中的所有其它节点中的每一个节点跟踪尾部(tail)日志 序列号,每个尾部日志序列号近似于由相应(respective)节点刷新的最后的事 务曰志记录,其中所有其它节点中的至少一个节点是参与者节点;对一个或 多个参与者节点中的每一个参与者节点确定与事务相关联的最大日志序列 号,每个最大日志序列号对应于在相应参与者节点处的事务所需的最高事务 曰志记录;并且在一个或多个参与者节点中的每一个参与者节点的尾部曰志 序列号大于或者等于与在相应参与者节点处的事务相关联的最大曰志序列号 时,在协调器节点处提交事务。附图说明现在将参照附图仅仅作为示例描述本专利技术,附图中图1是^4居本专利技术的一个方面在分布式系统中提交事务的方法的处理流程;图2A和图2B图示根据本专利技术的一种实现在分布式系统中:t是交事务的方法的流程图3A和图3B描述根据本专利技术的实施例的分布式系统; .图4示出根据本专利技术的另一方面的分布式系统;以及图5是可将本专利技术的实施例与其一起实施的数据处理系统的框图。具体实施例方式本专利技术 一般涉及分布式系统,更具体地涉及分布式系统中事务的提交。 给出下面的描述以使得本领域技术人员能够做出并使用本专利技术,并且下面的 描述是在专利申请及其要求的语境下提供的。对于本领域技术人员,这里描 述的优选实现和总的原理和特性的各种修改将是显而易见的。因此,本专利技术 并非意在限制于所示出的实现,而是与同这里描述的原理和特性一致的最宽 的范围相符合。图1描述了根据本专利技术的一 方面在分布式系统中提交事务的处理100。 在102,从客户端接收在分布式系统中的协调器节点处提交事务的请求。客 户端可以是应用程序或者进程,并且可以位于协调器节点或者其它节点上。 通常在协调器节点处初始化事务,即客户端递交开始事务的请求。分布式系 统包括参与事务的所有参与者节点,并且在分布式系统中可能存在一个或多 个参与者节点。在一些实施例中,协调器节点也可以是参与者节点。在104,(在协调器节点处)跟踪分布式系统中每个其它节点的尾部曰志 序列号。至少一个其它节点是分布式系统中的参与者节点,这是清楚的。分 布式系统中的每个节点保持由该节点实现的所有请求的曰志。曰志记录通常 首先被创建于易失性存储器,即易受故障影响的存储器,诸如随机存取存储 器(RAM)。当节点准备好提交所请求的操作时,其将把与所请求的操作相 关联的日志记录"刷新",即写入诸如硬盘之类的非易失性存储器。刷新曰志 记录使得在其后某一时刻发生故障时准许节点再次执行所请求的操作。每个 尾部日志序列号近似于由相应节点刷新的最后的事务日志记录。然后,在106对于一个或多个参与者节点中的每一个参与者节点确定与 事务相关联的最大日志序列号。在单个事务内通常存在多个请求。由于每个 参与者节点可被分配来处理多于一个请求,并且每个请求具有单独的日志记 录,因此每个最大日志序列号对应于在相应参与者节点处的事务所需的最高 事务日志记录(即,与由事务的各个参与者节点执行的最后请求的操作对应 的事务曰志记录的日志序列号)。由于每个节点的日志是该节点独有的,因此 一个节点处的日志序列号通常将与另一节点处的相同曰志序列号对应于不同 的事务。在一个或多个参与者节点中的每一个参与者节点的尾部日志序列号大于 或者等于与相应参与者节点处的事务相关联的最大日志序列号时,在协调器 节点处提交事务(108)。这点保证在协调器节点处提交事务之前每个参与者 节点已经提交了其各自的 一个或多个事务请求,这保持了数据一致性。图2A和图2B中图示了根据本专利技术的实施例在分布式系统中提交事务的 处理200。在202,在分布式系统中的协调器节点处从客户端接收到提交事务 的请求。在递交了提交请求时,客户端典型地已经递交了许多其它的请求, 诸如对协调器节点修改、删除、或者插入数据的请求,该协调器节点然后将 那些请求转送到分布式系统中参与事务的一个或多个参与者节点。在协调器节点处维持对于分布式系统中的其它节点中的每本文档来自技高网
...

【技术保护点】
一种在分布式系统中提交事务的方法,该方法包括: 从客户端接收在该分布式系统中的协调器节点处提交事务的请求,该分布式系统包括一个或多个参与者节点; 对该分布式系统中的所有其它节点中的每一个节点跟踪尾部日志序列号,每个尾部日志序列号近似于由相应节点刷新的最后的事务日志记录,其中所有其它节点中的至少一个节点是参与者节点; 对一个或多个参与者节点中的每一个参与者节点确定与事务相关联的最大日志序列号,每个最大日志序列号对应于在相应参与者节点处的事务所需的最高事务日志记录;以及 当一个或多个参与者节点中的每一个参与者节点的尾部日志序列号大于或者等于与在相应参与者节点处的事务相关联的最大日志序列号时,在协调器节点处提交事务。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:马修A赫拉斯蒂莫西J文森特
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1