CN102831156A - 一种云计算平台上的分布式事务处理方法 - Google Patents
一种云计算平台上的分布式事务处理方法 Download PDFInfo
- Publication number
- CN102831156A CN102831156A CN2012102281142A CN201210228114A CN102831156A CN 102831156 A CN102831156 A CN 102831156A CN 2012102281142 A CN2012102281142 A CN 2012102281142A CN 201210228114 A CN201210228114 A CN 201210228114A CN 102831156 A CN102831156 A CN 102831156A
- Authority
- CN
- China
- Prior art keywords
- transaction
- affairs
- lock
- data
- 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.)
- Granted
Links
Images
Abstract
本发明公开了一种云计算平台上的分布式事务处理方法,该方法首先在云计算平台的数据存储集群中启动基础服务,在数据管理集群的节点上启动事务处理的服务;客户端通过RPC连接到数据管理服务节点,请求开始一个新的事务,局部事务管理器接受请求,实例化一个事务对象并分配一个事务标识符发送给客户端;客户端发起事务的数据操作请求,局部事务管理器根据客户端拥有的事务标识符,将请求发送到对应的事务对象进行处理;客户端发起提交事务命令,局部管理器负责对事务进行提交。本发明在云计算平台之上,通过缓存与合并事务日志,减少了事务日志的大小和日志操作次数;主锁和lease管理解决了阻塞问题;恢复策略处理故障情况,维护了数据的一致性。
Description
技术领域
本发明涉及一种分布式事务处理方法,尤其涉及一种云计算平台上的分布式事务处理方法。
背景技术
广义的云计算平台是建立在海量数据云存储之上,对数据进行建模、分析、存储和计算等的综合数据管理,对外提供云服务的分布式系统。整个系统在逻辑上可以划分为数据存储层和数据管理层,分布式事务处理属于数据管理层的范围。相比于传统的关系数据库,云计算平台下的海量数据存储层一般采用了NoSQL数据仓库,它们具有容错性、高可用性和高可扩展的特性,比如Google的BigTable、Yahoo!的PNUTS以及Facebook和Twitter使用的Cassandra等。
NoSQL数据仓库大多采用了简单的键-值模型,每条数据项通过唯一的键进行标识,不同的数据项可能位于同一个节点或者不同的节点,通过诸如局域网之类的网络彼此连接。一个事务需要访问和更新分散在不同节点上的多个数据项,并且不同用户能够并发执行事务请求,无论平台是否发生故障(例如供电中断、软硬件故障等),都必须满足事务的以下特性:原子性(事务要么成功执行所有操作,要么没有任何操作被执行)、一致性(数据库只能从一个一致性状态转换到另一个一致性状态)、隔离性(一个事务的执行不被其他事务干扰)和持久性(一个事务一旦成功完成,它对数据库的改变就是永久性的)。
云计算平台下的NoSQL数据仓库通过分布式文件系统确保数据的稳定存储,提供了基于键的单行数据项的原子性保证。对于多键的分布式事务请求,数据管理层需要实现事务处理方法。分布式系统通常采用两阶段提交(2PC)协议来实现事务的原子性和一致性。两阶段提交协议中节点角色分为协调者和参与者。每个事务的协调者节点,是在客户端(或应用程序)发起事务操作后,负责事务的启动、执行和提交的节点。持有事务请求数据的节点被称为参与者节点,逻辑上一个事务内不同的数据项持有者视为不同的参与者,但在物理上他们可能位于同一个节点。
传统的两阶段提交协议存在如下的缺点:
1、两阶段提交协议的日志写入操作是频繁的。为保证事务的原子性,在协议执行过程中,协调者和参与者都需要在本地进行强制日志写入操作。在有n个参与者和1个协调者的系统中,执行一次两阶段提交协议,需要进行2n+1次强制的日志写入操作。
2、两阶段提交协议无法解决一个阻塞问题。在网络环境不佳的情况下,由于节点故障导致参与者被阻塞,直到发生故障的节点恢复,这种问题被称为阻塞问题。由于参与者持有资源被阻塞,进而容易引发更多的事务无法成功执行。
目前的技术主要支持单行操作的原子性保证,对于分布式的多键事务处理,现有技术要么对数据进行特殊划分,限制多行事务在一个特定的范围内,要么采用2PC实现分布式事务,寻求优化的协议实现。现有技术并没有充分考虑在云计算平台下,多种异常或故障发生时分布式事务的高效管理。因此需要一种比现有的技术更有效的分布式事务处理方法。
发明内容
本发明的目的在于针对目前分布式事务方法的欠缺,提出一种基于云计算平台的分布式事务处理方法,本发明为当前云计算平台的数据管理层提供跨行的分布式事务保证。
本发明是通过以下技术方案来实现的:一种云计算平台上的分布式事务处理方法,包括以下步骤:
(1)在数据存储集群中启动云计算平台的基础服务,用来存储数据以及提供分布式的协调服务,在数据管理集群的各节点上启动事务处理的服务例程,用来管理用户发起的事务请求;
(2)客户端通过RPC连接到某一台固定的数据管理服务节点,首先请求开始一个新的事务,局部事务管理器接受请求,实例化一个事务对象并分配一个全局唯一的标识符发送给客户端,在事务的整个生命周期内通过该事务对象管理该事务的执行;
(3)客户端向局部事务管理器发起事务的数据操作请求;局部事务管理器根据客户端拥有的事务ID,将请求发送到对应的事务对象,如果该请求是事务的第一个操作,则将该操作的主键设为事务的主锁;否则,直接进入事务对象的处理流程;该步骤由以下子步骤来实现:
(3.1)事务对象首先通过锁管理器查询锁表,如果该数据项没有被其他事务加锁,则将锁的结构信息写入该数据项对应的锁记录行,加锁成功;进入步骤(3.4);
(3.2)如果该数据项正在被其他事务占用,则尝试加锁失败,读取相应的锁信息;如果锁没有超时,则选择设定次数的尝试加锁操作;否则发送消息通知全局事务管理器对超时锁对应的事务进行恢复处理;
(3.3)如果最终加锁失败,则局部事务管理器释放所有已经获得的锁,宣布该事务的操作的最终决定为abort,停止事务对象的lease管理器,然后释放事务对象管理的资源;如果最终加锁成功,则进入步骤(3.4);
(3.4)加锁成功时,根据数据操作的类型,进行相应的数据读取和日志缓存与合并操作,等待处理客户端的下一条请求,对于数据操作请求,则重复步骤(3);对客户的提交事务请求命令,则进入步骤(4);
(4)客户端向局部事务管理器发起提交事务命令,局部管理器负责对事务进行提交;该步骤由以下子步骤来实现:
(4.1)事务对象将缓存的写操作集合中的操作日志封装为一条事务日志消息,强制写入稳定存储器中;如果日志被成功写入,则该事务执行成功,向客户端返回事务操作成功;如果日志写入失败,则返回事务失败;
(4.2)成功写入日志后,异步更新数据并将该事务涉及的锁释放;否则只用释放所有的锁资源。
进一步地,所述步骤(1)中,所述的基础服务包括基于键-值的NoSQL数据存储和分布式的协调服务器;所述的事务处理的服务例程包括:每个数据管理集群节点上启动的局部事务管理器、每个节点上启动数据访问操作接口、锁表和事务日志表操作接口、某个节点上的全局事务管理器;所述的局部事务管理器包括分布式锁管理器和事务日志管理器;所述的全局事务管理器包括锁扫描器和恢复管理器。
进一步地,所述步骤(2)中,所述的事务对象管理的内容有:事务ID、事务的主锁、事务的读操作集合、事务写操作集合、事务当前操作的计数i、事务对象的lease管理器。
进一步地,所述步骤(3)中,所述的客户端发出的数据操作请求包括:数据项所在行的主键、操作的类型(插入、读取、更新或删除)、操作的内容以及所属的事务。其中,对于操作的内容,如果是读取操作,则为需要读的列名;如果是插入或更新操作,则为所要操作的列和对应列的值;如果是删除操作,则该域为空。
进一步地,所述步骤(3)中,所述的锁结构信息包括:数据项的主键、事务ID、锁有效的起始时间戳、锁超时的时间片、事务的主锁。
进一步地,所述步骤(3.3)中,所述的lease管理器的工作方法为:在局部事务管理器通过事务对象对第一个数据项加锁成功后,由事务对象启动,每隔一段设定的时间,获取本地的时间戳,用它更新所有已获得对象所在锁表中的锁有效的起始时间戳,从而保证正在执行的事务能够在结束前持续拥有数据操作的权利,直到事务的最终决定被确定,lease管理器才停止工作。
进一步地,所述步骤(3.4)中,所述事务对象根据操作类型进行的处理方法为:
(a)如果该操作是读类型且在该事务内未出现的行操作,则根据数据访问接口从数据库中读取整条记录并缓存到事务对象的读操作集合中,同时根据请求返回相应域的内容;
(b)如果该操作是读类型且仅在事务对象的读操作集合中出现过,则从缓存的读集合中取出相应记录,根据请求返回相应域的内容;
(c)如果该操作是读类型且在事务对象的写操作集合中出现过,若读集合中不存在,则从数据库中读取整条记录并缓存到读操作集合中,若存在,则直接取出整条记录,最后用写操作集合中的新值进行部分替换合并,返回合并后的值;
(d)如果该操作是写类型(包括插入、更新和删除)且在该事务内未出现的行操作,将其写入缓存的操作日志的写操作集合中;
(e)如果该操作是写类型且在事务对象的写操作集合中出现过,则将原来缓存的部分属性对应的新值进行替换合并,将合并后的结果缓存在操作日志的写操作集合中。
本发明的有益效果是:
1、在NoSQL数据存储提供的服务之上,在事务执行过程中,将客户端提交的操作缓存在单个服务节点上,只需要显式地管理协调者日志以及将所有操作组合为一条事务日志,减少了两阶段提交中强制写入日志的次数,降低了磁盘写操作的开销;
2、对于事务内的每条操作,在缓存日志的基础上,通过合并相同数据项上操作内容,减少了单条事务日志的大小,降低了网络传输的开销;
3、通过锁结构中的主锁信息以及lease管理,有效地解决了两阶段提交协议中的阻塞问题,同时控制事务执行的严格流程,通过前向回滚和后向回滚的恢复策略解决了事务执行过程中各种异常情况,维护了数据的一致性。
附图说明
图1是整个事务处理方法的系统结构框图;
图2是本发明使用的事务提交协议流程图;
图3全局事务管理器的启动和工作流程图。
具体实施方式
本发明云计算平台上的分布式事务处理方法,包括以下步骤:
1、在数据存储集群中启动云计算平台的基础服务,用来存储数据以及提供分布式的协调服务,在数据管理集群的各节点上启动事务处理的服务例程,用来管理用户发起的事务请求。
所述的基础服务包括基于键-值的NoSQL数据存储,比如Hadoop的分布式文件系统HDFS和分布式数据库HBase,或者其他同类服务如Cassandra等,以及分布式的协调服务器,比如Zookeeper等。所述的事务处理的服务例程包括:每个数据管理集群节点上启动的局部事务管理器(TransactionManager);每个节点上启动数据访问操作接口,锁表和事务日志表操作接口;某个节点上的全局事务管理器(TransactionMaster)。
所述的局部事务管理器包括分布式锁管理器LockManager和事务日志管理器LogManager;所述的全局事务管理器包括锁扫描器LockScanner和恢复管理器RecoveryHandler。
2、客户端通过RPC连接到某一台固定的数据管理服务节点,首先请求开始一个新的事务,局部事务管理器接受请求,实例化一个事务对象并分配一个全局唯一的标识符(事务ID)发送给客户端,在事务的整个生命周期内通过该事务对象管理该事务的执行。
所述的事务对象管理的内容有:事务ID、事务的主锁、事务的读操作集合、事务写操作集合、事务当前操作的计数i、事务对象的lease管理器。
所述的事务标识符的分配方法是:局部事务管理器访问日志表中单独的事务ID分配单元,该单元维护了一个计数器,记录了系统当前已经分配使用的编号,对该单元进行递增并返回操作完成后的值,将该编号加上事务前缀标识符(如“T”)构成事务ID。因为该事务ID分配单元是全局可见且递增操作是原子性的,从而保证了事务ID的全局唯一性。事务ID分配表的格式如下表所示:
rowkey | counter |
tid | 68 |
3、客户端向局部事务管理器发起事务的数据操作请求。局部事务管理器根据客户端拥有的事务ID,将请求发送到对应的事务对象,如果该请求是事务的第一个操作,则将该操作的主键设为事务的主锁;否则,直接进入事务对象的处理流程。该步骤由以下子步骤来实现。
3.1、事务对象首先通过锁管理器查询锁表,如果该数据项没有被其他事务加锁,则将锁的结构信息写入该数据项对应的锁记录行,加锁成功。进入步骤3.4。
3.2、如果该数据项正在被其他事务占用,则尝试加锁失败,读取相应的锁信息。如果锁没有超时,则选择设定次数的尝试加锁操作;否则发送消息通知全局事务管理器对超时锁对应的事务进行恢复处理。
3.3、如果最终加锁失败,则局部事务管理器释放所有已经获得的锁,宣布该事务的操作的最终决定为abort,停止事务对象的lease管理器,然后释放事务对象管理的资源;如果最终加锁成功,则进入步骤3.4。
3.4、加锁成功时,根据数据操作的类型,进行相应的数据读取和日志缓存与合并操作,等待处理客户端的下一条请求,对于数据操作请求,则重复步骤3;对客户的提交事务请求命令,则进入步骤4。
所述的lease管理器的工作方法为:在局部事务管理器通过事务对象对第一个数据项加锁成功后,由事务对象启动,每隔一段设定的时间,获取本地的时间戳,用它更新所有已获得对象所在锁表中的锁有效的起始时间戳,从而保证正在执行的事务能够在结束前持续拥有数据操作的权利,直到事务的最终决定被确定,lease管理器才停止工作。
所述事务对象根据操作类型进行的处理方法为:
a、如果该操作是读类型且在该事务内未出现的行操作,则根据数据访问接口从数据库中读取整条记录并缓存到事务对象的读操作集合中,同时根据请求返回相应域的内容。
b、如果该操作是读类型且仅在事务对象的读操作集合中出现过,则从缓存的读集合中取出相应记录,根据请求返回相应域的内容。
c、如果该操作是读类型且在事务对象的写操作集合中出现过,若读集合中不存在,则从数据库中读取整条记录并缓存到读操作集合中,若存在,则直接取出整条记录,最后用写操作集合中的新值进行部分替换合并,返回合并后的值。
d、如果该操作是写类型(包括插入、更新和删除)且在该事务内未出现的行操作,将其写入缓存的操作日志的写操作集合中。
e、如果该操作是写类型且在事务对象的写操作集合中出现过,则将原来缓存的部分属性对应的新值进行替换合并,将合并后的结果缓存在操作日志的写操作集合中。
所述的客户端发出的数据操作请求包括:数据项所在行的主键、操作的类型(插入、读取、更新或删除)、操作的内容以及所属的事务。其中,对于操作的内容,如果是读取操作,则为需要读的列名;如果是插入或更新操作,则为所要操作的列和对应列的值;如果是删除操作,则该域为空。请求的格式如下表所示:
数据项的主键 | 操作类型 | 操作内容 | 事务ID |
所述的锁结构信息包括:数据项的主键、事务ID、锁有效的起始时间戳、锁超时的时间片、事务的主锁;锁的格式如下表所示:
数据项主键 | 事务ID | StartTimeStamp | TimeOut | PrimaryLock |
4、客户端向局部事务管理器发起提交事务命令,局部管理器负责对事务进行提交。
4.1、事务对象将缓存的写操作集合中的操作日志封装为一条事务日志消息,强制写入稳定存储器中;如果日志被成功写入,则该事务执行成功,向客户端返回事务操作成功;如果日志写入失败,则返回事务失败。
4.2、成功写入日志后,异步更新数据并将该事务涉及的锁释放;否则只需释放所有的锁资源。
为了减少事务频繁地强制写日志操作,本发明利用云计算平台的NoSQL存储特性,减少了管理参与者写事务日志的操作,仅在协调者(即局部事务管理器所在节点)上通过维护缓存只在事务提交时才进行一次写日志操作。为了减少每条事务日志的大小,通过对缓存的日志进行合并,在提高数据操作响应时间的同时降低了单个事务日志的大小。
在事务的执行的不同阶段,异常的发生都可能导致一个事务退出执行。根据异常发生时,局部事务管理器是否可用的状态,以下分为两种情况:局部事务管理器处理恢复操作和全局事务管理器处理恢复操作。
第一种情况,局部事务管理器有效时,如果异常出现在步骤3,在请求加锁阶段,事务请求的数据项正在被其他事务占有,多次尝试加锁后失败,由于发生数据冲突导致事务被迫中止,局部事务管理器调用事务对象的回滚例程,释放该事务已经获得的资源的锁。
如果异常出现在步骤4.1,事务管理器强制写入事务日志失败,导致事务不能顺利执行,局部事务管理器调用事务对象的回滚例程,释放该事务已经获得的资源的锁。
如果异常出现在步骤4.2,在应用事务更新时的异常或者释放锁的过程中出现异常,局部事务管理器发送消息通知全局事务管理器进行处理。
第二种情况下,局部事务管理器失效时,通过全局事务管理器来进行恢复管理。全局事务管理器维护失败的事务ID并对其进行恢复处理。
具体而言,本发明的全局事务管理器处理失败事务的方案可以通过以下步骤实现:
1、获知数据对象的主键、失败事务的ID和对应的主锁,将得到的信息保存在自身的队列结构中;
全局事务管理器获知失败事务信息的方法有两种:第一种方法是某个有效的局部事务管理器在执行事务操作的加锁阶段,读取到某个数据对象的锁结构,发现超时的锁时,发送消息通知全局事务管理器去处理未完成的事务。在此消息中,包含数据对象的主键rowkey,事务ID,事务的主锁。消息格式如下表所示:
数据对象rowkey | 事务ID | 事务的主锁 |
第二种方法是在通过全局事务管理器中的锁扫描器,通过周期性检查锁表中的锁结构,找到超时锁的数据对象,同时将得到的结构,按照第一种方法的消息格式保存在自身的队列中。
2、如果队列为空,恢复管理器则进入等待状态,否则,从队列中取出一条记录进行处理。该记录包括数据对象的主键、失败事务ID(Ti)和事务的主锁(Ri)。恢复管理器根据得到的失败事务的信息,通过访问锁表和事务日志表,进行恢复处理。
2.1、恢复管理器访问锁表中Ri所在行的锁结构,如果Ri中的锁已释放,或者锁的拥有者不是该事务Ti的话,则执行后向回滚操作。根据前面严格的事务执行协议,此状态表明事务的部分更新已经对外可见,事务成功的结果已经返回给响应的客户端,因此通过后向回滚继续未完成的事务Ti。
后向回滚具体实现方法是:
a、如果全局事务管理器没有事务Ti的日志,则根据事务ID(Ti)从事务日志表中读取相应的事务日志记录。
日志格式如下表所示:
事务ID | 操作计数N | Op1 | Op2 | ... | OpN |
其中,“操作计数N”表示该事务在多少个不同数据项上进行了更新操作。“Opi”为在某个数据项上的操作记录,包括了操作类型和更新后的新值。
操作记录的格式如下表所示:
操作对象的主键rowkey | 操作类型 | 操作的新值 |
其中,“操作类型”包括三种不同的写操作:插入、更新和删除。“操作的新值”包括了该操作发生后,数据库中该对象的值,在操作类型为删除时,该域为空。
b、根据事务日志中的操作记录,对每一条记录执行恢复处理。处理方法是:根据操作记录中的对象rowkey,如果锁表中对应的锁存在且锁的拥有者仍然是该事务Ti时,使用操作记录中的新值覆盖数据库中的旧值,同时删除锁表中的锁;如果锁表中对应的锁结构不存在,或者存在但锁的拥有者不是Ti,则忽略。循环执行所有记录,直到处理完事务Ti的所有操作。
2.2、如果Ri中的锁存在且锁的拥有者是Ti本身的话,则进一步根据Ti访问事务日志表中Ti所在的日志。如果日志存在,则执行后向回滚。因为日志成功写入后,局部事务管器已向客户端通知成功的消息。如果日志不存在,说明事务Ti执行失败,执行前向回滚。前向回滚的方法是,将锁表中事务ID列为Ti的行删除以释放失败事务占有的对象。
下面结合附图和一个示例对本发明做进一步详细的说明,但不以任何方式限制本发明的范围。
考虑一个例子。一个跨媒体搜索系统支持用户通过一张示例图片去检索相关的视频,系统需要分析视频内容并提取关键帧之后,通过比较示例图片与关键帧之间的相似性来判断该视频是否作为搜索结果返回。其中,视频对象和不同关键帧对象作为不同的行保存在数据库中,为保证视频对象和关键帧之间的对应关系,需要这些操作原子地完成。
假设数据情况如下:
系统中已经存在了某个视频对象,其id为1000,内容域(contents)为video0,关键帧链接域(link)为空。系统对该对象内容进行分析后提取了5个关键帧,它们的id分别为1001,1002,1003,1004,1005,内容域分别为frame1,frame2,frame3,frame4和frame5,对应的视频链接域(dlink)都指向视频对象,为1000。事务的操作为5个插入请求(将关键帧保存到数据库中)和一个更新操作(将视频对象的link域由空值更新为对应关键帧的id列表)。
事务的执行步骤如下:
1、客户端通过RPC连接到某个数据管理服务节点,发起一个事务请求,局部事务管理器访问日志表中单独的事务ID分配单元,将计数器的值增加一并返回新值作为事务编号。假设形成的事务ID为“T68”,用于标识该事务。
2、客户端向局部事务管理器发送第一条数据操作请求。请求的格式如下表所示:
1001 | insert | (contents:frame1,dlink:1000) | T68 |
局部事务管理器接收到请求后,由于该操作是事务“T68”的第一条操作,其对应的主键“1001”为选为该事务的主锁。局部事务管理器先通过锁管理器在锁表中尝试加入对应的锁记录,成功加锁后的锁结构格式如下表所示:
1001 | T68 | StartTime Stamp | TimeOut | 1001 |
加锁成功后,局部事务管理器将请求的内容缓存在写操作集合中。同时,在该事务第一条操作操作成功后,启动lease管理器,周期性更新事务已获得锁的StartTimeStamp,以确保事务在结束前拥着数据对象的操作权限。如果最终加锁失败,则返回事务失败信息,停止更新lease并释放所有已获得的锁。
3、如果客户端的前一条数据操作被成功执行,则继续剩下的数据操作请求。任何一条请求的加锁失败都将使得事务终止并释放锁资源。第二条数据插入请求到第六条数据更新请求在成功执行过程中的请求结构和锁结构分别如下:
第二条插入请求:
请求格式如下表所示:
1002 | insert | (contents:frame2,dlink:1000) | T68 |
锁格式如下表所示:
1002 | T68 | StartTimeStamp | TimeOut | 1001 |
第三条插入:
请求格式如下表所示:
1003 | insert | (contents:frame3,dlink:1000) | T68 |
锁格式如下表所示:
1003 | T68 | StartTimeStamp | TimeOut | 1001 |
第四条插入请求:
请求格式如下表所示:
1004 | insert | (contents:frame4,dlink:1000) | T68 |
锁格式如下表所示:
1004 | T68 | StartTimeStamp | TimeOut | 1001 |
第五条插入请求:
请求格式如下表所示:
1005 | insert | (contents:frame5,dlink:1000) | T68 |
锁格式如下表所示:
1005 | T68 | StartTimeStamp | TimeOut | 1001 |
第六条更新请求:
请求格式如下表所示:
1000 | update | (link:1001,1002,1003,1004,1005) | T68 |
锁格式如下表所示:
1000 | T68 | StartTimeStamp | TimeOut | 1001 |
4、客户端向局部事务管理器发起提交事务命令,事务管理器根据缓存的写操作集合中的内容封装为一条事务日志,并持久化到共享的稳定存储中。事务日志的格式如下表所示:
T68 | 6 | Op1 | Op2 | Op3 | Op4 | Op5 | Op6 |
其中Op1~Op6为对应缓存的请求内容,以Op1为例,其格式如下表所示:
1001 | insert | (contents:frame1,dlink:1000) |
如果写入日志操作返回成功,则向客户端返回事务成功执行的结果,同时异步将更新操作应用的数据库中。在当前局部事务管理器中,按照写操作集合中的内容,顺序将更新反映到数据库中,并释放锁。
5、在事务的执行过程中,局部事务管理的故障使得事务“T68”没有成功完成。此时,全局事务管理器服务能够针对不同的状态进行恢复控制。全局事务管理器的启动和工作流程见附图3。
为说明全局事务管理器的前向回滚方法,以事务“T68”在步骤3)的第二个插入完成后,局部事务管器发生故障为例。此时锁扫描器通过检查锁表中“1002”时,发现锁超时,将失败事务消息保存在全局事务管理器的队列中,消息的格式如下表所示:
1002 | T68 | 1001 |
全局事务管理器检查主锁“1001”对应的锁没有释放,再次检查事务“T68”的日志,发现日志为空,从而断定该事务没有成功返回,因此将锁表中“1002”对应记录清除。其他对应超时锁的处理方法相同。
为说明全局事务管理器的后向回滚方法,以事务“T68”在步骤4)中,已经完成对Op1~Op5的操作,即事务“T68”的日志已经在磁盘中,且这些操作对应的锁已经释放。全局事务管理器从队列中取出失败事务的信息,包括数据对象(“1000”)、事务ID(“T68”)和事务主锁(“1001”)。
a、读取主锁“1001”的锁,发现已经释放,则断定该事务已经返回成功,且部分更新已经对外可见,因此进入后向回滚;
b、读取事务“T68”日志,顺序执行更新操作,对于Op1~Op5,根据锁表可知它们已经完成,只需对Op6进行更新,获得Op6的日志内容如下表所示:
1000 | update | (link:1001,1002,1003,1004,1005) |
c、根据日志内容,将数据库中“1000”对应的数据(视频对象)的“link”域更新为“1001,1002,1003,1004,1005”,并释放“1000”的锁。
按照此事务执行流程,成功执行此事务只需要显式管理一次日志写入操作。而传统的两阶段提交还需要12次日志写入操作。其次,通过主锁和lease管理能够解决两阶段提交中的阻塞问题,前向和后向回滚策略能够解决节点故障引起的数据不一致性问题。
Claims (5)
1.一种云计算平台上的分布式事务处理方法,其特征在于,包括以下步骤:
(1)在数据存储集群中启动云计算平台的基础服务,用来存储数据以及提供分布式的协调服务,在数据管理集群的各节点上启动事务处理的服务例程,用来管理用户发起的事务请求;
(2)客户端通过RPC连接到某一台固定的数据管理服务节点,首先请求开始一个新的事务,局部事务管理器接受请求,实例化一个事务对象并分配一个全局唯一的标识符发送给客户端,在事务的整个生命周期内通过该事务对象管理该事务的执行;
(3)客户端向局部事务管理器发起事务的数据操作请求;局部事务管理器根据客户端拥有的事务ID,将请求发送到对应的事务对象,如果该请求是事务的第一个操作,则将该操作的主键设为事务的主锁;否则,直接进入事务对象的处理流程;该步骤由以下子步骤来实现:
(3.1)事务对象首先通过锁管理器查询锁表,如果该数据项没有被其他事务加锁,则将锁的结构信息写入该数据项对应的锁记录行,加锁成功;进入步骤(3.4);
(3.2)如果该数据项正在被其他事务占用,则尝试加锁失败,读取相应的锁信息;如果锁没有超时,则选择设定次数的尝试加锁操作;否则发送消息通知全局事务管理器对超时锁对应的事务进行恢复处理;
(3.3)如果最终加锁失败,则局部事务管理器释放所有已经获得的锁,宣布该事务的操作的最终决定为abort,停止事务对象的lease管理器,然后释放事务对象管理的资源;如果最终加锁成功,则进入步骤(3.4);
(3.4)加锁成功时,根据数据操作的类型,进行相应的数据读取和日志缓存与合并操作,等待处理客户端的下一条请求,对于数据操作请求,则重复步骤(3);对客户的提交事务请求命令,则进入步骤(4);
(4)客户端向局部事务管理器发起提交事务命令,局部管理器负责对事务进行提交;该步骤由以下子步骤来实现:
(4.1)事务对象将缓存的写操作集合中的操作日志封装为一条事务日志消息,强制写入稳定存储器中;如果日志被成功写入,则该事务执行成功,向客户端返回事务操作成功;如果日志写入失败,则返回事务失败;
(4.2)成功写入日志后,异步更新数据并将该事务涉及的锁释放;否则只用释放所有的锁资源。
2.根据权利要求1所述云计算平台上的分布式事务处理方法,其特征在于,所述步骤(1)中,所述的基础服务包括基于键-值的NoSQL数据存储和分布式的协调服务器;所述的事务处理的服务例程包括:每个数据管理集群节点上启动的局部事务管理器、每个节点上启动数据访问操作接口、锁表和事务日志表操作接口、某个节点上的全局事务管理器;所述的局部事务管理器包括分布式锁管理器和事务日志管理器;所述的全局事务管理器包括锁扫描器和恢复管理器。
3.根据权利要求1所述云计算平台上的分布式事务处理方法,其特征在于,所述步骤(2)中,所述的事务对象管理的内容有:事务ID、事务的主锁、事务的读操作集合、事务写操作集合、事务当前操作的计数i、事务对象的lease管理器。
4.根据权利要求1所述云计算平台上的分布式事务处理方法,其特征在于,所述步骤(3)中,所述的客户端发出的数据操作请求包括:数据项所在行的主键、操作的类型(插入、读取、更新或删除)、操作的内容以及所属的事务;所述的锁结构信息包括:数据项的主键、事务ID、锁有效的起始时间戳、锁超时的时间片、事务的主锁。
5.根据权利要求1所述云计算平台上的分布式事务处理方法,其特征在于,所述步骤(3.4)中,所述事务对象根据操作类型进行的处理方法为:
(a)如果该操作是读类型且在该事务内未出现的行操作,则根据数据访问接口从数据库中读取整条记录并缓存到事务对象的读操作集合中,同时根据请求返回相应域的内容;
(b)如果该操作是读类型且仅在事务对象的读操作集合中出现过,则从缓存的读集合中取出相应记录,根据请求返回相应域的内容;
(c)如果该操作是读类型且在事务对象的写操作集合中出现过,若读集合中不存在,则从数据库中读取整条记录并缓存到读操作集合中,若存在,则直接取出整条记录,最后用写操作集合中的新值进行部分替换合并,返回合并后的值;
(d)如果该操作是写类型(包括插入、更新和删除)且在该事务内未出现的行操作,将其写入缓存的操作日志的写操作集合中;
(e)如果该操作是写类型且在事务对象的写操作集合中出现过,则将原来缓存的部分属性对应的新值进行替换合并,将合并后的结果缓存在操作日志的写操作集合中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210228114.2A CN102831156B (zh) | 2012-06-29 | 2012-06-29 | 一种云计算平台上的分布式事务处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210228114.2A CN102831156B (zh) | 2012-06-29 | 2012-06-29 | 一种云计算平台上的分布式事务处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102831156A true CN102831156A (zh) | 2012-12-19 |
CN102831156B CN102831156B (zh) | 2014-12-31 |
Family
ID=47334293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210228114.2A Expired - Fee Related CN102831156B (zh) | 2012-06-29 | 2012-06-29 | 一种云计算平台上的分布式事务处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102831156B (zh) |
Cited By (82)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103152424A (zh) * | 2013-03-15 | 2013-06-12 | 珠海市君天电子科技有限公司 | 一种在云端自动控制解决方案的方法 |
CN103164219A (zh) * | 2013-01-08 | 2013-06-19 | 华中科技大学 | 去中心化架构中使用多类型副本的分布式事务处理系统 |
CN103312549A (zh) * | 2013-06-26 | 2013-09-18 | 华为技术有限公司 | 一种事务管理方法及装置和系统 |
CN103729405A (zh) * | 2013-12-06 | 2014-04-16 | 杭州安恒信息技术有限公司 | 根据时间片分布数据确定事务流经渠道的对应关系的方法 |
CN103885986A (zh) * | 2012-12-21 | 2014-06-25 | 阿里巴巴集团控股有限公司 | 主备数据库同步的方法和装置 |
CN103973725A (zh) * | 2013-01-28 | 2014-08-06 | 阿里巴巴集团控股有限公司 | 一种分布式协同方法和协同器 |
WO2015043305A1 (zh) * | 2013-09-30 | 2015-04-02 | 华为技术有限公司 | 元数据处理方法及元数据服务器 |
CN104572917A (zh) * | 2014-12-29 | 2015-04-29 | 成都致云科技有限公司 | 数据锁定方法、装置及分布式存储系统 |
CN104580525A (zh) * | 2015-02-03 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种基于事务模型的集群部署系统 |
WO2015070663A1 (zh) * | 2013-11-18 | 2015-05-21 | 华为技术有限公司 | 一种日志结构数据库系统查询请求消息处理方法及装置 |
CN104767737A (zh) * | 2015-03-23 | 2015-07-08 | 贵阳朗玛信息技术股份有限公司 | 插入式事务管理器及其应用方法 |
CN104793988A (zh) * | 2014-01-20 | 2015-07-22 | 阿里巴巴集团控股有限公司 | 跨数据库分布式事务的实现方法和装置 |
CN104954411A (zh) * | 2014-03-31 | 2015-09-30 | 腾讯科技(深圳)有限公司 | 分布式系统共享网络资源的方法、终端及系统 |
WO2015154694A1 (en) * | 2014-04-10 | 2015-10-15 | Huawei Technologies Co., Ltd. | System and method for massively parallel processing database |
CN105574026A (zh) * | 2014-10-15 | 2016-05-11 | 腾讯科技(深圳)有限公司 | 非关系型数据库支持事务的方法及装置 |
CN105786595A (zh) * | 2016-02-29 | 2016-07-20 | 浪潮通用软件有限公司 | 一种两段式提交的事务控制方法 |
CN105955804A (zh) * | 2016-04-22 | 2016-09-21 | 星环信息科技(上海)有限公司 | 一种处理分布式事务的方法与设备 |
CN106033437A (zh) * | 2015-03-13 | 2016-10-19 | 阿里巴巴集团控股有限公司 | 一种分布式事务处理方法及系统 |
CN106126583A (zh) * | 2016-06-20 | 2016-11-16 | 环球大数据科技有限公司 | 一种分布式图数据库的集群强一致性处理方法及系统 |
CN106294512A (zh) * | 2015-06-11 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种处理关系型数据库中ddl语句的方法与设备 |
CN106385469A (zh) * | 2016-08-25 | 2017-02-08 | 厦门易名科技股份有限公司 | 基于并发处理的whois查询方法及装置 |
CN106503020A (zh) * | 2015-09-08 | 2017-03-15 | 阿里巴巴集团控股有限公司 | 日志数据处理方法及装置 |
CN106528754A (zh) * | 2016-10-28 | 2017-03-22 | 努比亚技术有限公司 | 云服务中已回收数据的处理装置和方法 |
CN106681864A (zh) * | 2016-12-30 | 2017-05-17 | 华为技术有限公司 | 一种数据追赶方法、集群和系统 |
CN106846559A (zh) * | 2016-12-20 | 2017-06-13 | 杭州古北电子科技有限公司 | 一种智能小区门禁系统 |
CN106855821A (zh) * | 2015-12-08 | 2017-06-16 | 阿里巴巴集团控股有限公司 | 一种分布式事务处理方法及装置 |
CN107403003A (zh) * | 2017-07-21 | 2017-11-28 | 南京智网云联信息科技有限公司 | 一种分布式副本文件仲裁方法 |
CN107465725A (zh) * | 2017-07-20 | 2017-12-12 | 中国银行股份有限公司 | 基于客户信息控制系统的异构长事务处理系统及方法 |
CN107528912A (zh) * | 2017-09-11 | 2017-12-29 | 金蝶软件(中国)有限公司 | 一种自动实现分布式事务处理的方法、系统及相关装置 |
CN107577678A (zh) * | 2016-06-30 | 2018-01-12 | 华为技术有限公司 | 处理数据库事务的方法、客户端和服务器 |
CN107784055A (zh) * | 2017-02-17 | 2018-03-09 | 平安科技(深圳)有限公司 | 基于非关系型数据库的事务处理方法和装置 |
CN107797850A (zh) * | 2016-08-30 | 2018-03-13 | 阿里巴巴集团控股有限公司 | 分布式事务处理的方法、装置与系统 |
CN107818009A (zh) * | 2017-10-17 | 2018-03-20 | 北京人大金仓信息技术股份有限公司 | 一种基于分布式事务的代理处理的方法 |
CN107918620A (zh) * | 2016-10-10 | 2018-04-17 | 阿里巴巴集团控股有限公司 | 一种数据库的写入方法及装置、电子设备 |
CN107977376A (zh) * | 2016-10-24 | 2018-05-01 | 腾讯科技(深圳)有限公司 | 分布式数据库系统及事务处理方法 |
CN108089926A (zh) * | 2018-01-08 | 2018-05-29 | 马上消费金融股份有限公司 | 一种获取分布式锁的方法、装置、设备及可读存储介质 |
CN108156175A (zh) * | 2018-01-22 | 2018-06-12 | 成都汇智远景科技有限公司 | 云计算平台下对共享存储信息的访问方法 |
CN108205464A (zh) * | 2016-12-20 | 2018-06-26 | 阿里巴巴集团控股有限公司 | 一种数据库死锁的处理方法、装置和数据库系统 |
CN108337911A (zh) * | 2015-04-01 | 2018-07-27 | 起元技术有限责任公司 | 在分布式计算系统中处理数据库事务 |
CN108491252A (zh) * | 2018-03-13 | 2018-09-04 | 万惠投资管理有限公司 | 分布式事务处理方法及分布式系统 |
CN108829709A (zh) * | 2018-05-03 | 2018-11-16 | 广州金山安全管理系统技术有限公司 | 分布式数据库管理方法、装置、存储介质和处理器 |
WO2018223789A1 (zh) * | 2017-06-05 | 2018-12-13 | 中兴通讯股份有限公司 | 事务标识操作方法、系统和计算机可读存储介质 |
CN109033364A (zh) * | 2018-07-26 | 2018-12-18 | 郑州云海信息技术有限公司 | 一种处理分布式事务的方法、配置中心及节点 |
WO2018227703A1 (zh) * | 2017-06-16 | 2018-12-20 | 深圳市盛路物联通讯技术有限公司 | 物联网中消息传递方法和装置 |
CN109074387A (zh) * | 2016-04-18 | 2018-12-21 | 亚马逊科技公司 | 分布式数据存储区中的版本化分层数据结构 |
CN109165192A (zh) * | 2018-06-27 | 2019-01-08 | 阿里巴巴集团控股有限公司 | 一种数据存储方法及装置、一种计算设备及存储介质 |
CN109240840A (zh) * | 2017-07-11 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 集群系统的容灾方法、装置和机器可读介质 |
CN109343938A (zh) * | 2018-09-07 | 2019-02-15 | 福建福诺移动通信技术有限公司 | 一种事件统计方法 |
CN109408201A (zh) * | 2017-08-18 | 2019-03-01 | 中国银联股份有限公司 | 基于分布式数据库的事务管理方法 |
WO2019047752A1 (zh) * | 2017-09-08 | 2019-03-14 | 阿里巴巴集团控股有限公司 | 非关系型数据库事务处理方法、装置及电子设备 |
CN109471735A (zh) * | 2018-11-14 | 2019-03-15 | 常熟理工学院 | 分布式集中控制系统的现场数据信息安全控制方法及系统 |
CN109597690A (zh) * | 2018-11-14 | 2019-04-09 | 浙江远算云计算有限公司 | 一种高性能云计算云爆发同步机制 |
CN109783578A (zh) * | 2019-01-09 | 2019-05-21 | 腾讯科技(深圳)有限公司 | 数据读取方法、装置、电子设备以及存储介质 |
CN109844731A (zh) * | 2016-10-13 | 2019-06-04 | 华为技术有限公司 | 分散式分布式数据库一致性 |
CN109947557A (zh) * | 2017-12-20 | 2019-06-28 | 慧与发展有限责任合伙企业 | 用于云平台的分布式生命周期管理 |
CN109977171A (zh) * | 2019-02-02 | 2019-07-05 | 中国人民大学 | 一种保证事务一致性和线性一致性的分布式系统和方法 |
CN110134704A (zh) * | 2019-05-31 | 2019-08-16 | 厦门大学嘉庚学院 | 一种基于分布式缓存的大数据集群事务实现方法 |
CN110196759A (zh) * | 2018-06-20 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 分布式事务处理方法和装置、存储介质及电子装置 |
CN110445864A (zh) * | 2019-08-11 | 2019-11-12 | 西藏宁算科技集团有限公司 | 一种云计算环境下分布式锁的实现方法及系统 |
CN110515959A (zh) * | 2019-07-25 | 2019-11-29 | 北京奇艺世纪科技有限公司 | 数据一致性实现方法、装置及可读存储介质 |
CN110879755A (zh) * | 2018-09-06 | 2020-03-13 | 百度在线网络技术(北京)有限公司 | 数据库的事务提交方法和装置 |
CN110909012A (zh) * | 2019-12-04 | 2020-03-24 | 上海达梦数据库有限公司 | 数据库对象的封锁方法、装置、设备和存储介质 |
CN111225012A (zh) * | 2018-11-27 | 2020-06-02 | 阿里巴巴集团控股有限公司 | 事务处理方法、装置和设备 |
CN111290355A (zh) * | 2020-02-27 | 2020-06-16 | 中电九天智能科技有限公司 | 记录及查找log的方法 |
CN111522631A (zh) * | 2020-03-23 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 分布式事务处理方法、装置、服务器及介质 |
CN111984388A (zh) * | 2020-08-27 | 2020-11-24 | 深圳壹账通智能科技有限公司 | 云环境分布式事务下数据一致性的协调方法及装置、介质 |
WO2020238485A1 (zh) * | 2019-05-30 | 2020-12-03 | 中兴通讯股份有限公司 | 一种数据库处理方法、装置及计算机可读存储介质 |
CN112099961A (zh) * | 2020-09-21 | 2020-12-18 | 天津神舟通用数据技术有限公司 | 一种基于锁状态缓存的分布式锁管理器的实现方法 |
CN112199391A (zh) * | 2020-09-30 | 2021-01-08 | 深圳前海微众银行股份有限公司 | 一种数据加锁检测方法、设备及计算机可读存储介质 |
CN113051042A (zh) * | 2021-01-25 | 2021-06-29 | 北京思特奇信息技术股份有限公司 | 基于zookeeper的事务实现方法及系统 |
CN113296897A (zh) * | 2020-07-21 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 一种分布式事务的处理方法、装置、设备和机器可读介质 |
CN113422790A (zh) * | 2020-06-08 | 2021-09-21 | 阿里巴巴集团控股有限公司 | 数据管理方法和装置、电子设备以及计算机可读存储介质 |
CN113486089A (zh) * | 2015-08-28 | 2021-10-08 | 斯沃尔德斯股份有限公司 | 用于网络内的分布式数据库的方法和装置 |
CN113704361A (zh) * | 2021-10-28 | 2021-11-26 | 腾讯科技(深圳)有限公司 | 事务执行方法、装置、计算设备及存储介质 |
CN113760465A (zh) * | 2020-11-16 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种事务执行方法、装置、服务器、设备和存储介质 |
CN113778632A (zh) * | 2021-09-14 | 2021-12-10 | 杭州沃趣科技股份有限公司 | 一种基于cassandra数据库的分布式事务管理方法 |
CN114064664A (zh) * | 2022-01-17 | 2022-02-18 | 北京奥星贝斯科技有限公司 | 在数据库中查询事务修改内容的方法及装置 |
US11308123B2 (en) | 2017-03-30 | 2022-04-19 | Amazon Technologies, Inc. | Selectively replicating changes to hierarchial data structures |
CN114579604A (zh) * | 2022-03-15 | 2022-06-03 | 北京梦诚科技有限公司 | 一种应用层的数据库事务实现方法和系统 |
WO2022121698A1 (zh) * | 2020-12-08 | 2022-06-16 | 中兴通讯股份有限公司 | 全局事务管理方法、系统、电子设备及存储介质 |
US11550763B2 (en) | 2017-03-30 | 2023-01-10 | Amazon Technologies, Inc. | Versioning schemas for hierarchical data structures |
CN116383227A (zh) * | 2023-06-05 | 2023-07-04 | 北京成章数据科技发展有限公司 | 一种分布式缓存和数据存储一致性处理系统及方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10606863B2 (en) * | 2017-03-15 | 2020-03-31 | International Business Machines Corporation | Monotonic transactions in a multi-master database with loosely coupled nodes |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102122288A (zh) * | 2010-12-21 | 2011-07-13 | 北京高森明晨信息科技有限公司 | 一种并发控制的方法及系统 |
US20120047165A1 (en) * | 2010-10-26 | 2012-02-23 | ParElastic Corporation | Process architecture for elastic stateful shared nothing system |
-
2012
- 2012-06-29 CN CN201210228114.2A patent/CN102831156B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120047165A1 (en) * | 2010-10-26 | 2012-02-23 | ParElastic Corporation | Process architecture for elastic stateful shared nothing system |
CN102122288A (zh) * | 2010-12-21 | 2011-07-13 | 北京高森明晨信息科技有限公司 | 一种并发控制的方法及系统 |
Non-Patent Citations (2)
Title |
---|
付艳艳等: "分布式短事务系统中提交协议的研究", 《计算机科学》, vol. 38, no. 8, 31 August 2011 (2011-08-31) * |
肖迎元等: "分布式实时事务一阶段实时提交", 《华中科技大学学报(自然科学版)》, vol. 34, no. 3, 31 March 2006 (2006-03-31), pages 1 - 4 * |
Cited By (127)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103885986A (zh) * | 2012-12-21 | 2014-06-25 | 阿里巴巴集团控股有限公司 | 主备数据库同步的方法和装置 |
CN103885986B (zh) * | 2012-12-21 | 2017-12-19 | 阿里巴巴集团控股有限公司 | 主备数据库同步的方法和装置 |
CN103164219B (zh) * | 2013-01-08 | 2015-09-23 | 华中科技大学 | 去中心化架构中使用多类型副本的分布式事务处理系统 |
CN103164219A (zh) * | 2013-01-08 | 2013-06-19 | 华中科技大学 | 去中心化架构中使用多类型副本的分布式事务处理系统 |
CN103973725B (zh) * | 2013-01-28 | 2018-08-24 | 阿里巴巴集团控股有限公司 | 一种分布式协同方法和协同器 |
CN103973725A (zh) * | 2013-01-28 | 2014-08-06 | 阿里巴巴集团控股有限公司 | 一种分布式协同方法和协同器 |
CN103152424A (zh) * | 2013-03-15 | 2013-06-12 | 珠海市君天电子科技有限公司 | 一种在云端自动控制解决方案的方法 |
CN103312549A (zh) * | 2013-06-26 | 2013-09-18 | 华为技术有限公司 | 一种事务管理方法及装置和系统 |
CN103312549B (zh) * | 2013-06-26 | 2016-08-24 | 华为技术有限公司 | 一种事务管理方法及装置和系统 |
WO2015043305A1 (zh) * | 2013-09-30 | 2015-04-02 | 华为技术有限公司 | 元数据处理方法及元数据服务器 |
CN104657364A (zh) * | 2013-11-18 | 2015-05-27 | 华为技术有限公司 | 一种日志结构数据库系统查询请求消息处理方法及装置 |
CN104657364B (zh) * | 2013-11-18 | 2018-02-23 | 华为技术有限公司 | 一种日志结构数据库系统查询请求消息处理方法及装置 |
WO2015070663A1 (zh) * | 2013-11-18 | 2015-05-21 | 华为技术有限公司 | 一种日志结构数据库系统查询请求消息处理方法及装置 |
CN103729405B (zh) * | 2013-12-06 | 2017-02-08 | 杭州安恒信息技术有限公司 | 根据时间片分布数据确定事务流经渠道的对应关系的方法 |
CN103729405A (zh) * | 2013-12-06 | 2014-04-16 | 杭州安恒信息技术有限公司 | 根据时间片分布数据确定事务流经渠道的对应关系的方法 |
CN104793988A (zh) * | 2014-01-20 | 2015-07-22 | 阿里巴巴集团控股有限公司 | 跨数据库分布式事务的实现方法和装置 |
CN104793988B (zh) * | 2014-01-20 | 2019-01-22 | 阿里巴巴集团控股有限公司 | 跨数据库分布式事务的实现方法和装置 |
CN104954411A (zh) * | 2014-03-31 | 2015-09-30 | 腾讯科技(深圳)有限公司 | 分布式系统共享网络资源的方法、终端及系统 |
CN106462594A (zh) * | 2014-04-10 | 2017-02-22 | 华为技术有限公司 | 一种大规模并行处理数据库的系统和方法 |
US9779128B2 (en) | 2014-04-10 | 2017-10-03 | Futurewei Technologies, Inc. | System and method for massively parallel processing database |
EP3117349A4 (en) * | 2014-04-10 | 2017-03-15 | Huawei Technologies Co., Ltd. | System and method for massively parallel processing database |
WO2015154694A1 (en) * | 2014-04-10 | 2015-10-15 | Huawei Technologies Co., Ltd. | System and method for massively parallel processing database |
CN105574026A (zh) * | 2014-10-15 | 2016-05-11 | 腾讯科技(深圳)有限公司 | 非关系型数据库支持事务的方法及装置 |
CN104572917A (zh) * | 2014-12-29 | 2015-04-29 | 成都致云科技有限公司 | 数据锁定方法、装置及分布式存储系统 |
CN104580525A (zh) * | 2015-02-03 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种基于事务模型的集群部署系统 |
CN106033437B (zh) * | 2015-03-13 | 2020-01-10 | 阿里巴巴集团控股有限公司 | 一种分布式事务处理方法及系统 |
CN106033437A (zh) * | 2015-03-13 | 2016-10-19 | 阿里巴巴集团控股有限公司 | 一种分布式事务处理方法及系统 |
CN104767737A (zh) * | 2015-03-23 | 2015-07-08 | 贵阳朗玛信息技术股份有限公司 | 插入式事务管理器及其应用方法 |
CN108337911A (zh) * | 2015-04-01 | 2018-07-27 | 起元技术有限责任公司 | 在分布式计算系统中处理数据库事务 |
CN106294512A (zh) * | 2015-06-11 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种处理关系型数据库中ddl语句的方法与设备 |
CN113486089A (zh) * | 2015-08-28 | 2021-10-08 | 斯沃尔德斯股份有限公司 | 用于网络内的分布式数据库的方法和装置 |
CN106503020A (zh) * | 2015-09-08 | 2017-03-15 | 阿里巴巴集团控股有限公司 | 日志数据处理方法及装置 |
CN106855821A (zh) * | 2015-12-08 | 2017-06-16 | 阿里巴巴集团控股有限公司 | 一种分布式事务处理方法及装置 |
CN105786595B (zh) * | 2016-02-29 | 2019-04-23 | 浪潮通用软件有限公司 | 一种两段式提交的事务控制方法 |
CN105786595A (zh) * | 2016-02-29 | 2016-07-20 | 浪潮通用软件有限公司 | 一种两段式提交的事务控制方法 |
US11157517B2 (en) | 2016-04-18 | 2021-10-26 | Amazon Technologies, Inc. | Versioned hierarchical data structures in a distributed data store |
CN109074387B (zh) * | 2016-04-18 | 2022-05-13 | 亚马逊科技公司 | 分布式数据存储区中的版本化分层数据结构 |
CN109074387A (zh) * | 2016-04-18 | 2018-12-21 | 亚马逊科技公司 | 分布式数据存储区中的版本化分层数据结构 |
CN105955804A (zh) * | 2016-04-22 | 2016-09-21 | 星环信息科技(上海)有限公司 | 一种处理分布式事务的方法与设备 |
CN105955804B (zh) * | 2016-04-22 | 2018-06-05 | 星环信息科技(上海)有限公司 | 一种处理分布式事务的方法与设备 |
CN106126583A (zh) * | 2016-06-20 | 2016-11-16 | 环球大数据科技有限公司 | 一种分布式图数据库的集群强一致性处理方法及系统 |
CN107577678A (zh) * | 2016-06-30 | 2018-01-12 | 华为技术有限公司 | 处理数据库事务的方法、客户端和服务器 |
CN106385469A (zh) * | 2016-08-25 | 2017-02-08 | 厦门易名科技股份有限公司 | 基于并发处理的whois查询方法及装置 |
CN106385469B (zh) * | 2016-08-25 | 2019-08-13 | 厦门易名科技股份有限公司 | 基于并发处理的whois查询方法及装置 |
CN107797850A (zh) * | 2016-08-30 | 2018-03-13 | 阿里巴巴集团控股有限公司 | 分布式事务处理的方法、装置与系统 |
CN107797850B (zh) * | 2016-08-30 | 2021-09-21 | 阿里巴巴集团控股有限公司 | 分布式事务处理的方法、装置与系统 |
US11640384B2 (en) | 2016-10-10 | 2023-05-02 | Alibaba Group Holding Limited | Database processing method, apparatus, and electronic device |
CN107918620A (zh) * | 2016-10-10 | 2018-04-17 | 阿里巴巴集团控股有限公司 | 一种数据库的写入方法及装置、电子设备 |
CN109844731A (zh) * | 2016-10-13 | 2019-06-04 | 华为技术有限公司 | 分散式分布式数据库一致性 |
CN107977376B (zh) * | 2016-10-24 | 2020-07-07 | 腾讯科技(深圳)有限公司 | 分布式数据库系统及事务处理方法 |
US11243920B2 (en) | 2016-10-24 | 2022-02-08 | Tencent Technology (Shenzhen) Company Limited | Distributed database system, transaction processing method, lock server and storage medium |
CN107977376A (zh) * | 2016-10-24 | 2018-05-01 | 腾讯科技(深圳)有限公司 | 分布式数据库系统及事务处理方法 |
CN106528754A (zh) * | 2016-10-28 | 2017-03-22 | 努比亚技术有限公司 | 云服务中已回收数据的处理装置和方法 |
CN106846559A (zh) * | 2016-12-20 | 2017-06-13 | 杭州古北电子科技有限公司 | 一种智能小区门禁系统 |
CN108205464A (zh) * | 2016-12-20 | 2018-06-26 | 阿里巴巴集团控股有限公司 | 一种数据库死锁的处理方法、装置和数据库系统 |
CN106681864A (zh) * | 2016-12-30 | 2017-05-17 | 华为技术有限公司 | 一种数据追赶方法、集群和系统 |
CN107784055A (zh) * | 2017-02-17 | 2018-03-09 | 平安科技(深圳)有限公司 | 基于非关系型数据库的事务处理方法和装置 |
US11308123B2 (en) | 2017-03-30 | 2022-04-19 | Amazon Technologies, Inc. | Selectively replicating changes to hierarchial data structures |
US11550763B2 (en) | 2017-03-30 | 2023-01-10 | Amazon Technologies, Inc. | Versioning schemas for hierarchical data structures |
US11860895B2 (en) | 2017-03-30 | 2024-01-02 | Amazon Technologies, Inc. | Selectively replicating changes to hierarchial data structures |
WO2018223789A1 (zh) * | 2017-06-05 | 2018-12-13 | 中兴通讯股份有限公司 | 事务标识操作方法、系统和计算机可读存储介质 |
WO2018227703A1 (zh) * | 2017-06-16 | 2018-12-20 | 深圳市盛路物联通讯技术有限公司 | 物联网中消息传递方法和装置 |
CN109240840A (zh) * | 2017-07-11 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 集群系统的容灾方法、装置和机器可读介质 |
CN107465725A (zh) * | 2017-07-20 | 2017-12-12 | 中国银行股份有限公司 | 基于客户信息控制系统的异构长事务处理系统及方法 |
CN107403003A (zh) * | 2017-07-21 | 2017-11-28 | 南京智网云联信息科技有限公司 | 一种分布式副本文件仲裁方法 |
CN109408201A (zh) * | 2017-08-18 | 2019-03-01 | 中国银联股份有限公司 | 基于分布式数据库的事务管理方法 |
CN109408201B (zh) * | 2017-08-18 | 2022-07-12 | 中国银联股份有限公司 | 基于分布式数据库的事务管理方法 |
CN110019443B (zh) * | 2017-09-08 | 2023-08-11 | 阿里巴巴集团控股有限公司 | 非关系型数据库事务处理方法、装置及电子设备 |
WO2019047752A1 (zh) * | 2017-09-08 | 2019-03-14 | 阿里巴巴集团控股有限公司 | 非关系型数据库事务处理方法、装置及电子设备 |
US11620277B2 (en) | 2017-09-08 | 2023-04-04 | Alibaba Group Holding Limited | Transaction processing at non-relational databases |
CN110019443A (zh) * | 2017-09-08 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 非关系型数据库事务处理方法、装置及电子设备 |
CN107528912A (zh) * | 2017-09-11 | 2017-12-29 | 金蝶软件(中国)有限公司 | 一种自动实现分布式事务处理的方法、系统及相关装置 |
CN107818009A (zh) * | 2017-10-17 | 2018-03-20 | 北京人大金仓信息技术股份有限公司 | 一种基于分布式事务的代理处理的方法 |
CN109947557B (zh) * | 2017-12-20 | 2023-09-29 | 慧与发展有限责任合伙企业 | 用于云平台的分布式生命周期管理 |
CN109947557A (zh) * | 2017-12-20 | 2019-06-28 | 慧与发展有限责任合伙企业 | 用于云平台的分布式生命周期管理 |
CN108089926A (zh) * | 2018-01-08 | 2018-05-29 | 马上消费金融股份有限公司 | 一种获取分布式锁的方法、装置、设备及可读存储介质 |
CN108156175B (zh) * | 2018-01-22 | 2021-05-14 | 中证鹏元资信评估股份有限公司 | 云计算平台下对共享存储信息的访问方法 |
CN108156175A (zh) * | 2018-01-22 | 2018-06-12 | 成都汇智远景科技有限公司 | 云计算平台下对共享存储信息的访问方法 |
CN108491252A (zh) * | 2018-03-13 | 2018-09-04 | 万惠投资管理有限公司 | 分布式事务处理方法及分布式系统 |
CN108491252B (zh) * | 2018-03-13 | 2022-03-22 | 万惠投资管理有限公司 | 分布式事务处理方法及分布式系统 |
CN108829709A (zh) * | 2018-05-03 | 2018-11-16 | 广州金山安全管理系统技术有限公司 | 分布式数据库管理方法、装置、存储介质和处理器 |
CN110196759B (zh) * | 2018-06-20 | 2022-12-06 | 腾讯科技(深圳)有限公司 | 分布式事务处理方法和装置、存储介质及电子装置 |
CN110196759A (zh) * | 2018-06-20 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 分布式事务处理方法和装置、存储介质及电子装置 |
US11803538B2 (en) | 2018-06-20 | 2023-10-31 | Tencent Technology (Shenzhen) Company Limited | Distributed transaction processing method and related apparatus |
CN109165192A (zh) * | 2018-06-27 | 2019-01-08 | 阿里巴巴集团控股有限公司 | 一种数据存储方法及装置、一种计算设备及存储介质 |
CN109033364A (zh) * | 2018-07-26 | 2018-12-18 | 郑州云海信息技术有限公司 | 一种处理分布式事务的方法、配置中心及节点 |
CN110879755A (zh) * | 2018-09-06 | 2020-03-13 | 百度在线网络技术(北京)有限公司 | 数据库的事务提交方法和装置 |
CN109343938A (zh) * | 2018-09-07 | 2019-02-15 | 福建福诺移动通信技术有限公司 | 一种事件统计方法 |
CN109597690A (zh) * | 2018-11-14 | 2019-04-09 | 浙江远算云计算有限公司 | 一种高性能云计算云爆发同步机制 |
CN109471735A (zh) * | 2018-11-14 | 2019-03-15 | 常熟理工学院 | 分布式集中控制系统的现场数据信息安全控制方法及系统 |
CN111225012A (zh) * | 2018-11-27 | 2020-06-02 | 阿里巴巴集团控股有限公司 | 事务处理方法、装置和设备 |
CN109783578B (zh) * | 2019-01-09 | 2022-10-21 | 腾讯科技(深圳)有限公司 | 数据读取方法、装置、电子设备以及存储介质 |
CN109783578A (zh) * | 2019-01-09 | 2019-05-21 | 腾讯科技(深圳)有限公司 | 数据读取方法、装置、电子设备以及存储介质 |
CN109977171B (zh) * | 2019-02-02 | 2023-04-28 | 中国人民大学 | 一种保证事务一致性和线性一致性的分布式系统和方法 |
CN109977171A (zh) * | 2019-02-02 | 2019-07-05 | 中国人民大学 | 一种保证事务一致性和线性一致性的分布式系统和方法 |
WO2020238485A1 (zh) * | 2019-05-30 | 2020-12-03 | 中兴通讯股份有限公司 | 一种数据库处理方法、装置及计算机可读存储介质 |
CN110134704A (zh) * | 2019-05-31 | 2019-08-16 | 厦门大学嘉庚学院 | 一种基于分布式缓存的大数据集群事务实现方法 |
CN110515959B (zh) * | 2019-07-25 | 2022-09-20 | 北京奇艺世纪科技有限公司 | 数据一致性实现方法、装置及可读存储介质 |
CN110515959A (zh) * | 2019-07-25 | 2019-11-29 | 北京奇艺世纪科技有限公司 | 数据一致性实现方法、装置及可读存储介质 |
CN110445864B (zh) * | 2019-08-11 | 2022-04-08 | 西藏宁算科技集团有限公司 | 一种云计算环境下分布式锁的实现方法及系统 |
CN110445864A (zh) * | 2019-08-11 | 2019-11-12 | 西藏宁算科技集团有限公司 | 一种云计算环境下分布式锁的实现方法及系统 |
CN110909012B (zh) * | 2019-12-04 | 2020-09-04 | 上海达梦数据库有限公司 | 数据库对象的封锁方法、装置、设备和存储介质 |
CN110909012A (zh) * | 2019-12-04 | 2020-03-24 | 上海达梦数据库有限公司 | 数据库对象的封锁方法、装置、设备和存储介质 |
CN111290355B (zh) * | 2020-02-27 | 2021-06-22 | 中电九天智能科技有限公司 | 记录及查找log的方法 |
CN111290355A (zh) * | 2020-02-27 | 2020-06-16 | 中电九天智能科技有限公司 | 记录及查找log的方法 |
CN111522631B (zh) * | 2020-03-23 | 2024-02-06 | 支付宝(杭州)信息技术有限公司 | 分布式事务处理方法、装置、服务器及介质 |
CN111522631A (zh) * | 2020-03-23 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 分布式事务处理方法、装置、服务器及介质 |
CN113422790A (zh) * | 2020-06-08 | 2021-09-21 | 阿里巴巴集团控股有限公司 | 数据管理方法和装置、电子设备以及计算机可读存储介质 |
CN113296897A (zh) * | 2020-07-21 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 一种分布式事务的处理方法、装置、设备和机器可读介质 |
CN113296897B (zh) * | 2020-07-21 | 2023-12-26 | 阿里巴巴集团控股有限公司 | 一种分布式事务的处理方法、装置、设备和机器可读介质 |
CN111984388A (zh) * | 2020-08-27 | 2020-11-24 | 深圳壹账通智能科技有限公司 | 云环境分布式事务下数据一致性的协调方法及装置、介质 |
CN112099961A (zh) * | 2020-09-21 | 2020-12-18 | 天津神舟通用数据技术有限公司 | 一种基于锁状态缓存的分布式锁管理器的实现方法 |
CN112099961B (zh) * | 2020-09-21 | 2024-02-06 | 天津神舟通用数据技术有限公司 | 一种基于锁状态缓存的分布式锁管理器的实现方法 |
CN112199391B (zh) * | 2020-09-30 | 2024-02-23 | 深圳前海微众银行股份有限公司 | 一种数据加锁检测方法、设备及计算机可读存储介质 |
CN112199391A (zh) * | 2020-09-30 | 2021-01-08 | 深圳前海微众银行股份有限公司 | 一种数据加锁检测方法、设备及计算机可读存储介质 |
CN113760465A (zh) * | 2020-11-16 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种事务执行方法、装置、服务器、设备和存储介质 |
WO2022121698A1 (zh) * | 2020-12-08 | 2022-06-16 | 中兴通讯股份有限公司 | 全局事务管理方法、系统、电子设备及存储介质 |
CN113051042B (zh) * | 2021-01-25 | 2024-04-19 | 北京思特奇信息技术股份有限公司 | 基于zookeeper的事务实现方法及系统 |
CN113051042A (zh) * | 2021-01-25 | 2021-06-29 | 北京思特奇信息技术股份有限公司 | 基于zookeeper的事务实现方法及系统 |
CN113778632A (zh) * | 2021-09-14 | 2021-12-10 | 杭州沃趣科技股份有限公司 | 一种基于cassandra数据库的分布式事务管理方法 |
CN113704361A (zh) * | 2021-10-28 | 2021-11-26 | 腾讯科技(深圳)有限公司 | 事务执行方法、装置、计算设备及存储介质 |
CN114064664A (zh) * | 2022-01-17 | 2022-02-18 | 北京奥星贝斯科技有限公司 | 在数据库中查询事务修改内容的方法及装置 |
WO2023134518A1 (zh) * | 2022-01-17 | 2023-07-20 | 北京奥星贝斯科技有限公司 | 在数据库中查询事务修改内容的方法及装置 |
CN114579604B (zh) * | 2022-03-15 | 2022-09-20 | 北京梦诚科技有限公司 | 一种应用层的数据库事务实现方法和系统 |
CN114579604A (zh) * | 2022-03-15 | 2022-06-03 | 北京梦诚科技有限公司 | 一种应用层的数据库事务实现方法和系统 |
CN116383227A (zh) * | 2023-06-05 | 2023-07-04 | 北京成章数据科技发展有限公司 | 一种分布式缓存和数据存储一致性处理系统及方法 |
CN116383227B (zh) * | 2023-06-05 | 2023-08-15 | 北京成章数据科技发展有限公司 | 一种分布式缓存和数据存储一致性处理系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102831156B (zh) | 2014-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102831156B (zh) | 一种云计算平台上的分布式事务处理方法 | |
CN107977376B (zh) | 分布式数据库系统及事务处理方法 | |
US5872969A (en) | System and method for efficiently synchronizing cache and persistent data in an object oriented transaction processing system | |
US6513056B1 (en) | System and method for efficiently synchronizing cache and persistant data in an object oriented transaction processing system | |
US9779128B2 (en) | System and method for massively parallel processing database | |
CN101650741B (zh) | 一种分布式全文检索的索引实时更新的方法和系统 | |
US7689560B2 (en) | Persistent data storage techniques | |
CN103092903B (zh) | 数据库日志并行化 | |
RU2591169C2 (ru) | Система управления базой данных | |
US9189536B2 (en) | Maintaining a relationship between two different items of data | |
JP5841177B2 (ja) | マルチサーバ予約システムにおける同期化メカニズムのための方法及びシステム | |
US20130117307A1 (en) | Snapshot isolation support for distributed query processing in a shared disk database cluster | |
US20100169284A1 (en) | Distributed transactional recovery system and method | |
US20070143299A1 (en) | Commitment of transactions in a distributed system | |
CN104793988A (zh) | 跨数据库分布式事务的实现方法和装置 | |
CN109923534A (zh) | 对具有未提交事务的数据库记录的多版本并发控制 | |
US20130074083A1 (en) | System and method for handling storage events in a distributed data grid | |
WO2001084338A2 (en) | Cluster configuration repository | |
CN101170416A (zh) | 网络数据存储系统及其数据访问方法 | |
US20110055151A1 (en) | Processing Database Operation Requests | |
CN112039970B (zh) | 一种分布式业务锁服务方法、服务端、系统及存储介质 | |
JP5331050B2 (ja) | データ同期システム、データ同期方法、情報処理装置、情報処理方法、およびプログラム | |
EP3377970B1 (en) | Multi-version removal manager | |
Wu et al. | FlexChain: an elastic disaggregated blockchain | |
CN112632093A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141231 Termination date: 20160629 |