CN101317163B - 不间断事务处理系统 - Google Patents

不间断事务处理系统 Download PDF

Info

Publication number
CN101317163B
CN101317163B CN2006800447663A CN200680044766A CN101317163B CN 101317163 B CN101317163 B CN 101317163B CN 2006800447663 A CN2006800447663 A CN 2006800447663A CN 200680044766 A CN200680044766 A CN 200680044766A CN 101317163 B CN101317163 B CN 101317163B
Authority
CN
China
Prior art keywords
mentioned
server
centric
affairs
request
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.)
Active
Application number
CN2006800447663A
Other languages
English (en)
Other versions
CN101317163A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101317163A publication Critical patent/CN101317163A/zh
Application granted granted Critical
Publication of CN101317163B publication Critical patent/CN101317163B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明提供一种不间断事务处理系统。在业务系统中,使由服务器或者网络等故障引起的服务暂时中断的时间缩短变为重要,当前的故障应对一般利用故障检测和移交的方式,而由于在故障检测中至少需要10秒到几分钟的时间,因此服务中断时间在其以上,成为重大的问题。本发明提出了不等待故障检测,在一定时间没有应答的情况下,从客户端向备用的服务器中心再次发送处理的系统。本发明的事务处理机构具备把使用了处理权限Token的排斥控制与数据匹配相组合的事务开始处理机构、把基于分散合意的能否提交判断与更新数据的复制相组合的提交处理机构。依据该机构提供在故障发生时把服务停止时间缩短到从客户端来看服务没有停止的程度的时间的系统。

Description

不间断事务处理系统
技术领域
本发明涉及不间断事务处理系统。更详细的讲,涉及用于不间断事务系统构筑的事务处理方法、处理系统及其控制程序。
背景技术
在当前的业务类系统中,由于服务器等的系统故障而暂时停止事务处理成为一个很大的问题。为此,例如在专利文献1中,公开了诊断并自我修复服务器中心(服务器群的组)中的服务器故障的方法以及系统。
专利文献1:特开2004-110790号公报
从系统的利用者来看,即使发生系统故障,但如果在相对于正常的时候没有改变的时间内(大多系统中是2、3秒)完成事务处理则没有问题,但是在一般的系统中,难以使停止时间收敛在上述的时间以内。
当前的业务系统的抗故障机构以故障检测和移交处理为基本。即,采用如果检测出故障则立即进行切换的方式。然而,在故障检测方面一般需要10秒~几分钟。这是因为故障检测经由通信,以外部计算机与对象服务器的消息交换是否拖延来进行判断。
然而,即使对象服务器正常动作,但有时由于负载暂时较高,消息交换发生拖延,因此在某个时间内试行若干次消息交换,这样做也不能正常进行消息交换的情况下,判断为在对象服务器中发生了故障。如果把该应答等待时间或者试行次数设定为过小,则尽管对象服务器正常进行动作,但故障检测机构也判断为发生故障,开始在备用服务器中的移交处理。因此,在生存确认方面,至少设置10秒左右的时间。
因此,不能在从利用者来看不知道系统故障的程度的时间内进行故障检测和移交。这一点在故障检测中是本质性的。为了进一步缩短用于生存确认的时间,需要准备生存确认的消息处理专用的网络,进而,在对象服务器中准备了生存确认专用的处理器的基础上,需要用于确认操作系统或者其上的处理是否正常进行动作的机构。然而这需要变更硬件和操作系统,当前状况下的开放式平台(open flatform)的环境不能响应要求。
发明内容
从而,本发明是为解决上述课题而完成的,其目的在于提供不等待系统的故障检测,在一定时间没有应答的情况下,能够向备用系统再次发送处理的新的事务处理方法等。
在本发明中,主要设想下面那样的条件。
由一个数据管理机构和更新该机构中的数据的一个以上的服务器构成的组(以下,把该组称为服务器中心(server farm))存在(2F+1)组(F是自然数)。关于该服务器中心的组存在发行事务请求的客户端,各服务器中心之间、客户端与服务器中心之间,经由具有多条数据发送路径的冗余化(多重化)了的网络被连接。能够从一个客户端投入多次同一事务的请求,客户端在等待一定时间也没有得到来自一个服务器中心的应答的情况下,向其它的服务器中心发送同一个事务的请求。另外,虽然任意的网络以及服务器中心随时有可能成为功能不全,但是由于故障而陷入功能不全的最多只有F组的服务器中心。
图1表示了本发明设想的系统基本形式(相当于F=1的情况)。
如在这里所示,在各服务器中心1~3中,分别存在多个应用服务器(1c~3c)、各服务器中心中的一个数据库(DB1a、2a、3a)和管理其DB的DB服务器(1b、2b、3b)。请求事务的客户端4、5经由各服务器中心内的应用服务器和DB服务器,访问事务所需要的数据库。
图2表示了本发明设想的最小的结构。图中的仲裁器(arbiter)8是服务器中心的特殊形式,是仅为了使其它的服务器中心正常工作的不进行事务处理也不具有DB的服务器中心。例如,在F=1的情况下,虽然在本发明中需要3个服务器中心,但不需要把DBMS(数据库管理系统)三重化的情况也很多。而本发明由于以基于多数决定的分散合意协议为基础,因此需要即使在二重化的情况下,也进行针对多数决定的投票的服务器。进行该动作的是仲裁器8。
以下,以(2F+1)组(奇数组)为基本说明服务器中心,而通过这样在结构中包括仲裁器8,在2F组(偶数组)的服务器中心的系统中也能够应对。
本发明的课题在这样的条件下,保证下面的3点。
<课题1>即使在多次重复执行同一个事务的情况下,最多有一个执行在提交中成功(完成提交)。
<课题2>根据最新的数据执行提交完成了的事务。
<课题3>即使某个服务器中心由于故障而停止,也不会长时间停止这些事务处理而能继续进行。
为了解决这样的课题,在本发明的第1实施形态中提供以下的处理方法。
(1)在事务开始处理中,处理下述步骤的方法。
步骤1:在事务开始处理中,参照对象事务的ID,确认是否已经正在执行同一个ID的事务,或者提交已经完成,如果是正在执行或者提交已经完成,则回退(取消)对象事务。
步骤2:进而,在事务开始处理中,自身服务器中心确认是否保持着没有用尽有效期间的处理权限Token(带时间限制的Token),如果没有保持它,则使用「在2F+1台的服务器群中的利用了处理权限Token的排斥控制技术」,进行处理权限Token的取得处理,等待其取得完成。
步骤3:进而,在进行了上述的处理权限Token的取得处理的情况下,在该处理的同时,或者紧接在其以后,使用「在2F+1台的服务器群中的取得数据匹配的技术」,自身服务器中心在系统内的所有的服务器中心之间保持最新的数据。
这里,「在2F+1台的服务器群中的利用了处理权限Token的排斥控制技术」和「在2F+1台的服务器群中的取得数据匹配的技术」如后所述,使用公知技术。
另外,是除去(1)的处理以外,还处理(2)的步骤的方法。
(2)在事务的提交处理中,执行下述的处理流程。
步骤1:在提交处理中,使用「2F+1台的服务器群中的更新数据的复制技术」,向所有的服务器中心传送对象事务的事务ID、该事务更新了的数据、向该事务的请求源返送的处理结果,确认至少对于F+1台的服务器的拷贝。
步骤2:进而,在步骤1成功了的情况下,使用「在2F+1台的服务器群中的基于分散合意的能否提交的判断技术」,向其它所有的服务器发送提交请求消息,如果至少接收到来自F+1台服务器的提交合意,则当作提交成功。
步骤3:进而,使所有的服务器中心知道提交被确定了。
这里,「在2F+1台的服务器群中的更新数据的复制技术」和「在2F+1台的服务器群中的基于分散合意的能否提交的判断技术」如后所述,使用公知技术。
(1)和(2)表示本发明的主要处理,进而作为添加的处理,包括以下的方法。
(3)在处理权限Token取得处理中接收到提交请求消息的情况下,直到处理权限Token取得处理完成为止,不进行针对提交请求消息的应答,或者,应答提交请求消息的再次发送委托的处理。
(4)在向其它的服务器中心发送提交请求消息,接收其应答而确定提交为止的期间中,在接收到处理权限Token取得消息的情况下,直到提交确定为止,不进行针对处理权限Token取得消息的应答,或者,应答处理权限Token取得消息的再次发送委托的处理。
(5)在处理权限Token取得完成之前,从其它服务器取得未确定的事务的日志,使事务日志的状态同步的处理。
(6)在处理权限Token取得消息的接收处理以及其应答消息的接收处理中,在消息内包括提交不明确的事务信息的情况下,参照该信息,在该事务的提交或者回退已经确定了的情况下,返送其结果,在还没有确定的情况下,根据(2)的方法,进行提交确定的处理。
(7)作为事务的提交请求消息的接收处理,判断其消息的发送源以外是否保持着有效的处理权限Token,如果是保持着,则对于提交请求应答拒绝,如果没有保持,则对于提交请求应答承认的提交请求承认处理。
(8)根据事务处理的应答时间的估计值计算发送事务处理请求的客户端的事务的再次发送时间和用「在2F+1台的服务器群中的利用了处理权限Token的排斥控制技术」设定的Token的有效期间,设定到客户端一侧的再次发送·Token有效期间设定处理。
以上作为事务处理方法说明了本发明的解决方法的一个实施形态,而作为其它的实施形态,能够通过具有同样功能的处理装置、处理机构(处理系统)以及控制它们的计算机程序实现。
在本发明中提出了,不等待故障检测,在一定时间内没有应答的情况下,从客户端向备用的服务器中心再次发送处理的系统。即,本发明的事务处理具备把使用了处理权限Token的排斥控制和数据匹配组合起来的事务开始处理、把基于分散合意的能否提交判断和更新数据的复制组合起来的提交处理。根据该处理,能够比现有技术更缩短由应用服务器、DBMS(数据库管理系统)、网络中发生的故障引起的服务停止时间,能够构筑客户端不必识别故障发生,就可以继续服务的系统。
附图说明
图1表示事务处理系统的基本形式。
图2表示事务处理系统的最小结构。
图3表示F=1时的Paxos提交的结构例。
图4表示本发明一个实施形态的系统结构和提案机构的位置的例子。
图5表示本发明一个实施形态的事务处理系统。
图6表示最初和备用的服务器中心的消息的收发处理单元。
图7表示Token请求发送单元61的处理流程。
图8表示Token应答接收单元62的处理流程。
图9表示Token请求处理单元63的处理流程。
图10表示Token请求处理63的处理流程(继续)。
图11表示提交请求发送单元64的处理流程。
图12表示提交请求应答接收单元65的处理流程。
图13表示提交请求处理单元66的处理流程。
(附图标记说明)
1、2、3服务器中心
1a、2a、3a DB
1b、2b、3b DB服务器
1c、2c、3c应用服务器
4、5客户端
8仲裁器
40服务器中心
41应用服务器
42DB服务器
45事务前端机构
46事务后端机构
46b提案机构
50事务处理系统
51事务开始处理机构
51a控制单元
51b事务重复检测单元
51c Token排斥控制单元
51d数据匹配处理单元
52提交处理机构
52b数据复制处理单元
52c提交确定处理单元
52d提交发送单元
53有效期间设定机构
53a控制单元
53b事务再次发送时间设定单元
53c Token有效期间设定单元
53d客户端通信单元
60a最初服务器中心
60b备用服务器中心
61Token请求发送单元
62Token应答接收单元
63Token请求处理单元
64提交请求发送单元
65提交请求应答接收单元
66提交请求处理单元
67a处理权限Token取得请求消息
67b处理权限Token取得请求应答消息
68a提交请求消息
68b提交请求应答消息
70处理权限Token取得请求消息发送处理
80对于处理权限Token取得请求的应答消息接收处理
90处理权限Token取得请求消息接收处理
110提交请求消息发送处理
120对提交请求的应答消息接收处理
130提交请求消息接收处理
具体实施方式
在本发明中,提供同时解决已经叙述过的3个课题,保证必须在一个服务器中心中进行某个事务的提交,进而,保证提交成功的事务始终对于最新的数据进行的事务处理。本发明的基本原理如下。
<课题1的解决技术>
为了防止在多个服务器中心中多重处理某个事务,使用在下述的文献1~3中提出的基于Mutual Exclusion技术的「处理权限Token」。
1)Suzuki,I,Kasami,T,A distributed mutual exclusion algorithm,ACM Transactions on Computer Systems(TOCS),v.3 n.4,p.344-349,Nov.1985.
2)Nishio,S.,Li,K.F.,Manning,E.G.,A resilient mutual exclusion algorithm for computer networks,IEEE Transactions on Parallel and Distributed Systems,v.1 n.3,p.344-355,July 1990.
3)Banerjee,S.;Chrysanthis,P.K.,A new Token passing distributed mutual exclusion algorithm,Proceedings of the 16th International Conference onDistributed Computing Systems,1996.,p.717-724,May 1996.
Mutual Exclusion技术是在多个服务器群(服务器中心)中,使得只有一个服务器能够保持Token的通用化了的技术。在本发明中,使用该技术,在某个时刻具有有效的处理权限Token的服务器中心在2F+1个服务器中心内仅存在1个。在某个服务器中心的提交处理时,在不具有有效处理权限Token的情况下,其服务器中心尝试再次取得处理权限Token,在不能取得的情况下,回退(rollback)事务。在处理权限Token中设定有效期限。如果该有效期限用尽,则其处理权限Token成为无效,其它的服务器中心能够重新取得处理权限Token。在典型的情况下,为了缩短由故障引起的系统的停止时间,将处理权限Token的有效期间设定为1秒左右。但也能延长处理权限Token的有效期间。
<课题2的解决技术>
在本发明中,使用在2F+1台的服务器群内的F台以上的服务器中拷贝数据的(由于自身服务器中心也具有数据,因此在整体上成为过半数、即F+1台以上的服务器中心具有数据)数据复制技术,以及把2F+1台的服务器群内的F+1台以上的服务器群具有的数据作为2F+1台的服务器群中的合意完毕的数据来处理的数据匹配技术。这些技术是已经公知的通用化的技术(文献4、5)。
4)J.Gray and A.Reuter,Transaction Processing Concepts and Techniques,Mogan Kaufmann
5)M.Wiesmann,F.Pedone,A.Schiper,B.Kemme,and G.Alonso Understanding replication in databases and distributed systems.In Proceedings of20th International Conference on Distributed Computing Systems〔ICDCS′2000〕,p.264-274,April 2000.
<课题3的解决技术>
在事务的提交处理中,较出名的有2相提交协议(Two-PhaseCommit Protocol),而其作为Blocking协议也被熟知。所谓Blocking协议是如果进行事务的提交处理的协调器(coordinator)由于故障而停止,则其事务的提交成为未确定,在取得该协调器的决定结果之前不能确定事务的提交处理的协议。从而,在该协议中,不能解决课题3。J.Gray等作为解决该问题的技术提出了在提交处理中应用了L.Lamport等提出的采取2F+1台的服务器群中的合意的Paxos共识协议(文献6)的Paxos提交协议(文献7)。该协议是如果2F+1台的服务器群内的F+1台以上的服务器正常工作,则能够无阻塞地完成提交处理的协议。在本发明中,作为解决课题3的提交处理技术,利用Paxos提交。
6)L.Lamport,Generalized Consensus and Paxos,Microsoft Research Technical Report MSR-TR-2005-33
7)J.Gray and L.Lamport,Consensus on Transaction Commit,MSR-TR-2003-96)
<课题1~3整体的解决>
课题1、2、3分别存在解决的技术。然而,在本发明中,必须同时解决这些全部的3个课题。即使单独利用课题1~3的各个解决技术,也不能同时解决全部的课题1~3。例如,在解决课题1的MutualExclusion中,能够防止同一事务的多重处理,但是不能保证进行了提交的事务处理对于2F+1台服务器群中的最新的数据集合进行。在解决课题2的数据复制技术以及数据匹配技术中,不能防止同一事务的多重处理。在解决课题3的Paxos提交中,既不能解决同一事务的多重处理,也不能保证对于2F+1台的服务器群中的最新的数据集合进行提交处理。从而,为了同时解决全部的课题1~3,需要把解决各个课题的技术适当地融合,重新建立算法。
在本发明的事务处理机构中,在事务的开始时,进行用于防止事务的多重处理的处理权限Token的确认处理。在具有处理权限Token的情况下,事务的开始处理结束。不具有处理权限Token的服务器中心进行处理权限Token取得处理和数据匹配处理这两种处理。
处理权限Token取得处理按照Mutual Exclusion中表示的方法进行。在失败的情况(其它服务器中心已经取得的情况)下,使事务的开始处理失败。在Mutual Exclusion中,对于处理权限Token取得请求,如果可以得到来自F+1个服务器中心的合意,则能取得Token。
从而,2F+1个服务器中心中能够取得处理权限Token的服务器中心必定只是一个。另外,即使最多F个服务器中心(例如服务器中心中的DB服务器)停止,也能够进行处理权限Token取得。提供处理权限Token的单位典型的是应用单位,而严密地讲,是对于这样的数据集合提供,即,作为某个事务的集合所访问的数据集合,该事务集合以外的事务不进行访问,而且该事务集合内的任意的事务对该数据集合以外的数据不进行访问的数据集合。
接着为了对最新的数据进行事务,在处理权限Token取得处理时验证取得权限的服务器中心是否具有最新的数据,在不具有的情况下,进行从其它的服务器中心取得表示数据差分的事务日志的处理。在本发明中,如果能够对于F+1个服务器中心拷贝事务日志,则能够成功提交。从而,在2F+1个服务器中心内的F+1个服务器中心具有的事务日志的集合中必定存在最新的事务日志。这里,通过在事务日志上提供连续号码LSN(日志系列号),能够把握取得了处理权限Token服务器中心不具有的事务日志,能够从服务器中心群搜索和取得。
在事务的提交处理中,进行数据复制处理和提交确定处理。
首先,在数据复制处理中,进行事务日志的拷贝,使得F+1个以上的服务器中心具有事务日志。向生存的所有服务器中心传送事务日志,等待接收来自F个服务器中心的确认消息。
接着,提交的确认处理根据Paxos提交进行。进行提交处理的服务器中心向生存的其它所有服务器中心发送「Prepare」消息。
接收到该消息的各服务器中心在判断为其发送源服务器中心以外具有处理权限Token的情况下,作为「Abort」,没有的情况下作为「Prepared」,把决定结果发送到自己的称为接受器(acceptor)的所有模块中。这里,所谓接受器是仅具有对于某个服务器中心的提交的决定结果的服务器,在每一个服务器中心中准备2F+1个接受器。接收到服务器中心的决定结果的接受器把该结果发送到正在进行提交处理的服务器中心。该服务器中心如果从某个服务器中心的接受器中的F+1个以上的接受器接收到了决定结果,则就作为该服务器中心的决定结果来处理。
图3表示本发明情况下F=1中的Paxos提交的结构例。其中,图3中省略了从接受器向提交处理执行模块的箭头。
这里,位于一个服务器中心中的各模块(31a、31b、32a、33b)以及接收器(31c、31d、31e、32c、32d、32e、33c、33d、33e)既可以配置在相同的服务器装置中,也可以配置在不同的服务器装置中。
这里,分别说明了处理权限Token取得、数据匹配化、数据复制、提交确定,实际上,由于在各个处理中进行消息交换,因此消息数增多而有可能使性能降低。但是,如果考虑到在事务开始处理中,进行处理权限Token取得和数据匹配,在提交处理中进行数据复制和提交确定,这些处理全部以取得来自2F+1个服务器中心之间的F+1个服务器中心的合意的所谓分散合意协议为基础,则可以把用于事务开始处理的处理权限Token取得处理和数据匹配的发送消息和接收消息汇总为一个消息,并且,把提交处理的数据复制和提交确定的发送消息和接收消息也汇总为一个消息,能够防止由消息数增加引起的性能下降。其中,汇总这种消息的动作是通常进行的动作。
该一系列的处理如果只是简单地结合对于课题1~3的技术,则不能起到作用。问题是某个服务器中心开始事务,在其进行提交处理之前用尽处理权限Token的有效期限的情况。这种情况下,其它的服务器中心能够取得处理权限Token。
现在设服务器中心1具有处理权限Token,开始了事务A的提交处理,而在事务A的提交处理结束之前用尽了处理权限Token的有效期限。这种情况下,其它的服务器中心2能够取得处理权限Token,执行新的事务B,能够开始提交处理。这里,如果事务A和B成功提交,则数据的匹配性变紊乱。
由于事务A更新的数据的提交没有确定,因此没有反映到服务器中心2中。从而,事务B对于进行事务A之前的数据集合进行。这里,如果事务B进行提交,紧接在其后事务A的提交结束,则有可能丢失事务B的结果。为了防止这一点,在服务器中心2取得处理权限Token的时刻,需要保证服务器中心1中正在处理的事务是确定的,或者回退在服务器中心1中正在处理的事务。
在本发明中,把对于课题1~3的各个解决技术结合起来,使得保证以上的内容。
在本发明中,客户端等待来自服务器的应答结果的暂停时间和处理权限Token的有效期限的设定是重要的。当客户端向备用的服务器中心再次发送了事务处理请求时,已经用尽了最初(primary)的服务器中心的处理权限Token的有效期限的情形下由于立即进行备用的处理权限Token取得,因此效率良好。反之,在处理权限Token的有效期限与直到客户端再次发送为止的暂停时间相比过长的情况下,备用的服务器中心中的处理权限Token取得不成功,客户端向下一个备用的服务器中心再次发送。这种情况下,在用尽了处理权限Token的有效期限的瞬间,多个服务器中心同时想要取得处理权限Token,成为相互竞争关系,其结果,有可能哪一个服务器中心都不能取得处理权限Token。直到客户端的再次发送为止的暂停时间和处理权限Token的有效期限考虑到这些问题,需要进一步考虑事务的平均处理时间、最大等待时间等来决定。
<就系统结构的提案机构的位置>
图4表示系统整体和本发明提出的机构的一个例子。这里,表示提案机构46b处于服务器中心40中的DB服务器42内的情况。然而,提案机构46b的位置不限于这种情况。
本发明的事务处理机构由应用服务器41内的事务前端机构45(以下,记述为事务Fr机构)和位于DB服务器42内的事务后端机构46(以下,记述为事务Bk机构)构成。
事务Fr机构在每一个事务中存储业务逻辑生成的事务日志,用事务Fr机构的提交处理,向事务Bk机构传送存储的事务日志。这里,调用本发明的提案机构46b,决定提交成功·失败。接着,事务Bk机构如果提交成功,则使用事务日志经由DBMS47更新DB43。接着,向事务Fr机构返送提交结果,应用的提交处理结束。这里,在事务Fr机构与事务Bk机构之间不需要是2相提交。
在事务Bk机构中,当在提案机构46b决定提交成功以后,更新DB43时,在DB服务器42中发生故障,更新失败了的情况下,其服务器中心功能停止,应用的提交处理成为不完全的状态(提交成功·失败不明确),而根据提案机构46b,事务日志向其它的服务器中心传送,在其服务器中心中进行对DB43的更新。从而,客户端只要再次发送事务处理请求即可。这里,该事务日志与数据更新的历史一起,还保持向客户端返送的事务处理结果,当客户端再次发送了事务处理请求时,如果该事务已经提交成功,则需要进行从该事务日志取得处理结果,返送该结果的处理。
另外,在事务日志中包括事务的处理结果的机构、以及来自客户端的事务处理请求再次发送时从事务日志取出并返送事务处理结果的机构由于不是本发明的主题因此省略说明。
以下,研究本发明的替代方法。
<基于故障检测的方法>
当前最主流的方法是进行故障检测,进行移交处理这样的方法。如前面叙述的那样,该方法由于在故障检测中至少需要10秒以上,因此不能从客户端隐蔽故障。
<基于多重处理的方法>
这是在多个服务器中进行相同的处理,按照多数决定对其结果进行比较,把同意数多的结果作为整体结果的方法。该方法在航空机等要求可靠性非常高的系统中使用。然而,如果把该方法导入到事务处理系统中,则如下所述,在性能上将产生很大的问题。
在该方式中,在相互依赖的多个事务处理请求几乎同时到达的情况下,如果没有在所有的服务器中以相同的顺序进行处理,则所有的数据管理机构所具有的数据不相同。例如,设现在有2个事务处理请求A和B。A、B的处理分别是「如果数据X是0则使X成为1,如果是0以外则不进行任何处理」、「如果数据X是1则使X成为10,如果是1以外则不进行任何处理」。这里,考虑在服务器中心1中按照A、B的顺序进行处理,在服务器中心2中按照B、A的顺序进行处理的情况。最初,设在2个服务器中心中数据X是0。在服务器中心1中由于按照A、B的顺序进行处理,因此X的值成为10,而在服务器中心2中由于按照B、A的顺序进行处理,因此X的值成为1。在各个服务器中心中保持不同的结果这一点是不能接受的。
现实中,在相互依赖的事务或完全没有关系的事务相混合,事务处理请求到达的阶段中,并不知道其与其它的哪个事务存在依赖关系。因此,需要在所有的服务器中按照相同的顺序处理所有的事务处理请求。为了实现这一点,在每次事务处理请求到达时,在所有服务器中取得同步,进行顺序确认。进而由于在各服务器中,必须按照在所有服务器中取得同步的顺序进行处理,因此按照其顺序一个一个地处理所有的事务处理。这样做将使事务处理的工作效率急剧下降。
图5表示作为本发明的一个实施形态的事务处理系统(处理机构)的概略。
事务处理系统50是服务器中心内的主要遍及DB服务器、应用服务器的处理机构。事务处理系统50如图所示,在功能上分为事务开始处理机构51、事务提交处理机构52以及有效期间设定机构53。有效期间设定机构53包括对于客户端或者应用服务器进行设定的机构。
首先,事务开始处理机构51包括控制单元51a、事务重复检测单元51b、Token排斥控制单元51c、数据匹配处理单元51d。
事务重复检测单元51b在事务的开始处理中,参照对象事务的ID,确认是否已经正在执行同一ID的事务,或者已经完成提交,如果是正在执行或者已经完成提交,则对于事务开始请求应答回退。
Token排斥控制单元51c在事务的开始处理中进行处理权限Token的排斥控制,在该处理权限Token的排斥控制中,确认自身服务器中心是否保持没有用尽有效期间的处理权限Token(带时间限制的Token),如果没有保持,则进行处理权限Token的取得处理,等待到其取得结束。
数据匹配处理单元51d在进行上述的处理权限Token的取得处理时,与该处理同时或者紧接在其以后,控制自身服务器中心保持在系统内的所有服务器中心之间最新的数据的数据匹配。
其次,事务提交处理机构52包括数据复制处理单元52b、提交确定处理单元52c以及提交发送单元52d。
数据复制处理单元52b进行将对象事务的事务ID、该事务所更新的数据和向该事务的请求源返送的处理结果向所有的服务器中心传送,确认至少对于F+1台服务器的拷贝的处理,管理各数据库的复制处理。
提交确定处理单元52c控制这样的处理,即,在由数据复制处理单元52b对于数据库的拷贝成功了的情况下,向其它所有的服务器发送提交请求消息,如果接收到至少来自F+1台服务器的提交合意,则作为提交成功的处理。
进而,提交发送单元52d向其它所有的服务器中心发送该提交被确定了的情况。
进而,有效期间设定机构53包括控制单元53a、事务再次发送时间设定单元53b、Token有效期间设定单元53c、客户端通信单元53d。事务再次发送时间设定单元53b是在从DB服务器看到的客户端(应用服务器或者客户端终端)中设定事务的再次发送时间(最大等待时间)的机构。例如,在系统构成时,可以向各客户端装置发送存储再次发送时间的设定画面。
Token有效期间设定单元53c是设定在系统内的各服务器中心内使用的处理权限Token的有效时间的机构。即,以所给出的事务再次发送时间为基准,提供设定Token的有效时间的单元。例如,可以在系统结构设定画面中由管理者输入Token有效时间作为参数,进行所输入的参数对于事务再次发送时间是否妥当的检查。关于这些设定时间的参数的例子在后面叙述。
另外,以上的处理机构终究是一个例子,并不限于该结构。
图6表示由图5的事务重复检测单元51b决定了的最初一侧的服务器中心与备用一侧的服务器中心之间的消息的交换。另外,该图表示进行最初服务器中心60a与备用服务器中心60b的消息收发的以下的各处理单元。
最初服务器中心60a具备向备用服务器中心60b发送处理权限Token取得请求消息67a的Token请求发送单元61、接收对于Token取得请求的处理权限Token取得请求应答消息67b的Token应答接收单元、发送提交请求消息68a的提交请求发送单元64以及接收提交请求应答消息68b的提交请求应答接收单元65。
另外,备用服务器中心60b具备从最初服务器中心接收Token请求消息,发送对于该请求的应答的Token请求处理单元63、接收提交请求消息的提交请求处理单元66。
用后述的流程图说明上述各消息的发送单元、接收单元的细节。
本发明的一个实施形态如用图5中说明过的那样,如果从实际安装的观点来看,由事务开始处理机构、提交控制机构、再次发送Token有效期间设定机构(有效期间设定机构)这3个构成。
[1.事务开始处理机构]
该机构的中心是处理权限Token的管理机构。
处理权限Token基本上是这样一种机构,即,保证在某个时刻具有该处理权限Token的服务器中心是一个,而且,保证即使在服务器中心中发生故障,在系统整体中也不会漏掉事务的提交的结果而移交给其余的服务器中心。
在各服务器中心中,存在一个正在工作的处理权限Token管理机构。在该机构停止的情况下,视为服务器中心的停止。提供处理权限Token的单位对于这样的数据集合进行提供,即,作为某个事务的集合访问的数据集合,该事务集合以外的事务不会进行访问而且该事务集合内的任意的事务不会访问该数据集合以外的数据那样的数据集合。典型地考虑应用单位。
在本发明中,在处理权限Token管理中使用依据多数决定的保持者决定方式。由此,即使一个服务器中心因故障而停止,也知道当前哪个服务器中心保持处理权限Token。
另外,在处理权限Token中设置有效期间。由此,即使当前正在保持处理权限Token的服务器中心因故障而停止,但如果经过某时间,其它的服务器中心能够取得处理权限Token,其它的服务器中心能够执行事务处理。
另外,在处理权限Token中设置作为连续号码(通番)的TSN(Token系列号)。
另外,如事务日志中已经叙述的那样,提供LSN(日志系列号),当取得处理权限Token时,保持了前一次处理权限Token的服务器中心能够取得最终提交的事务日志。由此,能够不丢失提交完毕的事务日志而继续执行。
以下表示取得处理权限Token的处理。
<处理权限Token取得请求消息发送处理70>
本处理由图6的Token请求发送单元61进行。以下,参照图7的流程图详细说明。
1)在有其它的服务器中心保持着处理权限Token这样的记录的情况下(步骤S71:“是”),等待到该处理权限Token的有效期间用尽为止(步骤S72)。
2)记录当前时刻,
3)决定处理权限Token的有效期间(步骤S73)。
4)从当前记录在自身服务器中心中的最新的处理权限Token,取得其TSN,根据下述的方法决定TSN,作为新的处理权限Token的TSN提供。
(a)如果判断为自身服务器中心直到紧接之前为止保持了处理权限Token,则把其处理权限Token的TSN作为新的TSN(步骤S75)。
(b)否则的情况下,把在直到紧接之前为止的处理权限Token的TSN上加1的值作为新的处理权限Token的TSN(步骤S76)。
5)在自身服务器中心中,确定是提交还是回退,进而,在事务日志的LSN中没有遗漏地连续的事务日志的集合内提供事务日志的LSN的最大值和处理权限Token的有效期间,向自身以外的所有服务器中心发送处理权限Token取得请求(步骤S77)。
<对于处理权限Token取得请求消息的应答消息接收处理80>
本处理由图6的Token应答接收单元62进行。以下,参照图8的流程图详细说明。
1)当对于接收到的处理权限Token取得请求的应答消息内的事务日志的LSN与在自身服务器中心中在事务日志的LSN中没有遗漏地连续的事务日志的集合内的事务日志的LSN的最大值相比更大的情况下(步骤S81:“是”),从处理权限Token取得请求的应答消息,取出差分的事务日志,反映数据(步骤S82)。
2)如果从一个以上的服务器中心接收到处理权限Token取得许可(步骤S83:“是”),则作为处理权限Token取得成功,把在步骤S73中记录了的时刻上加上处理权限Token的有效期间的时刻作为处理权限Token的有效期限进行记录(步骤S84)。进而,取得应答消息内的处理权限Token的TSN,把其值和在步骤S75、S76中提供的值中的大的值作为处理权限Token的TSN记录后结束(步骤S85)。
3)在接收到来自2个服务器中心的处理权限Token取得拒绝的情况下(步骤S86:“是”),作为处理权限Token取得失败而结束。
4)在接收到再次发送委托,并且还没有能够取得处理权限Token的情况下(步骤S87:“否”),判断是否应该再次发送,如果应该再次发送(步骤S89:“是”),则等待一定时间,从步骤S71开始执行(仅在接收到再次发送委托的情况下到达该步骤)。
5)在即使经过某一定时间也不能决定处理权限取得的成功·失败的情况下(步骤S88:“否”),作为处理权限Token取得失败,判断是否应该再次发送,如果应该再次发送(步骤S89:“是”),则经过一定时间以后,从步骤S71起再次执行。
以下,表示对于处理权限Token取得请求的接收处理的算法。
<处理权限Token取得请求消息接收处理90>
本处理由图6的Token请求处理单元63进行。以下,参照图9、图10的流程图详细说明。
1)如果自身服务器中心正在进行处理权限Token取得处理(步骤S91:“是”),则返送再次发送委托后结束(步骤S92)。
2)把处理权限Token取得请求的消息内的事务日志的LSN与自身服务器中心保持的事务日志的LSN中没有遗漏而连续的LSN的集合的最大值进行比较,进行以下的处理。
(a)在自身服务器中心的事务日志的LSN大的情况下(步骤S93:“是”),把发送源的服务器中心不具有的事务日志加入到应答消息中(步骤S94)。
(b)在自身服务器中心具有当前正在提交处理的事务,其事务日志的LSN比接收到的事务日志的LSN小的情况下(步骤S95:“是”),将该事务设为提交结束(步骤S96)。
3)在自身服务器中心具有有效期限内的处理权限Token的情况下(步骤S97:“是”),把处理权限Token取得拒绝加入到应答消息中,返送后结束(步骤S98)。
4)在自身服务器中心具有发送源服务器中心以外的服务器中心具有有效期限内的处理权限Token这样的记录的情况下(步骤S99:“是”),把处理权限Token取得拒绝加入到应答消息中返送后结束(步骤S100)
5)在自身服务器中心具有正在提交处理的事务的情况下(步骤S101:“是”),把再次发送委托加入到应答消息中,返送后结束(步骤S102)。
6)把在当前时刻上加上提供到处理权限Token取得请求的有效期间的时刻作为处理权限Token的有效期限进行记录,进而根据下述的方法,决定新的处理权限Token的TSN,记录其值(步骤S103)。
(a)在接收到的处理权限Token取得消息内的TSN比在自身服务器中心中记录的最新的处理权限Token的TSN大的情况下(步骤S104:“是”),把接收到的处理权限Token取得消息内的TSN作为新的处理权限Token的TSN(步骤S105)。
(b)在接收到的处理权限Token取得消息内的TSN与在自身服务器中心中记录的最新的处理权限Token的TSN相同,发送源的服务器中心与在自身服务器中心中记录的保持最新的处理权限Token的服务器中心相同的情况下(步骤S107:“是”),把在自身服务器中心中记录的最新的处理权限Token的TSN的值作为新的处理权限Token的TSN(步骤S108)。
(c)在不属于上述2种情况时,把在自身服务器中心的处理权限Token的TSN上加1的值作为新的处理权限Token的TSN(步骤S109)。
7)把“处理权限Token取得明白”和在步骤S103~S109中决定了的处理权限Token的TSN加入到应答消息中,返送后结束(步骤S110)。
由于在处理权限Token中存在有效期间,因此如果经过该期间,则当前的处理权限Token成为时间用尽,即使保持该处理权限Token的服务器中心变为功能不全,下一个服务器中心也能获得处理权限Token。
这里,重要的一点在于在发送源服务器中心中,把处理权限Token的有效期限取为在请求发送前的时刻上加上了处理权限Token的有效期间得到的值,而且,在接收了请求一侧的服务器中心中,取为在该请求的接收时刻上加上了处理权限Token的有效期间得到的值。由此,在接收一侧,保证在处理权限Token成为期限用尽的时刻,已经用尽当前的处理权限Token的有效期限。即,即使不确认保持当前处理权限Token的服务器中心生存这一点,其它的服务器中心也能确认处理权限Token的有效期限用尽,能够对取得下一个处理权限Token或者取得请求发出许可。
[2.提交控制机构]
在提交处理中,向其它2个服务器中心发送事务日志,如果从一个以上的服务器中心接收到“明白”则作为提交成功。由于假定服务器中心是3个,因此如果发送了事务日志的服务器中心和其它另一个服务器中心进行“提交明白”,则可以得到过半数的“提交明白”,从而能够以来自一个以上的服务器中心的“提交明白”,作为系统整体可明白提交。
以下表示提交处理。这里,设在事务上提供了在系统内成为唯一的事务ID。另外,在下述的算法中没有包括对客户端的返送处理,但在提交处理结束以后,对客户端应答事务的处理结果。这时,即使开始了提交处理的事务进行回退,当已经存在具有同一事务ID的事务日志时,从该事务日志取得处理结果返送给客户端。
<提交请求消息发送处理110>
本处理由图6的提交请求发送单元64进行。以下,参照图11的流程图详细说明。
1)如果已经在自身服务器中心中对于同一个事务完成了提交处理(步骤S111:“是”),则应答回退后结束(步骤S112)。
2)如果已经从其它服务器中心接收到具有同一个事务ID的确定了提交的事务日志(步骤S113:“是”),或者对于同一个事务,在自身服务器中心中应答了“提交明白”(步骤S114:“是”),则应答回退后结束(步骤S112)。
3)如果不具有有效的处理权限Token(步骤S115:“否”),则应答回退后结束(步骤S112)。
4)在没有再次发送事务日志的情况下(步骤S116:“否”),与事务ID、事务日志的LSN一起把事务日志加入到发送消息中(步骤S117)。
5)如果处理权限Token的有效期限小于等于一定时间(步骤S118:“是”),则进行下述的处理(步骤S119)。
(a)记录当前时刻。
(b)决定有效期间。
(c)包括有效期间和处理权限Token的TSN在内,把处理权限Token继续请求加入到发送消息中。
6)把发送消息向其它的服务器中心发送(步骤S119a)。
<对提交请求的应答消息接收处理120>
本处理由图6的提交请求应答接收单元65进行。以下,参照图12的流程图详细说明。
1)如果在返送消息中包括“继续明白”(步骤S121:“是”),则把在上述步骤S119中记录的时刻上加上了处理权限Token的有效期限得到的时刻作为有效期限进行记录(步骤S122)。
2)如果从一个以上的服务器中心接收到“提交明白”的应答(步骤123:“是”),则作为提交成功,记录其事务日志和其LSN后结束(步骤S124)。
3)如果从一个以上的服务器中心接收到提交拒绝的应答(步骤S125:“是”),则作为回退,把其事务日志的LSN作为回退进行记录后结束(步骤S128)。
4)在即使等待某一定期间也没能接收到来自某个服务器中心的应答的情况下(步骤S126:“否”),则判断是否应该再次发送,如果是应该再次发送(步骤S127:“是”),则在经过一定时间以后,从步骤S111起再次执行。否则的情况下,作为回退,把其事务日志的LSN作为回退进行记录后结束(步骤S128)。
以下表示在接收到提交处理请求的服务器中心中的处理。
<提交请求消息接收处理130>
本处理由图6的提交请求处理单元66进行。以下参照图13的流程图详细说明。
1)如果在自身服务器中心中已经进行具有同一个事务ID的事务的提交处理(步骤S131:“是”),则返送提交拒绝并结束(步骤S132)。
2)如果从其它的服务器中心已经接收具有同一个事务ID的事务日志,并且对于该日志应答了“提交明白”(步骤S133:“是”),则返送提交拒绝并结束(步骤S132)。
3)如果自身服务器中心正在进行处理权限Token取得处理(步骤S134:“是”),则返送再次发送委托后结束(步骤S135)。
4)在接收到的消息内的处理权限Token的TSN比自身服务器中心中记录的处理权限Token的TSN小的情况下(步骤S136:“是”),把在自身服务器中心的记录中的当前的处理权限Token保持服务器中心和其TSN包含在应答消息中,将提交拒绝返送后结束(步骤S137)。
5)在所接收到的消息内的处理权限Token的TSN比自身服务器中心中记录的当前的处理权限Token的TSN大的情况下(步骤S138:“是”),把在当前时刻上加上了处于接收到的消息内的处理权限Token的有效期间的时刻作为有效期限,把处理权限Token保持服务器中心作为消息的发送源服务器中心来进行记录(步骤S139)。
6)如果其它的服务器中心没有保持处理权限Token(步骤S140:“是”),则进行以下的处理。
(a)把在当前时刻上加上了提供给处理权限Token继续请求的有效期间的时刻记录为处理权限Token的有效期限(步骤S141)。
(b)把“继续明白”包含在返送消息中(步骤S142)。
7)把接收到的事务ID及其事务日志作为“提交明白”来记录,返送“提交明白”(步骤S143,S144)。
[3.再次发送Token有效期间设定机构]
在本发明中,从客户端来看,即使一个服务器中心发生了故障,在不知道该故障的程度的时间内必须应答事务处理的结果。这里,所谓「从客户端来看,不知道服务器中心的故障的程度的时间」是按照应用的规格确定的正常时的最大应答时间。例如,是3秒左右的时间。为了保证这一点,需要适当地设定事务处理的暂停时间、处理权限Token的有效期间和客户端的直到再次发送为止的等待时间。以下表示其一个例子。
现在,如果设客户端的事务处理的最大等待时间为T,处理权限Token的有效期间为Tto,事务处理的暂停时间为Ttx,客户端的直到再次发送为止的等待时间为Tcw,则下面的式子成立。
T≥max(Tcw,Tto)+Ttx                 (式1)
Tcw>Ttx                             (式2)
Tto>Ttx                             (式3)
进而,当由客户端进行再次发送,向不是最初的服务器中心传送时,为了用尽最初的处理权限Token的有效期限,使得接受了再次发送请求的服务器中心能够获得处理权限Token,添加下述的公式。
Tcw>Tto                             (式4)
只要确定Ttx、Tcw,Tto,使得满足该(式1)、(式2)、(式3)、(式4)即可。其中,(式4)不是必须的。
例如,如果设T为3000msec,则能够把Ttx设定为1400msec,把Tto设定为1500msec,把Tcw设定为1600msec。
有效期间设定机构既可以使管理者经由专用画面输入这样的时间值,也可以以所提供的T为基准计算并显示满足上述式子的值,进而由管理者进行调整。所决定的时间值在各个服务器中心中发送并共用。
以上,使用实施形态以及实施例说明了本发明,但是本发明的技术范围并不限于上述实施形态中记载的范围。能够在上述实施形态上添加多种变更或者改良。另外,从权利要求范围的记载明确了添加了这种变更或者改良的形态也包含在本发明的技术范围内。
作为本发明的一个实施形态所说明的事务处理方法能够由计算机上的系统或者使其计算机执行其功能的程序来实现。另外,保存上述程序的计算机可读取的记录介质能够是电子的、磁的、光学的、电磁的、红外线或半导体系统(或者,装置或设备)或者传输介质。在计算机可读取的记录介质的例子中,包括半导体或者固态存储装置、磁带,在可装卸的计算机可读取的介质的例子中,包括半导体或者固态存储装置、磁带、可装卸的计算机软盘、随机访问存储器(RAM)、只读存储器(ROM)、硬磁盘以及光盘。在当前的光盘的例子包括密致盘-只读存储器(CD-ROM)、密致盘-读/写(CD-R/W)以及DVD。

Claims (12)

1.一种事务处理方法,是在由连接到网络上的多个客户端和多个服务器中心构成的计算机系统中的事务处理方法,其特征在于,
上述服务器中心至少由一个数据库、管理该数据库的DB服务器、以及与上述DB服务器和上述客户端交互通信的一个以上的应用服务器构成,
上述事务处理方法包括:
根据从上述客户端经由上述应用服务器的事务开始请求,参照该事务的ID,判断同一ID的事务是否已经正在执行或已经完成提交,如果上述同一ID的事务正在执行或者已经完成提交,则对于该事务开始请求应答回退的步骤;
确认自身服务器中心是否保持着有效的处理权限Token,如果没有保持上述处理权限Token,则向上述自身服务器中心以外的其它所有的服务器中心发行上述处理权限Token的取得请求,等待从过半数的服务器中心完成该取得请求的步骤;
在取得上述处理权限Token时,上述自身服务器中心在上述其它所有的服务器中心之间进行数据匹配的步骤;
向所有的上述服务器中心传送对象事务的上述事务ID、该事务更新的数据、向该事务的请求源返送的处理结果,确认至少在过半数的服务器中心中的上述数据库中拷贝了上述数据的步骤;
在上述进行确认的步骤中确认成功了的情况下,向上述其它所有的服务器中心发送提交请求的消息,在接收到来自过半数的服务器中心的提交合意的情况下,判断为上述提交请求成功的步骤;
向上述其它所有的服务器中心发送上述进行判断的步骤所确定的提交的结果的步骤;
对上述提交请求的消息,判断该提交请求的消息的发送源以外是否保持着有效的上述处理权限Token,如果是保持着则对提交请求应答拒绝,如果没有保持则应答承认的步骤。
2.根据权利要求1所述的事务处理方法,其特征在于,还包括:
在上述处理权限Token的取得处理中接收到上述提交请求的情况下,直到上述处理权限Token的取得处理完成为止,不进行对该提交请求的回信,或者进行上述提交请求的消息的再次发送委托的步骤。
3.根据权利要求1所述的事务处理方法,其特征在于,还包括:
在向上述其它所有的服务器中心发送上述提交请求的消息、接收其应答而确定提交之前的期间中,当接收到上述处理权限Token的取得消息时,直到该提交确定为止,不进行对上述处理权限Token的取得消息的回信,或者进行上述处理权限Token的取得消息的再次发送委托的步骤。
4.根据权利要求1所述事务处理方法,其特征在于,还包括:
在上述处理权限Token的取得完成之前,从其它的上述服务器中心接收未确定的事务日志,使上述未确定的事务日志的状态同步的步骤。
5.根据权利要求1所述的事务处理方法,其特征在于,还包括:
在接收上述处理权限Token的取得请求消息以及接收该处理权限Token的取得请求应答消息时,在上述消息中包括提交不明确的事务信息的情况下,参照上述事务信息,在该事务的提交或者回退已经确定的情况下,返送其结果的步骤。
6.根据权利要求1所述的事务处理方法,其特征在于,还包括:
把发送上述事务开始请求的客户端的事务再次发送时间和上述处理权限Token的有效期间设定在上述客户端中的步骤。
7.根据权利要求1所述的事务处理方法,其特征在于,
上述处理权限Token是包括了有效期限的带时间限制的Token。
8.一种事务处理系统,该事务处理系统由连接到网络上的多个客户端和多个服务器中心构成,其特征在于,
上述服务器中心至少由一个数据库、管理该数据库的DB服务器、以及与上述DB服务器交互通信的一个以上的应用服务器构成,
上述事务处理系统具备:
事务重复检测单元,根据从上述客户端经由上述应用服务器的事务开始请求,参照该事务的ID,判断同一ID的事务是否已经正在执行或已经完成提交,如果上述同一ID的事务正在执行或者已经完成提交,则对该事务开始请求应答回退;
Token排斥控制单元,确认自身服务器中心是否保持着有效的处理权限Token,如果没有保持上述处理权限Token,则向上述自身服务器中心以外的其它所有的服务器中心发行上述处理权限Token的取得请求,等待从过半数的服务器中心完成该取得请求;
数据匹配处理单元,在取得上述处理权限Token时,上述自身服务器中心在所有的上述服务器中心之间进行数据匹配,进而,上述事务处理系统在上述事务的提交处理中,具备:
数据复制处理单元,向上述其它所有的服务器中心传送对象事务的上述事务ID、该事务更新的数据、向该事务的请求源返送的处理结果,确认至少在过半数的服务器中心中的上述数据库中拷贝了上述数据;
提交确定处理单元,在由上述数据复制处理单元进行的确认成功了的情况下,向上述其它所有的服务器中心发送提交请求的消息,在接收到来自过半数的服务器中心的提交合意的情况下,判断为上述提交请求成功;
提交发送单元,向上述其它所有的服务器中心发送上述提交确定处理单元所确定的提交的结果,
上述事务处理系统对上述提交请求的消息,判断该提交请求的消息的发送源以外是否保持着有效的上述处理权限Token,如果是保持着则对提交请求应答拒绝,如果没有保持则应答承认。
9.根据权利要求8所述的事务处理系统,其特征在于,还具备:
把发送上述事务开始请求的客户端的事务再次发送时间和上述处理权限Token的有效期间设定在客户端中的有效期间设定机构。
10.一种事务处理装置,是在由连接到网络上的多个客户端和多个服务器中心构成的计算机系统中的事务处理装置,其特征在于,
上述服务器中心至少由一个数据库、管理该数据库的DB服务器、以及一个以上的应用服务器构成,
上述事务处理装置包含在上述DB服务器中,并具备:
Token请求发送单元,根据来自上述客户端的经由上述应用服务器的事务开始请求,为了使上述自身服务器中心得到访问上述数据库的权限,发送处理权限Token取得请求消息;
Token应答接收单元,接收针对上述处理权限Token取得请求消息的应答消息;
提交请求发送单元,发送提交请求消息;
提交应答接收单元,接收对上述提交请求消息的应答消息,
其中,上述Token请求发送单元在上述自身服务器中心没有保持处理权限Token的情况下,向上述自身服务器中心以外的其它所有的服务器中心发送处理权限Token取得请求消息,
上述Token应答接收单元根据从针对上述处理权限Token取得请求消息的过半数的服务器中心接收到应答,判断处理权限Token的取得成功、取得失败,
上述提交请求发送单元在上述处理权限Token的取得成功了的情况下,向上述其它所有的服务器中心发送包括事务日志的提交请求消息,
上述提交应答接收单元在从过半数的服务器中心接收到“明白”消息的情况下,判断为提交成功,
上述事务处理装置对上述提交请求的消息,判断该提交请求的消息的发送源以外是否保持着有效的上述处理权限Token,如果是保持着则对提交请求应答拒绝,如果没有保持则应答承认。
11.根据权利要求10所述的事务处理装置,其特征在于,
上述处理权限Token是包括了有效期限的带时间限制的Token。
12.根据权利要求10所述的事务处理装置,其特征在于,还具备:
把发送上述事务开始请求的客户端的事务再次发送时间和上述处理权限Token的有效期间设定在上述客户端中的有效期间设定机构。
CN2006800447663A 2005-11-30 2006-11-30 不间断事务处理系统 Active CN101317163B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP345572/2005 2005-11-30
JP2005345572 2005-11-30
PCT/JP2006/323946 WO2007063944A1 (ja) 2005-11-30 2006-11-30 無停止トランザクション処理システム

Publications (2)

Publication Number Publication Date
CN101317163A CN101317163A (zh) 2008-12-03
CN101317163B true CN101317163B (zh) 2011-02-09

Family

ID=38088751

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800447663A Active CN101317163B (zh) 2005-11-30 2006-11-30 不间断事务处理系统

Country Status (7)

Country Link
US (3) US7478114B2 (zh)
EP (1) EP1959347A4 (zh)
JP (1) JP4871296B2 (zh)
CN (1) CN101317163B (zh)
CA (1) CA2657676C (zh)
TW (1) TWI416901B (zh)
WO (1) WO2007063944A1 (zh)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8041985B2 (en) * 2006-08-11 2011-10-18 Chicago Mercantile Exchange, Inc. Match server for a financial exchange having fault tolerant operation
US8806601B2 (en) * 2008-02-29 2014-08-12 International Business Machines Corporation Non-interactive entity application proxy method and system
US8930550B2 (en) * 2008-03-11 2015-01-06 International Business Machines Corporation Selectable non-interactive entity application proxy method and system
US7792897B2 (en) * 2008-06-02 2010-09-07 International Business Machines Corporation Distributed transaction processing system
WO2010106579A1 (en) * 2009-03-19 2010-09-23 Hitachi, Ltd. Storage system and method for controlling storage system
CN101925135B (zh) * 2009-06-09 2013-01-23 上海摩波彼克半导体有限公司 第三代移动通信终端rrc层对信令消息事务标识管理的方法
JP5416490B2 (ja) * 2009-06-17 2014-02-12 日本電信電話株式会社 分散データ管理システム、データ管理装置、データ管理方法、およびプログラム
US8938533B1 (en) * 2009-09-10 2015-01-20 AppDynamics Inc. Automatic capture of diagnostic data based on transaction behavior learning
US9167028B1 (en) * 2009-09-10 2015-10-20 AppDynamics, Inc. Monitoring distributed web application transactions
JP5123961B2 (ja) * 2010-02-04 2013-01-23 株式会社トライテック 分散コンピューティングシステム、分散コンピューティング方法及び分散コンピューティング用プログラム
CN101860453A (zh) * 2010-06-10 2010-10-13 华为技术有限公司 事件通知的方法、装置和网络系统
JP2012208578A (ja) * 2011-03-29 2012-10-25 Shimadzu Corp 分析装置制御システム
CN103384882A (zh) * 2011-05-30 2013-11-06 惠普发展公司,有限责任合伙企业 在服务器的共享组中管理使用权的方法
US8806043B1 (en) * 2011-06-24 2014-08-12 Juniper Networks, Inc. Server selection during retransmit of a request
CN102349266B (zh) * 2011-08-12 2013-11-06 华为技术有限公司 通信系统中节点设备上配置的服务故障的处理方法及装置
US9311598B1 (en) 2012-02-02 2016-04-12 AppDynamics, Inc. Automatic capture of detailed analysis information for web application outliers with very low overhead
US9712380B2 (en) 2013-08-30 2017-07-18 Shimadzu Corporation Analytical device control system
US9686276B2 (en) 2013-12-30 2017-06-20 AdMobius, Inc. Cookieless management translation and resolving of multiple device identities for multiple networks
US9742692B2 (en) * 2014-06-23 2017-08-22 Microsoft Technology Licensing, Llc Acquiring resource lease using multiple lease servers
US10489340B2 (en) 2014-10-30 2019-11-26 Hitachi, Ltd. Distributed computing system and distributed processing method
US9979734B2 (en) * 2015-04-20 2018-05-22 Oath Inc. Management of transactions in a distributed transaction system
JP6556851B2 (ja) * 2015-09-08 2019-08-07 株式会社東芝 データベースシステム、サーバ装置、プログラムおよび情報処理方法
CN106933547B (zh) * 2015-12-29 2020-12-01 阿里巴巴集团控股有限公司 全局信息获取及处理的方法、装置和更新系统
TWI735518B (zh) * 2017-01-24 2021-08-11 香港商阿里巴巴集團服務有限公司 資料庫的服務提供方法和系統
US11392438B2 (en) * 2017-02-09 2022-07-19 Arm Limited Responding to unresponsive processing circuitry
JP6754115B2 (ja) * 2017-03-08 2020-09-09 日本電気株式会社 選択装置、装置選択方法、プログラム
JP6399127B2 (ja) * 2017-03-08 2018-10-03 日本電気株式会社 システム管理装置、システム管理方法、プログラム、情報処理システム
CN111327703B (zh) 2017-03-28 2022-05-31 创新先进技术有限公司 一种基于区块链的共识方法及装置
JP6901677B2 (ja) 2017-04-17 2021-07-14 富士通株式会社 管理プログラム、管理装置および管理方法
CN106973065A (zh) * 2017-04-28 2017-07-21 武汉票据交易中心有限公司 一种服务器事件处理系统及方法
CN108279762A (zh) * 2018-01-22 2018-07-13 北京计算机技术及应用研究所 基于硬件保护的事务处理方法
WO2019202888A1 (ja) * 2018-04-19 2019-10-24 村田機械株式会社 排他制御システム及び排他制御方法
JP7036665B2 (ja) * 2018-05-22 2022-03-15 株式会社日立製作所 データ管理方法およびデータ管理システム
CN109325196A (zh) * 2018-07-27 2019-02-12 四川长虹电器股份有限公司 基于redis防止接口重复请求的方法
WO2020051150A1 (en) * 2018-09-04 2020-03-12 Visa International Service Association Identity authentication system and methods
CN113590314A (zh) * 2021-07-13 2021-11-02 上海一谈网络科技有限公司 网络请求数据处理方法和系统
US11768741B2 (en) * 2021-07-30 2023-09-26 International Business Machines Corporation Replicating changes written by a transactional virtual storage access method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1323417A (zh) * 1998-10-19 2001-11-21 国际商业机器公司 事务处理系统中的失败指示
EP1571801A2 (en) * 2004-02-25 2005-09-07 Microsoft Corporation Mutual exclusion techniques in a dynamic peer-to-peer environment

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2540279C2 (de) 1975-09-10 1987-02-05 Basf Ag, 6700 Ludwigshafen Verfahren zum Herstellen eines Katalysators für die Polymerisation von Olefinen
US5319773A (en) * 1990-05-16 1994-06-07 International Business Machines Corporation Asynchronous resynchronization of a commit procedure
GB2335516A (en) * 1998-03-18 1999-09-22 Ibm Failure recovery in distributed transaction avoids heuristic damage
US6694429B1 (en) * 1998-08-04 2004-02-17 At&T Corp. Method for establishing call state information without maintaining state information at gate controllers
US6275832B1 (en) * 1998-09-21 2001-08-14 International Business Machines Corporation Providing transaction undo without logging
US6363401B2 (en) * 1998-10-05 2002-03-26 Ncr Corporation Enhanced two-phase commit protocol
US6691165B1 (en) * 1998-11-10 2004-02-10 Rainfinity, Inc. Distributed server cluster for controlling network traffic
US6289382B1 (en) * 1999-08-31 2001-09-11 Andersen Consulting, Llp System, method and article of manufacture for a globally addressable interface in a communication services patterns environment
US6785713B1 (en) * 2000-05-08 2004-08-31 Citrix Systems, Inc. Method and apparatus for communicating among a network of servers utilizing a transport mechanism
US7743259B2 (en) * 2000-08-28 2010-06-22 Contentguard Holdings, Inc. System and method for digital rights management using a standard rendering engine
US8041815B2 (en) * 2001-09-21 2011-10-18 Microsoft Corporation Systems and methods for managing network connectivity for mobile users
US6934742B2 (en) * 2002-03-07 2005-08-23 International Business Machines Corporation Efficiently handling client requests in a server farm
US7657779B2 (en) 2002-09-18 2010-02-02 International Business Machines Corporation Client assisted autonomic computing
US7383264B2 (en) * 2003-03-27 2008-06-03 Hitachi, Ltd. Data control method for duplicating data between computer systems
JP4289056B2 (ja) * 2003-03-27 2009-07-01 株式会社日立製作所 計算機システム間のデータ二重化制御方法
US7496574B2 (en) * 2003-05-01 2009-02-24 International Business Machines Corporation Managing locks and transactions
EP1638786B1 (fr) 2003-06-16 2009-12-09 Société de Technologie Michelin Bande de roulement comportant une nervure sacrifiee ventilee
JP2005027618A (ja) 2003-07-11 2005-02-03 Shinko Engineering Co Ltd 火炎による病害虫防除装置兼雑草種子の殺種装置
GB2409544A (en) * 2003-12-24 2005-06-29 Ibm Involving participants in a distributed transaction
US7711825B2 (en) * 2003-12-30 2010-05-04 Microsoft Corporation Simplified Paxos
US7246256B2 (en) * 2004-01-20 2007-07-17 International Business Machines Corporation Managing failover of J2EE compliant middleware in a high availability system
JP4707477B2 (ja) * 2005-06-23 2011-06-22 富士通株式会社 ファイル共有プログラムおよびファイル共有装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1323417A (zh) * 1998-10-19 2001-11-21 国际商业机器公司 事务处理系统中的失败指示
EP1571801A2 (en) * 2004-02-25 2005-09-07 Microsoft Corporation Mutual exclusion techniques in a dynamic peer-to-peer environment

Also Published As

Publication number Publication date
CA2657676A1 (en) 2007-06-07
US8166007B2 (en) 2012-04-24
JPWO2007063944A1 (ja) 2009-05-07
US20090157757A1 (en) 2009-06-18
WO2007063944A1 (ja) 2007-06-07
US8935224B2 (en) 2015-01-13
US20070124342A1 (en) 2007-05-31
US7478114B2 (en) 2009-01-13
CA2657676C (en) 2016-07-19
CN101317163A (zh) 2008-12-03
US20120191681A1 (en) 2012-07-26
TW200740147A (en) 2007-10-16
EP1959347A1 (en) 2008-08-20
TWI416901B (zh) 2013-11-21
EP1959347A4 (en) 2010-01-20
JP4871296B2 (ja) 2012-02-08

Similar Documents

Publication Publication Date Title
CN101317163B (zh) 不间断事务处理系统
US8719227B1 (en) Dynamic membership management in a distributed system
US7188273B2 (en) System and method for failover
US6889253B2 (en) Cluster resource action in clustered computer system incorporation prepare operation
US6907543B2 (en) Data storage system
US5941999A (en) Method and system for achieving high availability in networked computer systems
US6823355B1 (en) Synchronous replication of transactions in a distributed system
US20040254984A1 (en) System and method for coordinating cluster serviceability updates over distributed consensus within a distributed data system cluster
CN100359508C (zh) 用于处理集群计算机系统的合并协议的方法和装置
GB2367667A (en) Serialising replicated transactions of a distributed computing environment
US6873987B1 (en) Method, system and program products for recovering from failures within a shared nothing distributed computing environment
US20100145911A1 (en) Serverless Replication of Databases
CN112328421A (zh) 一种系统故障处理方法、装置、计算机设备和存储介质
CN112000444A (zh) 数据库事务处理方法、装置、存储介质和电子设备
US7051065B2 (en) Method and system for performing fault-tolerant online validation of service requests
KR20020075062A (ko) 데이터베이스 이중화 방법
JP2002202906A (ja) データベース二重化システムおよび方法
CN112118118B (zh) 基于反熵算法的指令通知消息广播方法及装置
CN115048337B (zh) 基于tee的拜占庭容错共识方法及相关设备
Toader et al. Modelling a reliable distributed system based on the management of replication processes
Bhalla et al. Implementing message oriented transaction processing for distributed database management systems
JP2003242014A (ja) データベースシステム及びデュプリケート方法

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