CN105684377A - 一种创建支持mpp数据库中的可重读隔离级别的分布式事务管理器的系统和方法 - Google Patents
一种创建支持mpp数据库中的可重读隔离级别的分布式事务管理器的系统和方法 Download PDFInfo
- Publication number
- CN105684377A CN105684377A CN201480058960.1A CN201480058960A CN105684377A CN 105684377 A CN105684377 A CN 105684377A CN 201480058960 A CN201480058960 A CN 201480058960A CN 105684377 A CN105684377 A CN 105684377A
- Authority
- CN
- China
- Prior art keywords
- affairs
- node
- snapshot
- clustered
- section point
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Quality & Reliability (AREA)
Abstract
实施例提供了在不包括集中式组件的大规模并行处理(massively?parallel?processing,MPP)数据库系统中支持可重读隔离等级的分布式事务管理器。在开始事务之前,第一节点识别参与所述事务的第二节点,向所述第二节点请求所述第二节点上当前事务的快照。从所述第二节点接收到所述快照之后,所述第一节点将所述第二节点上事务的快照和所述第一节点上的当前事务的快照合并,以得到协调快照。然后,所述第一节点将所述协调快照发送至所述第二节点,使用所述协调快照开始所述事务。然后,根据所述协调快照在所述第二节点上开始子事务。一旦结束所述事务和所述子事务,所述第一节点和所述第二节点执行两阶段提交(two?phase?commit,2PC)协议。
Description
相关申请案交叉申请
本申请要求于2013年10月31日递交的发明名称为“一种创建支持MPP数据库中的可重读隔离级别的分布式事务管理器的系统和方法”申请号为14/068,466的美国专利申请的在先申请优先权,该在先申请的内容以引入的方式并入本文。
技术领域
本发明总体涉及数据库系统,尤其涉及一种创建支持大规模并行处理数据库中的可重读隔离级别的分布式事务管理器的系统和方法。
背景技术
大规模并行处理(massivelyparallelprocessing,MPP)数据库是一种大量处理器在其中并行地进行一套计算的数据库。在MPP系统中,多个处理器以协作的方式处理程序,其中,每一个处理器处理所述程序的不同部分和/或不同数据。MPP系统的计算资源是分布式的,运行在不同的物理/虚拟节点上。MPP数据库系统可以基于无共享(shared-nothing,SN)或共享磁盘(shareddisk,SD)架构,其中,数据库中的表被划分成多个分区分配至不同的处理节点。对于数据库查询,根据数据分布和优化的执行方案划分每次查询的任务,将其分配至所述处理节点。每个处理节点中的处理实体仅管理自己部分的数据。但是,在执行过程中,所述处理实体可以相互进行通信,以交换必要信息。
MPP数据库中的事务会在一个或多个互联的计算机系统中更新或选择数据。事务是动作集合的逻辑分组,包括查询,例如,选择数据、更新数据、插入数据以及删除数据等。涉及多个节点的事务系统需要包括当前活动事务的全局信息。这种信息通常称为事务“快照”。这可以通过为所有节点创建全局跟踪快照的集中组件实现。但是,集中组件带来如单点故障(singlepointoffailure,SPOF)和扩展性有限等问题。需要一种处理MPP数据库中快照的改进方法。
发明内容
根据一个实施例,一种大规模并行处理(massivelyparallelprocessing,MPP)数据库系统集群中的处理节点间进行事务处理的方法,该方法用于第一节点,该方法包括:在开始事务之前,识别参与所述事务的第二节点;向所述第二节点请求所述第二节点上当前事务的快照。所述方法还包括:从所述第二节点接收所述第二节点上当前事务的快照;将从所述第二节点上接收的事务的快照与所述第一节点上的当前事务合并,以得到协调快照。然后,将所述协调快照从所述第一节点发送至所述第二节点。然后,所述第一节点使用所述协调快照开始所述事务。
根据另一个实施例,一种MPP数据库系统集群中的处理节点间进行事务处理的方法,该方法用于第一节点,该方法包括:接收关于所述第一节点上当前事务的快照的请求。所述请求是在开始第二节点上的事务之前并在识别出待参与所述事务的所述第一节点的情况下从所述MPP系统的所述第二节点接收的。所述方法还包括:向所述第二节点发送所述第一节点上当前事务的快照;从所述第二节点接收协调快照,其中,所述协调快照是合并所述第一节点和所述第二节点上当前事务的快照得到的。然后,在所述第二节点上事务的触发下,在所述第一节点上开始子事务。所述第一节点根据所述协调快照进行所述子事务。一旦结束所述子事务,所述第一节点从所述第二节点上为提交命令准备所述子事务,在所述第一节点和所述第二节点间执行两阶段提交(twophasecommit,2PC)协议。
根据另一个实施例,一种用于在MPP数据库中进行事务处理的集群节点包括:至少一个处理器,和非瞬时性计算机可读存储介质,用于存储所述至少一个处理器执行的程序。所述程序包括用于执行以下操作的指令:在开始事务之前,识别参与所述事务的第二集群节点;向所述第二集群节点请求所述第二集群节点上当前事务的快照。所述程序还包括用于执行以下操作的指令:从所述第二集群节点接收所述第二集群节点上当前事务的快照;将从所述第二集群节点上接收的当前事务的快照与所述集群节点上当前事务合并,以得到协调快照。所述集群节点还用于将所述协调快照发送至所述第二集群节点,使用所述协调快照开始所述事务。
根据又一个实施例,一种参与MPP数据库中的事务处理的集群节点包括:至少一个处理器,和非瞬时性计算机可读存储介质,用于存储所述至少一个处理器执行的程序。所述程序包括执行以下操作的指令:接收关于所述集群节点上当前事务的快照的请求。所述请求是在开始第二集群节点上的事务之前并在识别出待参与所述事务的所述集群节点的情况下从所述第二集群节点接收的。所述程序还包括执行以下操作的指令:向所述第二节点发送所述第一节点上当前事务的快照;从所述第二集群节点接收协调快照,其中,所述协调快照是合并所述集群节点和所述第二集群节点上当前事务的快照得到的。所述集群节点还用于:开始由所述第二集群节点上的事务触发的子事务;根据所述协调快照进行所述子事务。一旦结束所述子事务,所述集群节点从所述第二集群节点上为提交命令准备所述子事务;在所述集群节点和所述第二集群节点间执行两阶段提交(twophasecommit,2PC)协议。
上述宽泛地概括了本发明实施例的特征,以便能够更好地理解本发明以下详细描述。以下将对本发明实施例的其他特征与优点即本发明权利要求书的主题进行描述。本领域的技术人员应当理解,所公开的概念和特定实施例易被用作修改或设计其他实现与本发明相同的目的的结构或过程的基础。本领域的技术人员还应当意识到,这种等效构造不脱离所附权利要求书所阐述的本发明的精神和范围。
附图说明
为了更完整地理解本发明及其优点,现在参考下文合并附图进行的描述,其中:
图1示出了大规模并行处理(massivelyparallelprocessing,MPP)数据库系统的示例;
图2示出了在MPP数据库系统中使用父快照执行事务的方法的实施例;
图3示出了在MPP数据库系统中使用父快照进行查询的方法的实施例;
图4示出了使用两阶段提交协议执行事务的方法的实施例;
图5示出了通过包括在本发明实施例内的远端节点上事务的所有子事务生成和维护全局ID的方法的实施例;
图6示出了在本地节点上的事务中执行每一个语句或查询的方法的实施例;
图7示出了不一致事务状态的示例;
图8示出了快照协调的方法的实施例;
图9示出了展示可以用于根据实施例实现,例如,此处所描述的设备和方法的计算平台的方框图。
除非另有指示,否则不同图中的对应标号和符号通常指代对应部分。绘制各图是为了清楚地说明实施例的相关方面,因此未必是按比例绘制的。
具体实施方式
首先应理解,尽管下文提供一项或多项实施例的说明性实施方案,但所公开的系统和/或方法可使用任何数目的技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实施方案、附图和技术,包括本文所说明并描述的示例性设计和实施方案,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。
事务是数据库系统的原子性、一致性、隔离性和持续性(atomicity,consistency,isolationanddurability,ACID)特性的基础。事务可以包括多个隔离等级。ACID特性确保数据库事务能被可靠地处理。原子性要求如果事务的一个部分发生故障,则整个事务发生故障,数据库保持不变。一致性保证了事务将数据库从一种有效状态转变为另一种有效状态。隔离性保证了并发执行事务的结果与连续执行事务的结果是相同的。进一步地,持续性要求一旦事务被提交,所述事务所做的所有改变是永久性的,且即使由于断电或死机等造成处理器节点不再处于瞬时状态,该事务也保持被提交的状态。
为了维护ACID特性,一个事务的步骤间的中间状态不能对其他并发事务可视。就原子性而言,如果事务发生故障,不能完成,则所有的步骤都不影响数据库,这样保证了一致的数据对所有人可视。在单一节点非分布式数据库系统中,存在数据库管理实例,其中,事务管理器通过执行严格的两阶段锁定(stricttwophaselocking,SS2PL)或快照的方式保证所述ACID特性。
数据和系统的元数据信息用于创建快照。每一行都附加了修饰该行的事务ID。快照是系统中当前活动事务的列表。通过快照,所述事务管理器在执行任何动作之前确定数据的可视性。如果所述事务ID属于所述快照列表中事务的任意一个,则数据不能是可视的,因为该事务仍是活跃的,该动作的中间状态不能对其他事务可视。
图1示出了大规模并行处理(massivelyparallelprocessing,MPP)数据库系统100的示例。所述系统100示出了四个节点的集群或组:第一节点102,第二节点104,第三节点106和第四节点108。每一个节点都可以与其他节点进行通信。为了清晰起见,示出了四个节点。但是,在实际中,计算集群可以包括更少或更多的节点。所述节点可以为用于处理包括查询的事务的任意组件。例如,所述节点可以为通过通信网络连接的计算机系统(如,服务器计算机)。
分布式事务是在两个或多个联网计算机系统中执行操作的事务。例如,用户可以在第一节点102上开始事务,本地存取数据。如果所述事务需要存取远端节点,例如,第二节点104上的数据,分布式事务能力可以用于全局处理所述事务。在集中式组件通过维护所有事务的状态的方式维护所述系统的全局快照的情况下,在所述事务开始时,或者在所述事务内的每个语句中,所述系统中的每一个事务都获得一个快照,这取决于所述事务的隔离等级。所述系统中任意事务将获取快照的请求发送至所述集中式组件,所述集中式组件为所述系统中独立节点提供快照。但是,这样的集中组件会带来如单点故障(singlepointoffailure,SPOF)和扩展性有限等问题。所述集中式组件代表SPOF,因为如果该组件因为某种原因出现故障,会阻止整个系统的运行。在任何一个以高效或高可靠性为目标的系统中这都是不利的。进一步地,所述集中式组件会限制可扩展性。因此,集中式事务管理器会是集群扩展的潜在瓶颈,会危及所述集群的高可用性。
此处提供了用于通过处理所述系统的快照的方式解决这种问题的实施例。本实施例提供了在MPP数据库系统中支持可重读隔离级别的分布式事务管理器,而不是集中式组件。该新模型是分布式模型,其中,参与事务的每一个节点都起作用,而不是使用一个集中式组件达到这个目的。所述模型使用将快照信息保留在每一个节点或处理单元本地的方法,因此,提供了分布式实现。除了支持可重读隔离级别,本实施例下面还提供了读取提交内容隔离级别。可以根据TejeswarMupparti等人于2013年3月13日提交的发明名称为“在大规模并行处理数据库中执行事务的系统和方法”申请号为13/798,344的美国临时申请中所描述的算法支持所述读取提交内容隔离级别,该申请的全部内容通过引用结合在本申请中。
虽然数据可以分散在系统中的,但这种分布对用户是透明的。对于源自一个节点的事务,如果需要非本地数据,则所述节点以透明的方式开放远端节点上同一个事务的子事务。此外,可以使用隐性两阶段提交(twophasecommit,2PC)协议满足原子性和持续性,保证工作的所有单元在逻辑上连接到同一个单元,即使数据被修改且有多个节点存取。在2PC中,事务管理器(transactionmanager,TM)为每一个资源管理器(resourcemanager,RM)分配全局事务ID。例如,父事务发生的节点作为TM,子事务节点是RM。任意节点都可以是事务管理器或资源管理器,这取决于所述事务本身。所述TM与每一个RM协调决策,进行提交或回滚。进一步地,每一个RM分配一个本地事务ID。所述TM将作为后缀的节点名添加到父事务ID中,获得所述事务所有子事务的全局事务ID,这样保证了所述全局事务ID的唯一性。例如,如果事务是在第一节点102上开始的,则所述第一节点102作为所述TM。非本地存取且位于远端节点上的数据可以在新的远端事务下执行。这些新的远端事务是同一个父事务的子事务。当客户端使用显性提交时,所述TM与所述RM协调使用2PC协议,提交或回滚所述父事务的所有子事务。
此外,为了保证事务的隔离性和一致性,父事务首先识别运行所述事务需要的所有节点。然后,在所述事务开始时,所述父事务从参与所述事务的所有远端节点收集快照信息。将所有这些快照合并,消除所有不一致,构建一个新的快照。将该新构建的快照发送回参与该事务的节点,所有的节点使用该快照执行所述事务的语句。这保证了参与所述事务的所有系统看到相同一致的数据,符合可重读隔离等级。该模型也可以扩展为序列化隔离等级。
图2示出了使用父事务快照执行事务的方法110的实施例。所述方法110可以由集群中任意节点实现,例如,MPP数据库系统100中的作为TM的任意节点。首先,在步骤112中,开始显性父事务。在步骤113中,为当前事务构建协调快照,所述协调快照包括参与事务的所有节点中所有当前活跃的事务,在步骤114中,获取下一个语句。然后,在步骤116中,确定操作类型。如果所述操作类型是提交操作,准备所有子操作,使用两阶段提交(twophasecommit,2PC)协议结束所述事务,且在步骤128中,所有改变都可视。但是,如果所述操作类型是回滚,则在所有子事务中进行回滚,所述MPP系统返回到步骤130中的前一种状态。
另一方面,如果确定所述操作类型是读取,则在步骤118中,确定所述操作是否是节点本地的操作。如果所述操作是所述节点本地的操作,则在步骤120中,执行所述读操作,所述系统返回到步骤114。如果所述读操作属于远端或者发生在远端和本地,则在步骤122中,确定所述远端节点是否已经是所述子事务的一部分。所述远端节点或RM上的子事务是父事务在源节点或TM上开始的事务,其目的是为所述父事务处理所述远端节点上的数据。如果所述远端节点已经是所述子事务的一部分,则在步骤124中,执行所述子事务,所述系统返回至步骤114。但是,如果所述远端节点并非已经是所述子事务的一部分,则在步骤125中,将所述父事务的协调快照发送至所述远端节点。接下来,在步骤126中,使用从父事务中接收的快照执行读取命令。所述远端节点不直接使用从主节点接收的所述协调快照。相反,如下所述,所述远端节点首先通过将所接收的协调快照中的主事务ID转化为本地事务ID的方式转化所接收的协调快照。然后,所述系统返回至步骤114。
类似地,如果确定所述操作类型为写操作,则在步骤132中,确定所述操作是否是节点本地的操作。如果所述操作是所述节点本地的操作,则在步骤120中,执行所述写命令,所述系统返回到步骤114。但是,如果所述操作属于远端或者发生在远端和本地,则所述系统跳转到步骤134,在步骤134中,确定所述远端节点是否已经是所述子事务的一部分。如果所述远端节点已经是所述子事务的一部分,则在步骤124中,执行所述子事务,所述系统返回至步骤114。但是,如果所述远端节点并非已经是所述子事务的一部分,则在步骤125中,将所述父事务的协调快照发送至所述远端节点。接下来,在步骤136中,使用从父事务中接收的快照开始新的子事务。然后,在步骤138中,执行所述新的子事务,所述系统返回至步骤114。在步骤114中,所述系统获得下一个语句。所述系统继续获取新的语句直到执行提交或回滚。
图3示出了在MPP数据库系统中使用父快照进行查询的方法300的实施例。所述方法300可以作为步骤124、126和138中的任意一个的一部分执行。在步骤210中,开始进行查询。在步骤220中,获取父事务的快照。然后,使用所获取的父事务的快照进行所述查询。然后,所述方法300返回至上述方法200中对应的后续步骤。
图4示出了使用包括隐性子事务的两阶段协议的方法400的实施例,所述方法400可以在MPP数据库系统的任意节点上执行。首先,第一节点N1包括非共享数据A,第二节点N2包括非共享数据B。将客户端连接发送至所述第一节点N1,开始包括事务ID200的显性事务txn1。在步骤1-001中,开始命令发起所述事务。Txn1是父事务,所述第一节点N1作为TM。在这个示例中,所述父事务参与修改和存取数据A和数据B。所述第一节点N1通过将节点的逻辑名称附加到事务ID上的方式为所述事务生成全局ID(globalID,GID)。例如,所述全局ID为将第一节点名N1添加到所述事务ID200中得到的Tnode-n1-200。保证所述GID在集群中是唯一的。当所述节点确定所述事务涉及多个节点时,所述第一节点N1生成所述全局ID。作为此协议的一部分,所述父事务发现参与所述事务的所有节点,从所述所有节点收集本地快照,计算出协调快照。在步骤1-002中,执行在本地写入数据的Write(A)命令。在所述第一节点N1上的txn1上下文中执行操作或者Write(A)命令。在步骤1-003中,执行对所述第二节点N2上的数据B进行的写操作Write(B)。对于该操作,使用从所述第一节点N1上获取的所述协调快照在所述第二节点N2上开始包括本地事务ID102的隐性事务txn2。所述事务txn2是txn1的子事务。然后,在步骤1-004中,执行Read(A),所述Read(A)是对本地数据A进行的读操作。Read(A)是在所述第一节点N1上的本地事务的上下文txn1中执行的。在步骤1-005中,对数据B执行Write(B)操作,在步骤1-006中,对数据B执行Read(B)操作。这两个操作都是在已经开启的事务txn2中在所述第二节点N2上执行的。
然后,所述客户端显性地发出提交命令。所述第一节点N1意识到自己作为TM,提交操作自动被所述第一节点N1转化为两阶段提交(twophasecommit,2PC)协议。当子事务开启时,将所述全局ID和建立子事务的请求一起发送至其他节点。至此,使用全局IDTnode-n1-200在2PC的第一阶段准备了事务txn1和txn2。最后,合并响应,所述第一节点N1发起提交的第二阶段。
图5示出了在参与的节点上事务的所有子事务中生成和维护GID的方法500的实施例。所述GID唯一地标识节点集群中每一个事务,将事务的所有独立单元结合成一个逻辑单元。在传统的事务管理器中,每一个单一的事务都由一个唯一的ID标识。在所述方法500中,每一个事务被标识为主事务ID和本地事务ID的事务对。所述主事务ID由父事务分配,所述本地事务ID是本地事务管理器分配的事务ID。如上所述,所述主事务ID是通过将节点号附加到所述本地事务ID的方式生成的GID。这保证了主事务ID在所述集群中是全局唯一的。
在所述方法500中,通过客户端连接在第一节点N5上显性地开始事务。因此,所述第一节点N5是TM,给其分配本地事务ID,例如,6364。自动生成的全局事务ID为5:6364,这是通过将节点号“5”附加到所述本地事务ID6364上的方式创建的。在步骤2-001中,所述节点N5为所有其他节点计算协调快照,其中,所述所有其他节点在本示例中是N8和N12。将所述协调快照发送回所述其他节点(N8和N12)。随后,所述协调快照用于在所述3个节点的每一个上执行单独的事务。在步骤2-002中,在<5:6364,6364>上下文中执行节点N5上的本地写操作,即,Write(N5)命令。在步骤2-003中,Write(N8)为在第二节点N8上进行的远端操作。相应地,在所述节点N8上开启隐性事务,为所述节点N8的本地事务管理器分配本地事务ID8876。这个新事务是所述父事务的子事务,从所述父事务处获得主事务ID。在本示例中,所述主事务ID为5:6364。因此,所述远端操作在<5:6364,8876>上下文中执行。
在步骤2-004中,在第三节点N12上执行的远端事务为Write(N12)操作。因此,在所述节点N12上开启了新的子事务,所述新的子事务获得与父事务相同的主事务ID:5:6364。该主事务ID,此处也称为全局事务ID,与所述节点N12的本地事务ID4387形成了对。因此,所述Write(N12)操作在<5:6364,4387>上下文中执行。在步骤2-005中,提交操作部署隐性2PC协议,以在所有3个节点(N5、N8和N12)上进行提交。所述父事务6364在节点N5上提交,子事务8876在节点N8上提交,子事务4387在节点N12上提交。虽然父事务及其子事务是在各个节点上作为独立的事务执行,但是通过为所有的事务分配一对ID,将所述事务识别为同一个全局事务的一部分,其中,主事务ID或全局事务ID是所有的事务对共有的。
在分布式环境中,可以在一个节点上执行事务的单一语句,例如,“selectcollfromtablewherecoll=data-on-local-node”。或者,可以在不止一个节点上执行单一语句,例如,“selectcollfromtablewhereTRUE”。图6示出了方法600的实施例,其中,事务中的每个查询都可以在单节点本地完整地执行。例如,选择、更新、插入以及删除操作中的任意一个仅涉及一个节点,而不是多个节点。快照是任意时刻活跃事务的列表,TM使用快照保证合适的隔离等级。所述快照有助于对当前事务隐藏其他当前活跃事务的中间状态。例如,每一个节点使用本地事务ID维护其快照,利用额外的元数据为每个本地事务ID识别对应的主事务ID或全局事务ID。
在步骤3-001中,在第一节点N1上开始带有本地事务ID100的事务txn1。在步骤3-002中,分析所述事务的语句,查找所述事务需要的所有节点。这可以通过在语句中使用的各种数据库对象(例如,表和/或分区)名实现。在其他方案中,查询内部维护的数据库目录,获知所述节点,其中,存在对应的数据库对象。例如,所述目录中包括如下信息:表T1只存在于节点N1上,表T2只存在于节点N2上,表T3存在于N1和N2上。在某些情况下,所述语句查询中使用的谓语用于查找所述节点。例如,可以假设基于某一列的值是偶数还是奇数,将表T1分为两部分。例如,因为列col的值是奇数,如SELECT*FROMT1WHERECOL=5的查询将只需要在节点N2上运行。另一方面,如果所述查询是SELECT*FROMT1WHERECOL>5,则查询分析器会识别出节点N1和N2都是本事务所需的。
一旦查找到可能参与所述事务的节点的列表,在步骤3-003中,计算全局快照,带有所述全局快照的事务语句应该在可重读隔离级别的对应节点上执行。该快照是所有参与的节点上所有活跃事务的列表,用全局/主格式表示,即,nodeID:local_transaction_number。所述节点N1获得快照<S1>122,130,且认为带有ID122和130的事务当前运行在所述节点N1上。被这些事务修改的任何数据都不能对所述事务txn1可视。类似的,所述节点N1请求所述节点N2发送其本地快照,接收<S2>372。然后,计算协调快照,其中,所述协调快照规定了参与这个事务的所有节点中的活跃事务的列表。下面解释计算协调全局快照的细节。进一步地,当在各自节点上开始本地事务时,每个节点将全局快照转化为其本地格式。在步骤3-003中,Read(A)操作与本地计算的协调快照一起运行,以确保可重读隔离。下一个步骤3-005中,Write(B)操作在所述节点N2上发起远端事务txn2(ID400),将查询语句和所述协调快照转发到所述节点N2上。所述事务txn2保证了在所述节点N2上运行的语句的可重读隔离。最后,提交操作部署隐性2PC协议,以在所述节点N1和N2上进行提交。
图7示出了不一致事务状态700的示例。在某些条件下,事务可以有不一致的状态,例如,如果所有本地快照没有被适当地协调。事务txn1涉及在第一节点N1和第二节点N2上进行的查询。在步骤4-001中,在所述第一节点N1上开始带有事务ID433的所述事务txn1。在步骤4-002中,Write(A,B)命令涉及所述第一节点N1和所述第二节点N2上数据的修改。因此,在所述第二节点N2上开启带有事务ID112的新事务txn2。该步骤一分为二,在N1上执行步骤4-003,在N2上执行步骤4-004。同时,在最终提交阶段中,在节点N1、N2以及第三节点N3上并发地执行带有ID212的另一个事务txn3。所述事务txn3已经准备好,且已在所述节点N2上提交,但还没有在所述节点N1上提交。此时,在步骤4-003中,在所述节点N1上请求快照,且给定<S1>212:因为212仍是活跃的,会在所述快照中出现。但是,在步骤4-004中,在第二节点104上给定的快照是<S2>NULL,因为212已经在所述第二节点N2上完成。如果步骤4-002中的查询Write(A,B)使用本地快照执行,则存在不一致状态,其中,事务ID212在所述第二节点N2上被提交,但在所述第一节点N1上未被提交。同样地,在同一个查询中,数据在所述节点N2上被ID212修改,但在所述节点N1中未被修改。
为了消除这种不一致,处理这些类型的场景,可以执行快照协调方法。图8示出了消除不一致的快照协调方法800的实施例,其中,所述不一致为如前述的不一致事务状态700。在步骤5-001中,在节点N1上开始事务以及需要在节点N1、N2和N3上进行的查询。在步骤5-002中,作为主节点或TM的N1分析所述查询,计算参与所述查询的节点的列表。在步骤5-003中,在开始进行查询之前,N1向所有参与的节点(语句将在其上执行的所有节点)发送快照请求消息,其中,所述所有参与的节点包括N2和N3。在步骤5-004中,所有参与的节点N2和N3获取最新的快照,将主ID格式的快照发送回N1。这意味着所有活跃事务的主事务ID都已被发送。因此,发送了每个节点上当前本地运行的事务ID的列表。在步骤5-005中,所述主节点N1从所有参与节点N2和N3接收所有的快照。在步骤5-006中,所述节点N1形成所述节点N2和N3的所有快照(ID列表)的协调列表,因此,生成了新的ID列表,所述新的ID列表是所有参与节点的列表的并集。N1从N2和N3上接收的事务ID为主事务ID格式。因此,所述新的列表包括在每个节点上本地运行的每个事务的主事务ID。
在步骤5-007中,所述主节点N1将所述协调快照发送至所述参与的节点N2和N3。一旦承载在发送给任何一个参与节点的第一查询中,所述协调快照可以被转发。在步骤5-008中,所有参与节点接收所述主ID格式的协调快照,然后将其转化为本地格式。这意味着检索了所述协调列表中的每一个主事务ID对应的本地事务ID,例如,如所述方法500中的描述。将所述协调快照从全局格式转化为本地格式涉及调节步骤,以消除不一致。在该调节步骤中,参与节点获取所述协调快照和步骤5-004中发送给所述TM的快照的交集。对于曾经不是所述交集一部分的任意一个快照,存在两种可能性:当前节点从未参与所述事务,或者节点参与过所述事务,但当前认为所述事务在其他节点上是活跃的。如果当前节点从未参与所述事务,可以忽略该事务ID。但是,如果所述节点参与了所述事务,所述节点还可以包括新事务ID,所述新事务ID作为新创建的快照的一部分,以确保如果在一个节点上没有实现事务的效果,则在其他所有的节点上都无法实现。在步骤5-009中,所述TM将所述查询发送至所述所有参与的节点。在步骤5-010中,所述参与的节点使用在步骤5-008中新创建的快照进行所述查询。最后,提交操作部署隐性2PC协议,以在节点N1、N2和N3上进行提交。
图9是处理系统270的方框图,该处理系统可以用来实现本文公开的设备和方法。特定装置可利用所有所示的组件或所述组件的仅一子集,且装置之间的集成程度可能不同。此外,设备可以包括部件的多个实例,例如多个处理单元、处理器、存储器、发射器、接收器等。处理系统可以包括配备一个或多个输入/输出设备,例如扬声器、麦克风、鼠标、触摸屏、按键、键盘、打印机、显示器等的处理单元。另外,处理系统270可配备一个或多个输出设备,例如,扬声器、打印机、显示器等。处理单元可以包括中央处理器(CPU)274、存储器276、大容量存储器设备278、视频适配器280以及连接至总线的I/O接口288。
总线可以是任意类型的若干总线架构中的一个或多个,包括存储总线或存储控制器、外设总线、视频总线等等。CPU274可包括任意类型的电子数据处理器。存储器276可包括任何类型的系统存储器,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、只读存储器(ROM)或其组合等等。在实施例中,存储器可包括在开机时使用的ROM以及执行程序时使用的程序和数据存储器的DRAM。
大容量存储器设备278可包括任意类型的存储设备,其用于存储数据、程序和其它信息,并使这些数据、程序和其它信息通过总线访问。大容量存储器设备278可包括如下项中的一种或多种:固态磁盘、硬盘驱动器、磁盘驱动器、光盘驱动器等等。
视频适配器280以及I/O接口288提供接口以将外部输入以及输出装置耦合到处理单元上。如所图示,输入以及输出装置的实例包含耦合到显示卡上的显示器以及耦合到I/O接口上的鼠标/键盘/打印机。其它装置可以耦合到处理单元上,并且可以利用额外的或较少的接口卡。举例来说,串行接口卡(未图示)可以用于为打印机提供串行接口。
处理单元还包含一个或多个网络接口284,所述网络接口284可以包括例如以太网电缆或其类似者等有线链路,和/或用以接入节点或不同网络的无线链路。网络接口284允许处理单元经由网络与远程单元通信。举例来说,网络接口可以经由一个或多个发射器/发射天线以及一个或多个接收器/接收天线提供无线通信。在一个实施例中,所述处理单元与局域网或者广域网耦合以进行数据处理以及与远端设备比如其他处理单元、因特网、远端存储设备等通信。
虽然本发明中已提供若干实施例,但应理解,在不脱离本发明的精神或范围的情况下,本发明所公开的系统和方法可以以许多其他特定形式来体现。本发明的实例应被视为说明性而非限制性的,且本发明并不限于本文本所给出的细节。例如,各种元件或部件可以在另一系统中组合或合并,或者某些特征可以省略或不实施。
此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法进行组合或合并。展示或论述为彼此耦合或直接耦合或通信的其它项也可以采用电方式、机械方式或其它方式通过某一接口、设备或中间部件间接地耦合或通信。其他变化、替代和改变的示例可以由本领域的技术人员在不脱离本文精神和所公开的范围的情况下确定。
Claims (20)
1.一种大规模并行处理(massivelyparallelprocessing,MPP)数据库系统集群中的处理节点间进行事务处理的方法,所述方法用于第一节点,其特征在于,所述方法包括:
在开始事务之前,识别参与所述事务的第二节点;
向所述第二节点请求所述第二节点上当前事务的快照;
从所述第二节点接收所述第二节点上当前事务的快照;
将从所述第二节点上接收的当前事务的快照与所述第一节点上的当前事务合并,以得到协调快照;
将所述协调快照发送至所述第二节点;
使用所述协调快照开始所述事务。
2.根据权利要求1所述的方法,其特征在于,还包括:
使用所述第一节点上的所述事务触发所述第二节点上的子事务;
一旦结束所述事务,在所述第一节点和所述第二节点间执行两阶段提交(twophasecommit,2PC)协议;
合并所述事务和所述子事务的结果。
3.根据权利要求1所述的方法,其特征在于,还包括:分析所述事务中的一个或多个语句和数据库对象,以识别参与所述事务的所有节点。
4.根据权利要求1所述的方法,其特征在于,还包括:查询一个或多个内部维护的元数据目录,以识别参与所述事务的所有节点。
5.根据权利要求1所述的方法,其特征在于,还包括:使用所述事务的一个或多个语句查询的一个或多个谓语,以识别参与所述事务的所有节点。
6.根据权利要求1所述的方法,其特征在于,所述发送的协调快照包括主ID的列表以及所述第一节点和所述第二节点上当前事务的元数据,其中,所述主ID中的每一个都是由对应的本地事务管理节点通过将所述本地事务管理节点分配的本地事务ID附加到节点号上的方式分配的,所述节点号指示所述本地事务管理节点。
7.根据权利要求1所述的方法,其特征在于,从所述第二节点接收的快照包括主ID的列表和所述第二节点上当前事务的元数据,其中,所述主ID中的每一个都是由对应的本地事务管理节点通过将所述本地事务管理节点分配的本地事务ID附加到节点号上的方式分配的,所述节点号指示所述本地事务管理节点。
8.根据权利要求1所述的方法,其特征在于,还包括:
识别参与所述事务的第三节点;
向所述第三节点请求所述第三节点上当前事务的快照;
从所述第三节点接收所述第三节点上当前事务的快照;
将从所述第三节点接收的当前事务的快照和从所述第二节点接收的当前事务的快照以及所述第一节点上的当前事务合并,以得到协调快照;
将所述协调快照发送至所述第二节点和第三节点。
9.根据权利要求8所述的方法,其特征在于,从所述第三节点接收的快照包括主ID的列表和所述第三节点上当前事务的元数据,其中,所述主ID中的每一个都是由对应的本地事务管理节点通过将所述本地事务管理节点分配的本地事务ID附加到节点号上的方式分配的,所述节点号指示所述本地事务管理节点。
10.一种大规模并行处理(massivelyparallelprocessing,MPP)数据库系统集群中的处理节点间进行事务处理的方法,所述方法用于第一节点,其特征在于,所述方法包括:
接收关于所述第一节点上当前事务的快照的请求,其中,所述请求是在开始第二节点上的事务之前并在识别出待参与所述事务的所述第一节点的情况下从所述MPP数据库系统的所述第二节点接收的;
向所述第二节点发送所述第一节点上当前事务的快照;
从所述第二节点接收协调快照,其中,所述协调快照是合并所述第一节点和所述第二节点上当前事务的快照得到的;
开始由所述第二节点上的事务触发的子事务;
根据所述协调快照进行所述子事务;
一旦结束所述第一节点上的所述子事务,从所述第二节点上为提交命令准备所述子事务;
在所述第一节点和所述第二节点间执行两阶段提交(twophasecommit,2PC)协议。
11.根据权利要求10所述的方法,其特征在于,所述接收的协调快照包括主ID的列表和所述第一节点和所述第二节点上当前事务的元数据,所述方法还包括:在开始所述子事务之前,所述第一节点将所述主ID转化为本地ID。
12.根据权利要求10所述的方法,其特征在于,还包括:
识别所述协调快照中指示的且当前不在所述第二节点上的任意事务;
执行以下操作之一:如果所指示的事务之前不是在所述第一节点上执行,忽略所述协调快照中所指示的事务,或者如果所指示的事务之前是在所述第一节点上执行,包括所述协调快照中所指示的事务。
13.一种用于在大规模并行处理(massivelyparallelprocessing,MPP)数据库中进行事务处理的集群节点,其特征在于,所述集群节点包括:
至少一个处理器;
非瞬时性计算机可读存储介质,用于存储所述至少一个处理器执行的程序,所述程序包括用于执行以下操作的指令:
在开始事务之前,识别参与所述事务的第二集群节点;
向所述第二集群节点请求所述第二集群节点上当前事务的快照;
从所述第二集群节点接收所述第二集群节点上当前事务的快照;
将从所述第二集群节点上接收的当前事务的快照与所述集群节点上当前事务合并,以得到协调快照;
将所述协调快照发送至所述第二集群节点;
使用所述协调快照开始所述事务。
14.根据权利要求13所述的集群节点,其特征在于,所述程序还包括执行以下操作的指令:
使用所述事务触发所述第二集群节点上的子事务;
一旦结束所述事务,在所述集群节点和所述第二集群节点间执行两阶段提交(twophasecommit,2PC)协议;
合并所述事务和所述子事务的结果。
15.根据权利要求13所述的集群节点,其特征在于,所述程序还包括执行至少一个以下操作的指令,以识别参与所述事务的所有节点:分析所述事务中一个或多个语句和数据库对象;查询一个或多个内部维护的元数据目录;使用所述事务的一个或多个语句查询中的一个或多个谓语。
16.根据权利要求13所述的集群节点,其特征在于,从所述第二集群节点接收的快照包括ID列表和所述第二集群节点上当前事务的元数据,其中,发送的所述协调快照包括主ID的列表以及所述集群节点和所述第二集群节点上当前事务的元数据,其中,所述主ID中的每一个都是由对应的本地事务管理节点通过将所述本地事务管理节点分配的本地事务ID附加到节点号上的方式分配的,所述节点号指示所述本地事务管理节点。
17.根据权利要求13所述的集群节点,其特征在于,所述程序还包括执行以下操作的指令:不使用集中式集群事务管理器的情况下,在所述集群节点和所述第二集群节点间交换事务的快照。
18.一种参与大规模并行处理(massivelyparallelprocessing,MPP)数据库中的事务处理的集群节点,其特征在于,所述集群节点包括:
至少一个处理器;
非瞬时性计算机可读存储介质,用于存储所述至少一个处理器执行的程序,所述程序包括执行以下操作的指令:
接收关于所述集群节点上当前事务的快照的请求,其中,所述请求是在开始第二集群节点上的事务之前并在识别出待参与所述事务的所述集群节点的情况下从所述第二集群节点接收的;
向所述第二节点发送所述第一节点上当前事务的快照;
从所述第二集群节点接收协调快照,其中,所述协调快照是合并所述集群节点和所述第二集群节点上当前事务的快照得到的;
开始由所述第二集群节点上的事务触发的子事务;
根据所述协调快照进行所述子事务;
一旦结束所述子事务,从所述第二集群节点上为提交命令准备所述子事务;
在所述集群节点和所述第二集群节点间执行两阶段提交(twophasecommit,2PC)协议。
19.根据权利要求18所述的集群节点,其特征在于,所述程序还包括执行以下操作的指令:
识别所述协调快照中指示的且当前不在所述集群节点上的任意事务;
执行以下操作之一:如果所指示的事务之前不是在所述集群节点上执行,忽略所述协调快照中所指示的事务,或者如果所指示的事务之前是在所述集群节点上执行,包括所述协调快照中所指示的事务。
20.根据权利要求18所述的集群节点,其特征在于,所述接收的协调快照包括主ID的列表以及所述集群节点和所述第二集群节点上当前事务的元数据,所述程序还包括执行以下操作的指令:在开始所述子事务之前,所述集群节点将所述主ID转化为本地ID。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/068,466 | 2013-10-31 | ||
US14/068,466 US20150120645A1 (en) | 2013-10-31 | 2013-10-31 | System and Method for Creating a Distributed Transaction Manager Supporting Repeatable Read Isolation level in a MPP Database |
PCT/CN2014/089321 WO2015062444A1 (en) | 2013-10-31 | 2014-10-23 | System and method for creating a distributed transaction manager supporting repeatable read isolation level in a mpp database |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105684377A true CN105684377A (zh) | 2016-06-15 |
CN105684377B CN105684377B (zh) | 2019-09-13 |
Family
ID=52996600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480058960.1A Active CN105684377B (zh) | 2013-10-31 | 2014-10-23 | 一种创建支持mpp数据库中的可重读隔离级别的分布式事务管理器的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20150120645A1 (zh) |
EP (1) | EP3058690B1 (zh) |
CN (1) | CN105684377B (zh) |
WO (1) | WO2015062444A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108694076A (zh) * | 2017-04-01 | 2018-10-23 | 英特尔公司 | 多节点存储操作 |
CN109710388A (zh) * | 2019-01-09 | 2019-05-03 | 腾讯科技(深圳)有限公司 | 数据读取方法、装置、电子设备以及存储介质 |
CN109844731A (zh) * | 2016-10-13 | 2019-06-04 | 华为技术有限公司 | 分散式分布式数据库一致性 |
CN110502319A (zh) * | 2019-08-23 | 2019-11-26 | 腾讯科技(深圳)有限公司 | 分布式事务的处理方法、装置、电子设备及存储介质 |
CN111198920A (zh) * | 2019-12-30 | 2020-05-26 | 上海英方软件股份有限公司 | 一种基于数据库同步确定对比表快照的方法及装置 |
CN108090056B (zh) * | 2016-11-21 | 2021-06-15 | 中兴通讯股份有限公司 | 数据查询方法、装置及系统 |
WO2023103990A1 (zh) * | 2021-12-10 | 2023-06-15 | 中兴通讯股份有限公司 | 数据库的事务快照生成方法、装置、设备及存储介质 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9348641B2 (en) * | 2013-03-13 | 2016-05-24 | Futurewei Technologies, Inc. | System and method for performing a transaction in a massively parallel processing database |
US9600286B2 (en) * | 2014-06-30 | 2017-03-21 | International Business Machines Corporation | Latent modification instruction for transactional execution |
US20160034191A1 (en) * | 2014-08-01 | 2016-02-04 | Kabushiki Kaisha Toshiba | Grid oriented distributed parallel computing platform |
US10148514B2 (en) * | 2014-12-23 | 2018-12-04 | Intel Corporation | Device discovery using discovery nodes |
US10019476B2 (en) | 2015-05-27 | 2018-07-10 | Microsoft Technology Licensing, Llc | Multi-version data system nested transactions isolation |
CN105354319B (zh) * | 2015-11-16 | 2019-01-25 | 天津南大通用数据技术股份有限公司 | 针对sn架构的mpp数据库集群的数据库连接池管理方法及系统 |
US10635694B2 (en) | 2015-12-14 | 2020-04-28 | Pivotal Software, Inc. | Deploying updates in a distributed database systems |
CN105786594A (zh) * | 2016-02-25 | 2016-07-20 | 北京小米移动软件有限公司 | 分布式事务处理方法、装置及系统 |
US20170270165A1 (en) * | 2016-03-16 | 2017-09-21 | Futurewei Technologies, Inc. | Data streaming broadcasts in massively parallel processing databases |
CN108701003B (zh) * | 2016-03-31 | 2022-04-26 | 英特尔公司 | 用于对远程节点的许多存储操作的原子写入的结构弹性支持 |
US10084724B2 (en) | 2016-09-09 | 2018-09-25 | Intel Corporation | Technologies for transactional synchronization of distributed objects in a fabric architecture |
US10365978B1 (en) * | 2017-07-28 | 2019-07-30 | EMC IP Holding Company LLC | Synchronization of snapshots in a distributed consistency group |
US10810268B2 (en) * | 2017-12-06 | 2020-10-20 | Futurewei Technologies, Inc. | High-throughput distributed transaction management for globally consistent sharded OLTP system and method of implementing |
CN108551478B (zh) * | 2018-03-29 | 2020-12-18 | 中国银联股份有限公司 | 一种事务处理方法、服务器及事务处理系统 |
US11874816B2 (en) | 2018-10-23 | 2024-01-16 | Microsoft Technology Licensing, Llc | Lock free distributed transaction coordinator for in-memory database participants |
CN113254483B (zh) * | 2021-06-03 | 2021-11-09 | 北京金山云网络技术有限公司 | 请求的处理方法和装置、电子设备和存储介质 |
US20230039113A1 (en) * | 2021-07-27 | 2023-02-09 | Vmware, Inc. | Hybrid database for transactional and analytical workloads |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6122630A (en) * | 1999-06-08 | 2000-09-19 | Iti, Inc. | Bidirectional database replication scheme for controlling ping-ponging |
US20020184239A1 (en) * | 2001-06-01 | 2002-12-05 | Malcolm Mosher | System and method for replication of distributed databases that span multiple primary nodes |
US20040030703A1 (en) * | 2002-08-12 | 2004-02-12 | International Business Machines Corporation | Method, system, and program for merging log entries from multiple recovery log files |
US20080133208A1 (en) * | 2006-11-30 | 2008-06-05 | Symantec Corporation | Running a virtual machine directly from a physical machine using snapshots |
US20090083088A1 (en) * | 2007-09-20 | 2009-03-26 | Microsoft Corporation | Synchronizing data between business applications |
US20090254693A1 (en) * | 2008-04-04 | 2009-10-08 | Vmware, Inc. | Method and system for generating consistent snapshots for a group of data objects |
US20120011100A1 (en) * | 2010-07-06 | 2012-01-12 | Fujitsu Limited | Snapshot acquisition processing technique |
US20120136839A1 (en) * | 2010-11-30 | 2012-05-31 | Peter Eberlein | User-Driven Conflict Resolution Of Concurrent Updates In Snapshot Isolation |
US20130124475A1 (en) * | 2011-11-16 | 2013-05-16 | Sap Ag | System and Method of Performing Snapshot Isolation in Distributed Databases |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5890154A (en) * | 1997-06-06 | 1999-03-30 | International Business Machines Corp. | Merging database log files through log transformations |
US6529921B1 (en) * | 1999-06-29 | 2003-03-04 | Microsoft Corporation | Dynamic synchronization of tables |
US6658589B1 (en) * | 1999-12-20 | 2003-12-02 | Emc Corporation | System and method for backup a parallel server data storage system |
US20040010538A1 (en) * | 2002-07-11 | 2004-01-15 | International Business Machines Corporation | Apparatus and method for determining valid data during a merge in a computer cluster |
US7587434B2 (en) * | 2002-10-01 | 2009-09-08 | Acs State & Local Solutions, Inc. | Method and system for managing a distributed transaction process |
US7610305B2 (en) * | 2003-04-24 | 2009-10-27 | Sun Microsystems, Inc. | Simultaneous global transaction and local transaction management in an application server |
US20060031267A1 (en) * | 2004-08-04 | 2006-02-09 | Lim Victor K | Apparatus, system, and method for efficient recovery of a database from a log of database activities |
US8301589B2 (en) * | 2006-05-10 | 2012-10-30 | Sybase, Inc. | System and method for assignment of unique identifiers in a distributed environment |
KR100862661B1 (ko) * | 2006-11-16 | 2008-10-10 | 삼성전자주식회사 | 지연된 로깅 방법 및 그 장치 |
US8356007B2 (en) * | 2010-10-20 | 2013-01-15 | Microsoft Corporation | Distributed transaction management for database systems with multiversioning |
US9063969B2 (en) * | 2010-12-28 | 2015-06-23 | Sap Se | Distributed transaction management using optimization of local transactions |
US8996465B2 (en) * | 2012-03-08 | 2015-03-31 | Sap Ag | Replicating data to a database |
-
2013
- 2013-10-31 US US14/068,466 patent/US20150120645A1/en not_active Abandoned
-
2014
- 2014-10-23 WO PCT/CN2014/089321 patent/WO2015062444A1/en active Application Filing
- 2014-10-23 EP EP14857957.6A patent/EP3058690B1/en active Active
- 2014-10-23 CN CN201480058960.1A patent/CN105684377B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6122630A (en) * | 1999-06-08 | 2000-09-19 | Iti, Inc. | Bidirectional database replication scheme for controlling ping-ponging |
US20020184239A1 (en) * | 2001-06-01 | 2002-12-05 | Malcolm Mosher | System and method for replication of distributed databases that span multiple primary nodes |
US20040030703A1 (en) * | 2002-08-12 | 2004-02-12 | International Business Machines Corporation | Method, system, and program for merging log entries from multiple recovery log files |
US20060218206A1 (en) * | 2002-08-12 | 2006-09-28 | International Business Machines Corporation | Method, System, and Program for Merging Log Entries From Multiple Recovery Log Files |
US20080133208A1 (en) * | 2006-11-30 | 2008-06-05 | Symantec Corporation | Running a virtual machine directly from a physical machine using snapshots |
US20090083088A1 (en) * | 2007-09-20 | 2009-03-26 | Microsoft Corporation | Synchronizing data between business applications |
US20090254693A1 (en) * | 2008-04-04 | 2009-10-08 | Vmware, Inc. | Method and system for generating consistent snapshots for a group of data objects |
US20120011100A1 (en) * | 2010-07-06 | 2012-01-12 | Fujitsu Limited | Snapshot acquisition processing technique |
US20120136839A1 (en) * | 2010-11-30 | 2012-05-31 | Peter Eberlein | User-Driven Conflict Resolution Of Concurrent Updates In Snapshot Isolation |
US20130124475A1 (en) * | 2011-11-16 | 2013-05-16 | Sap Ag | System and Method of Performing Snapshot Isolation in Distributed Databases |
Non-Patent Citations (1)
Title |
---|
S. SUDARSHAN: "Massively Parallel/Distributed Data Storage Systems", 《HTTP://WWW.CSE.IITB.AC.IN/~SUDARSHA/TALKS/IBMSCHOOL-OCT2012-SUDARSHAN.PPTX》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109844731A (zh) * | 2016-10-13 | 2019-06-04 | 华为技术有限公司 | 分散式分布式数据库一致性 |
CN108090056B (zh) * | 2016-11-21 | 2021-06-15 | 中兴通讯股份有限公司 | 数据查询方法、装置及系统 |
CN108694076A (zh) * | 2017-04-01 | 2018-10-23 | 英特尔公司 | 多节点存储操作 |
CN108694076B (zh) * | 2017-04-01 | 2024-08-02 | 英特尔公司 | 多节点存储操作 |
CN109710388A (zh) * | 2019-01-09 | 2019-05-03 | 腾讯科技(深圳)有限公司 | 数据读取方法、装置、电子设备以及存储介质 |
CN109710388B (zh) * | 2019-01-09 | 2022-10-21 | 腾讯科技(深圳)有限公司 | 数据读取方法、装置、电子设备以及存储介质 |
CN110502319A (zh) * | 2019-08-23 | 2019-11-26 | 腾讯科技(深圳)有限公司 | 分布式事务的处理方法、装置、电子设备及存储介质 |
CN111198920A (zh) * | 2019-12-30 | 2020-05-26 | 上海英方软件股份有限公司 | 一种基于数据库同步确定对比表快照的方法及装置 |
CN111198920B (zh) * | 2019-12-30 | 2024-01-23 | 上海英方软件股份有限公司 | 一种基于数据库同步确定对比表快照的方法及装置 |
WO2023103990A1 (zh) * | 2021-12-10 | 2023-06-15 | 中兴通讯股份有限公司 | 数据库的事务快照生成方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3058690A1 (en) | 2016-08-24 |
EP3058690A4 (en) | 2016-10-05 |
EP3058690B1 (en) | 2018-05-23 |
WO2015062444A1 (en) | 2015-05-07 |
CN105684377B (zh) | 2019-09-13 |
US20150120645A1 (en) | 2015-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105684377A (zh) | 一种创建支持mpp数据库中的可重读隔离级别的分布式事务管理器的系统和方法 | |
US9348641B2 (en) | System and method for performing a transaction in a massively parallel processing database | |
US9563673B2 (en) | Query method for a distributed database system and query apparatus | |
US20130117307A1 (en) | Snapshot isolation support for distributed query processing in a shared disk database cluster | |
CN103399894A (zh) | 一种基于共享存储池的分布式事务处理方法 | |
WO2015094195A1 (en) | Transaction query engine | |
US11360866B2 (en) | Updating stateful system in server cluster | |
JP4951138B2 (ja) | データベースの管理方法 | |
US10685019B2 (en) | Secure query interface | |
KR20140047448A (ko) | 트랜잭션 재시작 가능한 클라이언트 장치와 데이터베이스 서버 및 방법 | |
CN116701330A (zh) | 物流信息共享方法、装置、设备及存储介质 | |
WO2013157099A1 (ja) | データベースの管理方法、データベースシステム、及び、プログラム | |
JP5960798B2 (ja) | データベースの管理方法 | |
Pankowski | Consistency and availability of Data in replicated NoSQL databases | |
US20190065327A1 (en) | Efficient versioned object management | |
JP2013171483A (ja) | 差分レプリケーションシステム、マスターデータベース装置、及びスレーブデータベース装置 | |
JP6239697B2 (ja) | データベースの管理方法 | |
CN115277610B (zh) | 基于双活环境的消息分流发送方法、装置、设备及介质 | |
WO2023124431A1 (zh) | 一种数据库处理方法及相关设备 | |
CN114661738A (zh) | 一种添加索引的方法、装置、设备以及存储介质 | |
CN115357547A (zh) | 数据处理及数据查询方法、装置、系统、电子设备及介质 | |
JP2015011642A (ja) | サーバ/クライアントシステム | |
WO2013145501A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |