CN102457559A - 服务器集群的事务处理方法 - Google Patents

服务器集群的事务处理方法 Download PDF

Info

Publication number
CN102457559A
CN102457559A CN2010105269548A CN201010526954A CN102457559A CN 102457559 A CN102457559 A CN 102457559A CN 2010105269548 A CN2010105269548 A CN 2010105269548A CN 201010526954 A CN201010526954 A CN 201010526954A CN 102457559 A CN102457559 A CN 102457559A
Authority
CN
China
Prior art keywords
affairs
transaction
server cluster
server
service routine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010105269548A
Other languages
English (en)
Other versions
CN102457559B (zh
Inventor
焦旭东
陈志丰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inventec Corp
Original Assignee
Inventec Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inventec Corp filed Critical Inventec Corp
Priority to CN201010526954.8A priority Critical patent/CN102457559B/zh
Publication of CN102457559A publication Critical patent/CN102457559A/zh
Application granted granted Critical
Publication of CN102457559B publication Critical patent/CN102457559B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

一种服务器集群的事务处理方法,适用于利用具有多个节点服务器的服务器集群处理事务。服务器集群的事务处理方法包括:接收从发起者发出的事务,其中事务包括至少一事务步骤;将事务的事务信息储存于数据库,其中事务信息包括所有事务的事务步骤;通知至少一个节点服务器的动作服务程序,依序执行储存于数据库中的事务步骤;以及回报事务的事务执行结果给发起者,以结束事务。本发明提供的服务器集群的事务处理方法,其节点服务器之间不需要进行多余的数据传递动作,事务服务程序也能够实时发现执行失败等异常,并执行异常处理程序。

Description

服务器集群的事务处理方法
技术领域
本发明涉及一种服务器集群的事务处理方法,特别涉及一种整合服务器集群的所有的节点服务器进行事务处理的方法。
背景技术
服务器集群(cluster)的技术是对外提供统一的服务接口(service),并由多个服务器(server)协调工作,其中每一个服务器被称为集群的一个节点(node)。外部的发起者(sponsor)需要集群进行各种称为“事务(transaction)”的操作,而这种集群中的操作往往需要由多个节点参与才能完成。一个事务可能包含多个步骤(step),且每个步骤可能需要不同的节点负责完成。例如一个事务可能要求将一个资源(resource)在节点之间进行迁移(migrate),则这个事务可能会有“发起事务”、“放弃对指定资源的控制”、“接管指定资源”以及“结束事务”等步骤。
由于事务发生在多个节点上,需要解决节点间信息传递的问题。传统上负责第一个步骤的节点执行完毕后,需要将剩余的步骤的数据传送给负责下一个步骤的节点。一旦某次节点之间传递的信息有所缺漏,就会造成后续的步骤无法执行或是执行失败。因此现有的节点运作方式以及信息传递方式并不可靠。
且在现实情况中会有各种意外情况发生,因此每一个步骤都有失败的可能。然而由于传统的做法上各节点都是独立运作,因此节点之间无法得知彼此执行的状况。如此一来,便无法得知整个事务的执行状况;甚至在发生错误时,连是哪一个节点执行失败都不知道。也就是说,现有的做法具有难以掌控事务的执行情况,以及缺乏甚至是难以执行异常处理的缺点。
发明内容
为了解决上述问题,本发明的目的在于提出一种服务器集群(cluster)的事务(transaction)处理方法,其适用于利用具有多个节点(node)服务器的一服务器集群处理一事务。
为了实现上述目的,本发明提供的服务器集群的事务处理方法包括:接收从一发起者(sponsor)发出的事务,其中事务包括至少一事务步骤(step);将事务的一事务信息储存于一数据库,其中事务信息包括所有事务的事务步骤;通知至少一个节点服务器的一动作服务(action service)程序,依序执行储存于数据库中的事务步骤;以及回报事务的一事务执行结果给发起者,以结束事务。
事务信息可包括每一个事务步骤对应的一节点服务器代号。且每一个节点服务器代号分别对应于节点服务器之一。而“通知至少一个节点服务器的一动作服务程序,依序执行储存于数据库中的事务步骤”的步骤可包括:由数据库依序读取事务信息中彼此对应的事务步骤以及节点服务器代号;以及通知与事务步骤对应的节点服务器的动作服务程序的一动作服务接口,令动作服务程序执行对应的事务步骤。
其中动作服务程序包括:读取事务信息的一事务本文(context,又称为上下文)、对应的事务步骤的一动作参数;依据读取的事务本文以及动作参数执行事务步骤;以及将对应的事务步骤的一目前执行状态回传给事务服务程序,并将目前执行状态写入数据库的事务信息。
根据一实施范例,服务器集群的事务处理方法还可包括:当事务服务程序接收到失败的目前执行状态时,执行一异常处理程序,异常处理程序包括:由最后一个成功的事务步骤开始到第一个事务步骤为止,依序对已经执行过的事务步骤执行反动作(anti-action),以将服务器集群回复到执行事务之前的状态。
上述的服务器集群的事务处理方法可以由一事务服务(transaction server)程序执行。事务服务程序可以配置于服务器集群的节点服务器之一;也可配置于一管理服务器,且管理服务器不属于服务器集群。事务服务程序可通过一统一的事务服务接口(interface)接收事务。而统一的事务服务接口可以是一固定的接口地址(socket address)或是一应用程序接口(application programinterface,API)。
综上所述,事务服务程序统整所有节点服务器的动作服务程序以执行事务步骤,并了解事务的所有事务步骤的运作状况。因此节点服务器之间不需要进行多余的数据传递动作,事务服务程序也能够实时发现执行失败等异常,并执行异常处理程序。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1A为一实施范例的服务器集群的示意图;
图1B为另一实施范例的服务器集群的示意图;
图2为一实施范例的事务服务程序的示意图;
图3为一实施范例的动作服务程序的示意图;
图4为一实施范例的服务器集群的事务处理方法的流程图;
图5为一实施范例的动作服务程序的流程图。
其中,附图标记
10  服务器集群
12  节点服务器
14  动作服务程序
142 动作服务接口
144 执行动作程序
20  管理服务器
22  事务服务程序
221 统一的事务服务接口
222 数据库
223 执行程序
224 通信程序
225 异常处理程序
30  发起者
具体实施方式
以下在实施方式中详细叙述本发明的详细特征以及优点,其内容足以使任何本领域技术人员了解本发明的技术内容并据以实施,且根据本说明书所揭露的内容、权利要求范围及图式,任何本领域技术人员可轻易地理解本发明相关的目的及优点。
本发明关于一种服务器集群(cluster)的事务(transaction)处理方法,其适用于利用具有多个节点(node)服务器的一服务器集群处理一事务。
请参照图1A以及图1B,其分别为不同实施范例的服务器集群的示意图。服务器集群的事务处理方法可由一事务服务(transaction service)程序22执行。事务服务程序22可配置于不属于服务器集群10的一管理服务器20之中,如图1A所示。事务服务程序22也可配置于服务器集群10的任一节点服务器12之中,如图1B所示。此外,各个节点服务器12都分别具有一动作服务(actionservice)程序14,以配合事务服务程序22执行事务。
接着请搭配图2以及图3一同参照图4。图2以及图3分别为基于图1A的实施范例的事务服务程序以及动作服务程序的示意图。图4为一实施范例的服务器集群的事务处理方法的流程图。
事务服务程序22接收从一发起者(sponsor)30发出的事务,其中事务包括至少一事务步骤(step)(步骤S110)。为了整合整个执行事务的流程以及系统,事务服务程序22可通过一统一的事务服务接口(interface)221接收事务。而统一的事务服务接口221可以是一固定的接口地址(socket address)或是一应用程序接口(application program interface,API)。其中固定的接口地址包括事务服务程序22所在的管理服务器20或节点服务器12的一对因特网地址(Internet protocol address,IP address)以及连接端口(port)。多个不同的发起者30均可由统一的事务服务接口221发出要求服务器集群10执行的事务。
事务服务程序22将收到的事务的一事务信息储存于一数据库222,其中事务信息包括事务的所有事务步骤(步骤S120)。而事务信息可包括每一个事务步骤对应的一节点服务器代号,且这些节点服务器代号分别对应于服务器集群10中的所有节点服务器12。
举例而言,事务步骤可以以下表1的方式被储存于数据库222。
Figure BSA00000327601100041
Figure BSA00000327601100051
表1
根据一实施范例,发起者30可在发出的事务中详述所有的事务步骤的内容。
根据另一实施范例,数据库222中可预存所有能提供的(也就是在服务器集群10中能被执行的)事务步骤的名称以及内容,类似以API的方式提供给发起者30。则发起者30仅需在发出的事务中记载事务的名称及执行此事务所需的必要参书,而不需详述事务步骤的内容。
事务服务程序22接着通知至少一个节点服务器12的动作服务程序14,依序执行储存于数据库222中的事务步骤(步骤S130)。事务服务程序22可包括一执行程序223,以依序分派对应的节点服务器12去执行事务步骤。且执行程序223可通过一通信程序224下达指令以及执行事务步骤所需的信息给各个节点服务器12,节点服务器12也可通过通信程序224对事务服务程序22进行回报。也就是说,事务服务程序22类似一个中央控管中心,统驭并分发事务步骤给动作服务程序14处理。
且步骤S130可包括下述步骤:由数据库222依序读取事务信息中彼此对应的事务步骤以及节点服务器代号;以及通知与事务步骤对应的节点服务器12的动作服务程序14的一动作服务接口142,令动作服务程序14执行对应的事务步骤。于图3的实施范例,每一个动作服务程序14都有一个动作服务接口142以及一执行动作程序144,其中动作服务接口142可以例如是以API得方式实作。
请参照图5,其为一实施范例的动作服务程序的流程图。动作服务程序14通过动作服务接口142接收到执行事务步骤的要求之后,可依此来处理此事务步骤。
动作服务程序14先读取事务信息的一事务本文(context,又称为上下文)以及对应的事务步骤的一动作参数(步骤S210)。其中事务本文可包括事务目前已完成的阶段的记录,例如已完成的事务步骤的清单。事务本文也可包括此事务的当前状态和共享资源等等与事务相关的信息。而动作参数则包括执行此事务步骤所需的必要信息。例如当事务步骤是要迁移(migrate)一个资源(resource)时,动作参数可以例如是需要迁移的资源的名称或是来源端储存路径,以及迁移的目的地端储存路径。
动作服务程序14依据读取的事务本文以及动作参数执行事务步骤(步骤S220);以及将对应的事务步骤的一目前执行状态回传给事务服务程序22的执行程序223,并将目前执行状态写入数据库222(步骤S230)。目前执行状态可以仅简单的回复“成功”或是“失败”;也可在失败时加注失败的相关信息。
而事务服务程序22再依据对应每一个事务步骤所收到的目前执行状态,回报事务的一事务执行结果给发起者30,以结束事务(步骤S140)。
以成功执行表1的事务步骤为例,处理的顺序如下。
事务服务程序22通过统一的事务服务接口221接收到发起者30发送的事务,而将事务信息储存于数据库222。执行程序223查询数据库222中的事务信息,令节点服务器代号为“Node-A“的节点服务器12执行内容为”put_resource(R)”的事务步骤。节点服务器代号为“Node-A”的节点服务器12执行后,回传值为“成功”的目前执行状态给执行程序223并将目前执行状态写入数据库222。执行程序223再度查询数据库222中的事务信息,得知下一个事务步骤所对应的节点服务器代号为“Node-B”。故执行程序223令节点服务器代号为“Node-B”的节点服务器12执行内容为“get_resource(R)”的事务步骤。节点服务器代号为“Node-B的节点服务器12执行后,也回传值为“成功”的目前执行状态给执行程序223并将目前执行状态写入数据库222。执行程序223查询数据库222的事务信息得知已经没有需要节点服务器12执行的事务步骤后,将值为“成功”的事务执行结果给发起者30,以结束此事务。
事务服务程序22也可包括一异常处理程序225,以处理目前执行状态为“失败”的情况。当事务服务程序22的执行程序223接收到值为“失败”的目前执行状态时,可触发并执行异常处理程序225。异常处理程序225则可由最后一个成功的事务步骤开始到第一个事务步骤为止,依序对已经执行过的事务步骤执行反动作(anti-action),以将服务器集群10回复到执行事务之前的状态。
以“表1”中事务步骤编号3的事务步骤失败的情况为例,处理的顺序如下。
事务服务程序22通过统一的事务服务接口221接收到发起者30发送的事务,而将事务信息储存于数据库222。执行程序223查询数据库222中的事务信息,令节点服务器代号为“Node-A”的节点服务器12执行内容为“put_resource(R)”的事务步骤。节点服务器代号为“Node-A”的节点服务器12执行后,回传值为“成功”的目前执行状态给执行程序223并将目前执行状态写入数据库222。执行程序223再度查询数据库222中的事务信息,得知下一个事务步骤所对应的节点服务器代号为“Node-B”。故执行程序223令节点服务器代号为“Node-B”的节点服务器12执行内容为“get_resource(R)”的事务步骤。节点服务器代号为“Node-B”的节点服务器12执行失败,并回传值为“失败”的目前执行状态给执行程序223并将目前执行状态写入数据库222。执行程序223因此触发异常处理程序225。异常处理程序225查询数据库222得知在此失败的事务步骤之前有执行过事务步骤编号2的事务步骤,而命令节点服务器代号为“Node-A”的节点服务器12执行内容为“put_resource(R)”的事务步骤的反动作(anti-action)。当异常处理程序查询数据库222的事务信息得知所有执行过的事务步骤都进行反动作之后,将值为“失败”的事务执行结果给发起者30,以结束此事务。
此外,执行程序223也可对每个事务步骤分别设定一执行时间门坎值。若没有在执行时间门坎值之内收到负责的动作服务程序14回报的目前执行状态,则视为此事务步骤执行失败并触发异常处理程序225。
综上所述,事务服务程序依据事务信息依序令节点服务器的动作服务程序执行事务步骤,并了解事务的所有事务步骤的运作状况;因此事务服务程序以及服务器集群内的操作统整为一。且通过数据库,不同的节点服务器能够简单并完整地得到自己执行事务步骤时所需的事务参数等信息,也能回报并备份自己的目前执行状态。
此外,通过以事务服务程序集中管理事务的进行的方式,能够确切地知道每一个事务步骤的执行状况,而能够马上发现执行失败等异常。且异常处理程序能通知发起者执行失败甚至是失败的详细内容;更能将已执行过的事务步骤以反动作处理,以将服务器集群回复成原本的状态。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (9)

1.一种服务器集群的事务处理方法,适用于利用具有多个节点服务器的一服务器集群处理一事务,其特征在于,该服务器集群的事务处理方法包括:
接收从一发起者发出的该事务,其中该事务包括至少一事务步骤;
将该事务的一事务信息储存于一数据库,其中该事务信息包括该事务的所有该事务步骤;
通知至少一该节点服务器的一动作服务程序,依序执行储存于该数据库中的该事务步骤;以及
回报该事务的一事务执行结果给该发起者,以结束该事务。
2.根据权利要求1所述的服务器集群的事务处理方法,其特征在于,该事务信息包括每一该事务步骤对应的一节点服务器代号,且每一该节点服务器代号分别对应于该些节点服务器之一;该通知至少一该节点服务器的一动作服务程序,依序执行储存于该数据库中的该事务步骤的步骤包括:
由该数据库依序读取该事务信息中彼此对应的该事务步骤以及该节点服务器代号;以及
通知与该事务步骤对应的该动作服务程序的一动作服务接口,令该动作服务程序执行对应的该事务步骤。
3.根据权利要求2所述的服务器集群的事务处理方法,其特征在于,该动作服务程序包括:
读取该事务信息的一事务本文、对应的该事务步骤的一动作参数;
依据读取的该事务本文以及该动作参数执行该事务步骤;以及
将对应的该事务步骤的一目前执行状态回传给一事务服务程序,并将该目前执行状态写入该数据库。
4.根据权利要求3所述的服务器集群的事务处理方法,其特征在于,还包括:
当该事务服务程序接收到失败的该目前执行状态时,执行一异常处理程序,该异常处理程序包括:
由最后一个成功的该事务步骤开始到第一个该事务步骤为止,依序对已经执行过的该事务步骤执行反动作,以将该服务器集群回复到执行该事务之前的状态。
5.根据权利要求1所述的服务器集群的事务处理方法,其特征在于,由一事务服务程序执行。
6.根据权利要求5所述的服务器集群的事务处理方法,其特征在于,该事务服务程序为配置于该服务器集群的该些节点服务器之一。
7.根据权利要求5所述的服务器集群的事务处理方法,其特征在于,该事务服务程序为配置于一管理服务器,且该管理服务器不属于该服务器集群。
8.根据权利要求5所述的服务器集群的事务处理方法,其特征在于,该事务服务程序通过一统一的事务服务接口接收该事务。
9.根据权利要求8所述的服务器集群的事务处理方法,其特征在于,该统一的事务服务接口为一固定的接口地址或是一应用程序接口。
CN201010526954.8A 2010-10-25 2010-10-25 服务器集群的事务处理方法 Expired - Fee Related CN102457559B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010526954.8A CN102457559B (zh) 2010-10-25 2010-10-25 服务器集群的事务处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010526954.8A CN102457559B (zh) 2010-10-25 2010-10-25 服务器集群的事务处理方法

Publications (2)

Publication Number Publication Date
CN102457559A true CN102457559A (zh) 2012-05-16
CN102457559B CN102457559B (zh) 2014-05-28

Family

ID=46040210

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010526954.8A Expired - Fee Related CN102457559B (zh) 2010-10-25 2010-10-25 服务器集群的事务处理方法

Country Status (1)

Country Link
CN (1) CN102457559B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105117304A (zh) * 2015-07-29 2015-12-02 北京京东尚科信息技术有限公司 一种基于MariaDB的数据库恢复的系统和方法
CN106302305A (zh) * 2015-05-11 2017-01-04 阿里巴巴集团控股有限公司 一种事务处理方法和系统
CN109710174A (zh) * 2017-10-25 2019-05-03 爱思开海力士有限公司 数据处理系统及其操作方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101141301A (zh) * 2006-08-12 2008-03-12 国际商业机器公司 用于事务恢复的方法及装置
EP1315350B1 (en) * 2001-11-21 2008-10-15 Sun Microsystems, Inc. A method for unifying stream and URL parameter passing in a data processing system
CN101651716A (zh) * 2009-09-14 2010-02-17 杭州世导科技有限公司 业务流处理系统及其处理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1315350B1 (en) * 2001-11-21 2008-10-15 Sun Microsystems, Inc. A method for unifying stream and URL parameter passing in a data processing system
CN101141301A (zh) * 2006-08-12 2008-03-12 国际商业机器公司 用于事务恢复的方法及装置
CN101651716A (zh) * 2009-09-14 2010-02-17 杭州世导科技有限公司 业务流处理系统及其处理方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106302305A (zh) * 2015-05-11 2017-01-04 阿里巴巴集团控股有限公司 一种事务处理方法和系统
CN105117304A (zh) * 2015-07-29 2015-12-02 北京京东尚科信息技术有限公司 一种基于MariaDB的数据库恢复的系统和方法
CN109710174A (zh) * 2017-10-25 2019-05-03 爱思开海力士有限公司 数据处理系统及其操作方法
CN109710174B (zh) * 2017-10-25 2022-06-21 爱思开海力士有限公司 数据处理系统及其操作方法
US11403177B2 (en) 2017-10-25 2022-08-02 SK Hynix Inc. Data processing system for securing atomicity of transactions without generating separate commit command, and operating method thereof

Also Published As

Publication number Publication date
CN102457559B (zh) 2014-05-28

Similar Documents

Publication Publication Date Title
CN108595157B (zh) 区块链数据的处理方法、装置、设备和存储介质
EP1949595B1 (en) Method for the construction and execution of a distributed workflow in a communication system
US8788565B2 (en) Dynamic and distributed queueing and processing system
US20160004628A1 (en) Parallel test execution framework for multiple web browser testing
US20080065994A1 (en) Systems and methods for adapting service interface behaviors
CN108845940A (zh) 一种企业级信息系统自动化功能测试方法和系统
CN110765024A (zh) 模拟测试方法、装置、电子设备和计算机可读存储介质
CN107612950A (zh) 一种提供服务的方法、装置、系统、电子设备
JP6975153B2 (ja) データ格納サービス処理方法及び装置
US9537940B2 (en) Exchange of information between processing servers
CN105260297B (zh) 一种测试数据管理系统及方法
US7716531B2 (en) System and method for fault mapping of exceptions across programming models
Rodríguez et al. Formal modelling and incremental verification of the MQTT IoT protocol
CN102457559B (zh) 服务器集群的事务处理方法
EP3703342B1 (en) Dynamic load balancing in network centric process control systems
CN113641742A (zh) 一种数据抽取方法、装置、设备和存储介质
US7962799B2 (en) System and method for synchronizing test runs on separate systems
US11381665B2 (en) Tracking client sessions in publish and subscribe systems using a shared repository
CN104142882A (zh) 基于数据处理的测试方法及装置、系统
KR20200046316A (ko) 웹 어플리케이션 서버, 사용자 요청 처리 방법 및 통합 요청 처리 방법
CN109245941A (zh) 一种服务补偿方法及装置
Cha et al. Design and Implementation of a Real-time Monitoring Tool for Data Distribution Service
US11582345B2 (en) Context data management interface for contact center
RU2676423C2 (ru) Способ и устройство для реализации концепции транзакций в opc ua посредством механизма таймаута
TWI421677B (zh) 伺服器集群的事務處理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140528

Termination date: 20151025

EXPY Termination of patent right or utility model