请求的处理方法和装置、电子设备和存储介质转让专利
申请号 : CN202110619528.7
文献号 : CN113254483B
文献日 : 2021-11-09
发明人 : 邱海港
申请人 : 北京金山云网络技术有限公司
摘要 :
权利要求 :
1.一种请求的处理方法,其特征在于,包括:接收第一协调节点发送的第一读请求,其中,所述第一读请求用于请求读取第一数据节点上满足目标查询条件的业务数据;
响应所述第一读请求,按照所述目标查询条件进行业务数据查询,得到第一业务数据,其中,所述第一业务数据为与目标事务标识所标识的目标全局事务所对应的业务数据;
使用所述目标事务标识查询第一事务表中的至少一个数据元素;
在所述第一业务数据处于可见性待定状态的情况下,将目标事务信息发送给第一协调节点,以由所述第一协调节点根据所述目标事务信息和第二事务表确定所述第一业务数据的可见性,其中,所述目标事务信息包含所述目标事务标识,所述第二事务表为处理所述目标全局事务的第二协调节点的全局事务表;
确定与目标节点标识所标识的所述第二协调节点所对应的所述第二事务表;在所述第二事务表中查找到与所述目标事务标识对应的第二数据元素;在所述第二数据元素所记录的所述目标全局事务在对应的各个数据节点上的预提交状态为全部完成预提交的情况下,确定所述第一业务数据可见;在所述第二数据元素所记录的所述目标全局事务在对应的各个数据节点上的预提交状态为未全部完成预提交的情况下,确定所述第一业务数据不可见,其中,所述目标事务信息还包括用于标识所述第二协调节点的所述目标节点标识;
在根据所述目标事务标识和第一事务表确定出所述第一业务数据可见的情况下,向所述第一协调节点发送所述第一业务数据,其中,所述第一事务表中的一个数据元素用于记录一个全局事务标识所标识的全局事务在所述第一数据节点上的两阶段提交状态。
2.根据权利要求1所述的方法,其特征在于,在使用所述目标事务标识查询所述第一事务表中的至少一个数据元素之后,所述方法还包括:在所述目标事务标识满足第一目标条件的情况下,确定所述第一业务数据可见;
其中,所述第一目标条件为以下之一:所述目标事务标识小于所述第一事务表中最小的全局事务标识;所述目标事务标识为所述第一事务表中的第一数据元素的全局事务标识,且所述第一数据元素所记录的所述目标全局事务在所述第一数据节点上的两阶段提交状态为两阶段均已提交。
3.根据权利要求2所述的方法,其特征在于,在使用所述目标事务标识查询所述第一事务表中的至少一个数据元素之后,所述方法还包括:在所述目标事务标识满足第二目标条件的情况下,确定所述第一业务数据不可见;
其中,所述第二目标条件为以下之一:所述目标事务标识大于所述第一事务表中最大的全局事务标识;所述目标事务标识为所述第一事务表中的第一数据元素的全局事务标识,且所述第一数据元素所记录的所述目标全局事务在所述第一数据节点上的两阶段提交状态为预提交未完成。
4.根据权利要求2所述的方法,其特征在于,所述第一协调节点所属的分布式系统中的每个协调节点具有一个全局事务表,所述每个协调节点的全局事务表用于记录所述每个协调节点所处理的全局事务的全局事务标识、及所述每个协调节点所处理的全局事务在对应的各个数据节点上的预提交状态;
在使用所述目标事务标识查询所述第一事务表中的至少一个数据元素之后,所述方法还包括:
在所述目标事务标识满足第三目标条件的情况下,确定所述第一业务数据处于可见性待定状态,其中,所述第三目标条件为所述目标事务标识为所述第一事务表中的第一数据元素的全局事务标识,且所述第一数据元素所记录的所述目标全局事务在所述第一数据节点上的两阶段提交状态为预提交已完成、而二阶段提交未完成。
5.根据权利要求4所述的方法,其特征在于,在接收所述第一协调节点发送的所述第一读请求之前,所述方法还包括:
通过所述第一协调节点接收到第二读请求,其中,所述第二读请求用于请求读取满足所述目标查询条件的业务数据;
响应所述第二读请求,向所述第一数据节点发送所述第一读请求;
通过所述第一协调节点向所述分布式系统中除了所述第一协调节点以外的其他协调节点发送目标获取请求,其中,所述目标获取请求用于请求获取所述其他协调节点的全局事务表;
接收所述其他协调节点响应所述目标获取请求返回的所述其他协调节点的全局事务表,其中,所述其他协调节点的全局事务表包括所述第二事务表。
6.根据权利要求4所述的方法,其特征在于,在接收所述第一协调节点发送的所述第一读请求之前,所述方法还包括:
通过所述第二协调节点确定待执行的所述目标全局事务,其中,所述目标全局事务为跨多个第二数据节点的数据更新事务,所述多个第二数据节点包括所述第一数据节点;
执行所述目标全局事务,以通过多个分支事务在所述多个第二数据节点中上执行与所述目标全局事务对应的数据更新操作,其中,所述多个分支事务与所述多个第二数据节点一一对应;
通过所述第二事务表中的第二数据元素记录所述目标全局事务在所述多个第二数据节点中的每个第二数据节点上的预提交状态。
7.根据权利要求6所述的方法,其特征在于,通过所述第二事务表中的所述第二数据元素记录所述目标全局事务在所述多个第二数据节点中的每个第二数据节点上的预提交状态包括:
从全局事务管理器获取第二事务标识,其中,所述第二事务标识为与所述目标全局事务对应的预提交事务的事务标识;
将所述第二数据元素的预提交事务字段的字段信息更新为所述第二事务标识,其中,所述第二数据元素的全局事务标识字段的字段信息为所述目标事务标识;
将所述第二数据元素的操作节点字段中与所述每个第二数据节点对应的标志位设置为第一目标值,其中,所述操作节点字段用于指示所述多个第二数据节点;
将所述第二数据元素的预提交完成节点字段中与预提交完成的所述第二数据节点对应的标志位设置为第二目标值,其中,所述预提交完成节点字段用于指示所述目标全局事务在所述每个第二数据节点上的预提交状态。
8.根据权利要求6所述的方法,其特征在于,在执行所述目标全局事务之后,所述方法还包括:
通过所述第一数据节点接收所述第二协调节点发送的第一提交指令,其中,所述第一提交指令用于指示对所述目标全局事务的目标分支事务进行预提交,所述第一提交指令中携带有第二事务标识,所述第二事务标识为与所述目标全局事务对应的预提交事务的事务标识,所述目标分支事务用于将所述第一数据节点上与所述目标全局事务关联的业务数据更新为所述第一业务数据;
响应所述第一提交指令,对所述目标分支事务进行预提交,并向所述第二协调节点发送第一指示信息,其中,所述第一指示信息用于指示完成对所述目标分支事务的预提交;
将所述第一事务表中的第三数据元素的预提交事务标识字段的字段信息更新为所述第二事务标识,其中,所述第三数据元素的全局事务标识字段的字段信息为所述目标事务标识;
接收所述第二协调节点发送的第二提交指令,其中,所述第二提交指令用于指示对所述目标分支事务进行二阶段提交,所述第二提交指令中携带有第三事务标识,所述第三事务标识为与所述目标全局事务对应的二阶段提交事务的事务标识;
响应所述第二提交指令,对所述目标分支事务进行二阶段提交,并向所述第二协调节点发送第二指示信息,其中,所述第二指示信息用于指示完成所述目标分支事务的二阶段提交;
将所述第三数据元素的二阶段提交事务标识字段的字段信息更新为所述第三事务标识。
9.根据权利要求1至8中任一项所述的方法,其特征在于,在按照所述目标查询条件进行业务数据查询,得到所述第一业务数据之后,所述方法还包括:在根据所述目标事务标识和所述第一事务表确定出所述第一业务数据不可见的情况下,向所述第一协调节点发送第二业务数据,其中,所述第二业务数据为所述第一业务数据的上一个版本的业务数据。
10.一种请求的处理装置,其特征在于,包括:第一接收单元,用于接收第一协调节点发送的第一读请求,其中,所述第一读请求用于请求读取第一数据节点上满足目标查询条件的业务数据;
第一查询单元,用于响应所述第一读请求,按照所述目标查询条件进行业务数据查询,得到第一业务数据,其中,所述第一业务数据为与目标事务标识所标识的目标全局事务所对应的业务数据;
第二查询单元,用于使用所述目标事务标识查询第一事务表中的至少一个数据元素;
第二发送单元,用于在所述第一业务数据处于可见性待定状态的情况下,将目标事务信息发送给第一协调节点,以由所述第一协调节点根据所述目标事务信息和第二事务表确定所述第一业务数据的可见性,其中,所述目标事务信息包含所述目标事务标识,所述第二事务表为处理所述目标全局事务的第二协调节点的全局事务表;
第四确定单元,用于确定与目标节点标识所标识的所述第二协调节点所对应的所述第二事务表;
查找单元,用于在所述第二事务表中查找到与所述目标事务标识对应的第二数据元素;
第五确定单元,用于在所述第二数据元素所记录的所述目标全局事务在对应的各个数据节点上的预提交状态为全部完成预提交的情况下,确定所述第一业务数据可见;
第六确定单元,用于在所述第二数据元素所记录的所述目标全局事务在对应的各个数据节点上的预提交状态为未全部完成预提交的情况下,确定所述第一业务数据不可见,其中,所述目标事务信息还包括用于标识所述第二协调节点的所述目标节点标识;
第一发送单元,用于在根据所述目标事务标识和第一事务表确定出所述第一业务数据可见的情况下,向所述第一协调节点发送所述第一业务数据,其中,所述第一事务表中的一个数据元素用于记录一个全局事务标识所标识的全局事务在所述第一数据节点上的两阶段提交状态。
11.一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信,其特征在于,所述存储器,用于存储计算机程序;
所述处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行权利要求1至9中任一项所述的方法。
12.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至9中任一项所述的方法。
说明书 :
请求的处理方法和装置、电子设备和存储介质
技术领域
背景技术
GTM)。对于SQL(Structured Query Language,结构化查询语言)数据库,协调节点负责SQL
的解析和转发,数据节点负责计算和数据存储,而全局事务管理器负责保证全局事务的读
一致性。
小于publish_id的,则阻塞等待行锁释放,否则直接读取。
发明内容
询条件的业务数据;响应所述第一读请求,按照所述目标查询条件进行业务数据查询,得到
第一业务数据,其中,所述第一业务数据为与目标事务标识所标识的目标全局事务所对应
的业务数据;在根据所述目标事务标识和第一事务表确定出所述第一业务数据可见的情况
下,向所述第一协调节点发送所述第一业务数据,其中,所述第一事务表中的一个数据元素
用于记录一个全局事务标识所标识的全局事务在所述第一数据节点上的两阶段提交状态。
数据节点上满足目标查询条件的业务数据;第一查询单元,用于响应所述第一读请求,按照
所述目标查询条件进行业务数据查询,得到第一业务数据,其中,所述第一业务数据为与目
标事务标识所标识的目标全局事务所对应的业务数据;第一发送单元,用于在根据所述目
标事务标识和第一事务表确定出所述第一业务数据可见的情况下,向所述第一协调节点发
送所述第一业务数据,其中,所述第一事务表中的一个数据元素用于记录一个全局事务标
识所标识的全局事务在所述第一数据节点上的两阶段提交状态。
其中,存储器,用于存储计算机程序;处理器,用于通过运行所述存储器上所存储的所述计
算机程序来执行上述任一实施例中的方法步骤。
方法步骤。
节点上满足目标查询条件的业务数据;响应第一读请求,按照目标查询条件进行业务数据
查询,得到第一业务数据,其中,第一业务数据为与目标事务标识所标识的目标全局事务所
对应的业务数据;在根据目标事务标识和第一事务表确定出第一业务数据可见的情况下,
向第一协调节点发送第一业务数据,其中,第一事务表中的一个数据元素用于记录一个全
局事务标识所标识的全局事务在第一数据节点上的两阶段提交状态,由于事务表记录了全
局事务在数据节点上的两阶段提交状态,基于事务表可以实时判断数据的可见性,而无需
等待行锁释放,可以实现快速响应读请求的目的,达到了提高数据读取效率的技术效果,进
而解决了相关技术中的事务读方式存在由于需要等待行锁释放导致的数据读效率低的问
题。
附图说明
言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
具体实施方式
本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人
员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范
围。
的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或
描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆
盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于
清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品
或设备固有的其它步骤或单元。
境中。如图1所示,服务器104通过网络与终端102进行连接,可用于为终端或终端上安装的
客户端提供服务(如游戏服务、应用服务等),可在服务器上或独立于服务器设置数据库,用
于为服务器104提供数据存储服务。
以下至少之一:WIFI(Wireless Fidelity,无线保真),蓝牙。终端102可以并不限定于为PC、
手机、平板电脑等。
处理方法也可以是由安装在其上的客户端来执行。
骤:
结构化查询语言)数据库,对于其他类型的分布式数据库,本实施例中的请求处理方法同样
适用。
识)。对于多个CN中的任一个,该CN可以通过多条连接分别与多个DN相连,用于控制DN对其
上的数据进行处理。
为LVS(Linux Virtual Server,Linux虚拟服务器)。不同的客户端(例如,app1,app2)可以
与多个协调节点中的至少部分相连。
据所在的数据节点,即,第一数据节点(该第一数据节点可以是分布式系统中的任意一个数
据节点),并向第一数据节点发送用于请求读取第一数据节点上满足目标查询条件的业务
数据的第一读请求。对于第一数据节点,该第一数据节点可以接收第一协调节点发送的该
第一读请求。
询,得到第一业务数据。
第一业务数据的全局事务标识为目标事务标识,表明该第一业务数据为与目标事务标识所
标识的目标全局事务所对应的业务数据。
全局事务标识所标识的全局事务在第一数据节点上的两阶段提交状态。
提交(即,正式提交)阶段。通过数据节点的事务表中的一个数据元素,可以记录一个全局事
务标识所标识的全局事务在本数据节点上的两阶段提交状态,例如,预提交没有完成,预提
交完成而二阶段提交未完成,预提交和二阶段提交均完成。
序依次保存,也可以不是按照对应的全局事务标识的顺序依次保存的,本实施例中对此不
作限定。
第一数据节点可以采用不同的方式根据目标事务标识和第一事务表确定第一业务数据的
可见性。
事务标识为第一事务表中某一数据元素的全局事务标识时,基于该数据元素所记录的该全
局事务标识所对应的全局事务的两阶段提交状态,确定该业务数据是否可见,比如,仅在两
阶段提交均已完成时判定该业务数据可见,否则认为不可见。可以在业务数据的全局事务
标识大于第一事务表中任意一个数据元素的全局事务标识时,判定该业务数据不可见。
一业务数据,又例如,对第一业务数据进行一定处理(例如,与其他客户端请求的业务数据
进行融合处理),并将得到的处理结果返回给第一客户端等。
照目标查询条件进行业务数据查询,得到第一业务数据,其中,第一业务数据为与目标事务
标识所标识的目标全局事务所对应的业务数据;在根据目标事务标识和第一事务表确定出
第一业务数据可见的情况下,向第一协调节点发送第一业务数据,其中,第一事务表中的一
个数据元素用于记录一个全局事务标识所标识的全局事务在第一数据节点上的两阶段提
交状态,解决了相关技术中的事务读方式存在由于需要等待行锁释放导致的数据读效率低
的问题,提高了数据的读取效率。
识与第一事务表中的各个数据元素中的全局事务标识,确定目标事务标识是否满足第一目
标条件。如果目标事务标识满足第一目标条件,则可以确定第一业务数据可见。
据元素的全局事务标识,且第一数据元素所记录的目标全局事务在第一数据节点上的两阶
段提交状态为两阶段均已提交。
需要判断其数据的可见性。若当前数据的事务id小于最小事务id时,不需要其他操作(例
如,在CN节点作可见性判断)即可确定该数据可见。若当前数据的事务id在自己的私有事务
链表中,需要判断几种情况。其中的一种情况是:如果当前节点的数据预提交完成,且二阶
段完成,则该数据可见。
性判断的及时性和准确性。
务标识是否满足第二目标条件。如果目标事务标识满足第二目标条件,则可以确定第一业
务数据不可见。
的第一数据元素的全局事务标识,且第一数据元素所记录的目标全局事务在第一数据节点
上的两阶段提交状态为预提交未完成。
前数据的事务id在自己的私有事务链表中,需要判断几种情况。其中的一种情况是:如果当
前节点的数据预提交没有完成,则该数据不可见。
务标识是否满足第三目标条件。如果目标事务标识满足第三目标条件,则无法确定第一业
务数据是否可见。
目标全局事务在第一数据节点上的两阶段提交状态为预提交已完成、而二阶段提交未完
成。
成,但二阶段没有完成,不确定是否可见。
读取时可以读取,不是无效数据。
每个协调节点的全局事务表用于记录本协调节点所处理的全局事务的全局事务标识、及本
协调节点所处理的全局事务在对应的各个数据节点上的预提交状态。
务表为处理目标全局事务的第二协调节点的全局事务表。
事务的协调节点的节点标识,即,第二协调节点的目标节点标识。示例性地,DN节点可以向
CN节点返回当前读事务的CN节点的数据,返回的信息可以包含:CN序号(节点标识的一种示
例),事务id。
息和第二事务表确定第一业务数据的可见性。如果第一协调节点和第二协调节点可以是同
一协调节点,则第一协调节点可以直接使用本协调节点的全局事务链表进行第一业务数据
可见性的判断。
表,即,第二事务表,并使用第二事务表进行第一业务数据可见性的判断。
括:
取第二事务表的方式如前述,在此不做赘述。
节点上的预提交状态。例如,第二数据元素可以记录与目标全局事务对应的各个数据节点,
以及目标全局事务在各个数据节点上的预提交状态。
可见。
节点,再由第一数据节点进行后续处理;或者,第一协调节点可以在接收到目标事务信息之
后,通过目标节点标识确定出第二协调节点,并将目标事务信息转发或者将新的事务信息
发送给第二协调节点,由第二协调节点基于本协调节点的全局事务表确定第一业务数据的
可见性。通过前述方式,可以将同一事务的处理集中到同一节点上,减少网络时延,提高事
务处理的效率。
个读事务,即,目标读事务。第一协调节点执行该目标读事务,可以触发向第一数据节点发
送第一读请求。第一读请求可以是第一协调节点转发的第二读请求,也可以是对第二读请
求进行一定处理之后得到的读请求,本实施中对此不作限定。
的全局事务表(例如,可以包含第二协调节点的全局事务表)复制一份数据,形成一个全局
的事务表。
返回的业务数据不需要其他CN节点的信息(即,全局事务表),则不等待直接返回业务数据。
如果需要校验,则可以等待其他CN节点的数据返回。
请求,生成待执行的目标全局事务,该目标全局事务是跨多个第二数据节点的数据更新事
务,所跨的多个第二数据节点包含了上述第一数据节点。
段的字段信息为目标事务标识。
的。对于该更新事务,可以首先访问GTM节点,获取全局事务id,例如,上述目标事务标识。
作,多个分支事务与多个第二数据节点一一对应,一个分支事务由一个第二数据节点处理,
每个第二数据节点的分支事务的是基于第二协调节点的指示进行准备和提交的。
据节点上的预提交状态的准确性。
第二数据节点上的预提交状态。
(用于指示全局事务所跨的数据节点,如图4中所示的预提交操作的节点数,用bit位表示每
个节点),预提交完成节点字段(如图4中所示的预提交是否全部完成,用bit位表示每个节
点)。此外,协调节点上建立的全局事务表还可以包含:二阶段提交标识字段(如图4中所示
的二阶段提交id)。
后,在预提交阶段,第二协调节点可以从全局事务管理器获取与目标全局事务对应的预提
交事务的事务标识,即,第二事务标识,并将第二数据元素的预提交事务字段的字段信息更
新为第二事务标识。
操作节点字段中的每个标志位(bit位)对应于一个数据节点,如果是全局事务所跨的数据
节点,其对应的标志位可以置为第一目标值,例如,1,否则,其对应的标志位可以置为其他
值,例如,0。
成节点字段中与发送该指示信息的数据节点对应的标志位设置为第二目标值。例如,预提
交完成节点字段中的每个标志位(bit位)对应于一个数据节点,如果是确定预提交成功的
第二数据节点,其对应的标志位可以置为第二目标值,例如,1,否则,其对应的标志位可以
置为其他值,例如,0。
二协调节点可以确定出所有的第二数据节点以及目标全局事务在每个第二数据节点上的
预提交状态(即,是否完成预提交)。
提交状态,可以提高信息记录的准确性和便捷性。
务标识,第二事务标识为与目标全局事务对应的预提交事务的事务标识,目标分支事务用
于将第一数据节点上与目标全局事务关联的业务数据更新为第一业务数据;
标全局事务对应的二阶段提交事务的事务标识;
预提交。
目标全局事务对应,用于将第一数据节点上与目标全局事务关联的业务数据更新为第一业
务数据。在第一提交指令中携带有第二事务标识,该第二事务标识是与目标全局事务对应
的预提交事务的事务标识,
可以更新第一事务表中与目标全局事务对应的数据元素(即,第三数据元素),以记录目标
全局事务在第一数据节点上完成预提交。
交事务标识字段(如图5中所示的第二阶段提交事务id)。此外,数据节点上建立的全局事务
表还可以包含:协调节点字段(如图5中所示的CNid)。
局事务标识字段的字段信息为目标事务标识。
第二数据节点对其上的目标全局事务的分支事务进行二阶段提交。
事务标识,即,与目标全局事务对应的二阶段提交事务的事务标识。
数据节点可以将第三数据元素的二阶段提交事务标识字段的字段信息更新为第三事务标
识。
务数据。
二业务数据,该第二业务数据可以是基于第一数据节点上的回滚日志(例如,undo log)获
取的,并将第二业务数据返回给第一协调节点进行后续处理。
(以及目标节点标识)一起发送给第一协调节点进行第一数据节点的可见性判断。
从第一数据节点获取第二业务数据,或者,可以直接向客户端返回错误信息。第一业务数据
也可以先不返回第一业务数据,由第一协调节点在确定出第一业务数据的可见性之后从第
一数据节点获取第一业务数据、第二业务数据、或者向客户端返回错误信息等。本实施例中
对此不作限定。
其中,协调节点上的全局事务链表如图4所示,其中,全局事务标识字段为事务id,预提交事
务标识字段为预提交id,二阶段提交标识字段为二阶段提交id,操作节点字段为预提交操
作的节点数,预提交完成节点字段为预提交是否全部完成;而数据节点上的全局事务链表
如图5所示,其中,协调节点字段为CNid,全局事务标识字段为事务id,预提交事务标识字段
为预提交事务id,二阶段提交事务标识字段为第二阶段提交事务id。
并发控制)时,如果不满足条件,则不读取,如果满足条件,则把数据返回CN节点;在CN节点
再次通过版本号验证,不符合条件的丢弃,符合条件的返回客户端。
点。在DN节点的全局事务链表中新增 CNId(cn节点序号)和事务id,其他字段为0。
务的操作的节点数(预提交操作的节点数)。以bit位来表示,如果更新全部DN节点则全部为
1,如果只是部分DN节点,则在更新的DN节点表示的位上更改为1。各个DN节点预提交完成
前,表示CN节点的预提交完成情况的字段置为0(bit位表示)。
预提交成功指示给CN节点。在CN节点上,通过当前的事务id,在其全局事务链表中查询到当
前事务id的记录,把预提交完成的节点数的表示位表示为1。
后,可以根据事务id,在其全局事务链表中查找到当前事务记录,更新提交信息。把提交事
务id更新后,DN节点可以返回提交成功指示给CN节点。CN节点根据事务id,在其全局事务链
表中查找到当前事务的记录,等待其他DN节点全部返回。在两阶段事务完成之后,CN节点可
以删除掉事务信息,并返回写请求的处理结果给客户端。
局事务链表复制一份,形成一个全局的事务链表。
断该业务数据的可见性。
务id,不确定其他节点的预提交是否完成,需要做特殊标记(例如,返回的信息包含CN序号、
事务id等)返回CN节点。
返回的情况。如果返回的业务数据,不需要其他的CN节点的事务数据,则不需要等待直接返
回。如果需要校验(带有特殊标记,需要进行可见性校验),则等待其他CN节点的数据返回。
完成,则业务数据可见,如果部分完成,则业务数据不可见。
的业务数据。
依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知
悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请
所必须的。
情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有
技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储
介质(如ROM(Read‑Only Memory,只读存储器)/RAM(Random Access Memory,随机存取存储
器)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或
者网络设备等)执行本申请各个实施例所述的方法。
9所示,该装置可以包括:
的目标全局事务所对应的业务数据;
务表中的一个数据元素用于记录一个全局事务标识所标识的全局事务在第一数据节点上
的两阶段提交状态。
以用于执行上述步骤S206。
进行业务数据查询,得到第一业务数据,其中,第一业务数据为与目标事务标识所标识的目
标全局事务所对应的业务数据;在根据目标事务标识和第一事务表确定出第一业务数据可
见的情况下,向第一协调节点发送第一业务数据,其中,第一事务表中的一个数据元素用于
记录一个全局事务标识所标识的全局事务在第一数据节点上的两阶段提交状态,解决了相
关技术中的事务读方式存在由于需要等待行锁释放导致的数据读效率低的问题,提高了数
据的读取效率。
所记录的目标全局事务在第一数据节点上的两阶段提交状态为两阶段均已提交。
所记录的目标全局事务在第一数据节点上的两阶段提交状态为预提交未完成。
全局事务标识、及每个协调节点所处理的全局事务在对应的各个数据节点上的预提交状
态。可选地,在本实施例中,上述装置还包括:
态,其中,第三目标条件为目标事务标识为第一事务表中的第一数据元素的全局事务标识,
且第一数据元素所记录的目标全局事务在第一数据节点上的两阶段提交状态为预提交已
完成、而二阶段提交未完成;
事务标识,第二事务表为处理目标全局事务的第二协调节点的全局事务表。
事务表;
事务,多个第二数据节点包括第一数据节点;
一对应;
局事务在每个第二数据节点上的预提交状态。
进行预提交,第一提交指令中携带有第二事务标识,第二事务标识为与目标全局事务对应
的预提交事务的事务标识,目标分支事务用于将第一数据节点上与目标全局事务关联的业
务数据更新为第一业务数据;
事务标识;
务标识为与目标全局事务对应的二阶段提交事务的事务标识;
调节点发送第二业务数据,其中,第二业务数据为第一业务数据的上一个版本的业务数据。
图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络
环境。
和存储器1006通过通信总线1008完成相互间的通信,其中,
识所标识的全局事务在第一数据节点上的两阶段提交状态。
Architecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制
总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总
线。通信接口用于上述电子设备与其他设备之间的通信。
请求的处理装置中的其他模块单元,本示例中不再赘述。
Signal Processing,数字信号处理器)、ASIC (Application Specific Integrated
Circuit,专用集成电路)、FPGA (Field-Programmable Gate Array,现场可编程门阵列)
或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。
图10其并不对上述电子设备的结构造成限定。例如,电子设备还可包括比图10中所示更多
或者更少的组件(如网络接口、显示装置等),或者具有与图10所示的不同的配置。
中,存储介质可以包括:闪存盘、ROM、RAM、磁盘或光盘等。
识所标识的全局事务在第一数据节点上的两阶段提交状态。
术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软
件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一
台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所
述方法的全部或部分步骤。
种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者
可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之
间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连
接,可以是电性或其它的形式。
单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中所提供的方
案的目的。
元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
视为本申请的保护范围。