当前位置: 首页 > 专利查询>SAP股份公司专利>正文

在分布式数据库中执行快照隔离的系统和方法技术方案

技术编号:8723091 阅读:208 留言:0更新日期:2013-05-22 17:13
一种在分布式数据库中执行快照隔离的系统和方法。每个节点存储本地快照信息,其强制该节点的快照隔离。该方法包括:由第一节点部分地处理分布式事务;从协调器接收全局提交标识符;以及由第一节点和第二节点根据该全局提交标识符继续处理该分布式事务。

【技术实现步骤摘要】
在分布式数据库中执行快照隔离的系统和方法
本专利技术涉及数据库,并且具体地,涉及分布式数据库中的快照隔离。
技术介绍
除非这里指出,本部分中描述的方法不是本申请中权利要求的现有技术并且不因为包含在本部分中而被认为是现有技术。快照隔离正成为大多数现代数据库系统中用于并行操作控制的事实标准。几乎所有的商业数据库都支持它。许多开源数据库系统也使用它。快照隔离允许某些不可串行化调度,但是这种警示对于多数应用程序而言是可以容忍的。在正面的方面,可以高效地实现快照隔离以使能高事务吞吐量。此外,快照隔离允许以无阻塞方式执行只读事务,它对于涉及对事务数据的长期决策支持查询的所谓的操作BI工作负载是重要的。虽然快照隔离对于集中式数据库系统是好理解的,但是对于其中事务可以从多个节点读取并更新数据项目的分布式数据库系统还没有较多的探索。显然,随着正在呈现的在云端部署数据库并将所有数据保留在主存储器中的趋势,这样的分布式数据系统变得越来越重要。例如,对于存储器内数据库系统,分布式快照隔离是有用的,因为数据库可能无法装入单个机器的主存储器中,但是很可能可以装入由机器群簇提供的聚集主存储器中。一种支持分布式快照隔离的商业数据库系统是Oracle(例如,Oracle数据库11gRelease2)。令人遗憾的是,Oracle没有发布实现和隔离性质的细节。在学术界,分布式快照隔离已经在R.Schenkel,G.Weikum,N.Weissenberg,以及X.Wu,“FederatedTransactionManagementwithSnapshotIsolation,inSelectedpapersfromtheEightInternationalWokrshoponFoundationsofModelsandLanguagesforDataandObjects,TransactionsandDatabaseDynamics”,第1-25页(2000)[以下称为“Schenkel”]中讨论过(主要是在关联数据库的环境中)。在Schenkel中,将数据库作为黑匣子处理并且不考虑本地事务。分布式快照隔离的三种一般方法是全局(global)法、悲观(pessimistic)法、和乐观(optimistic)法。下面对其作简要描述,细节可以在Schenkel中找到。为了提供那些访问多于一个节点的事务的一致的快照,当前系统(例如,我们使用的商业数据库)需要协调所有事务。我们称该方法为全局法,因为使用发布全局有效的快照的(概念上)集中的协调器来实行协调。这是如下工作的:新的事务x在它的事务开始(begin-of-transaction)从中央协调器请求全局有效的快照。协调器是列举快照的仅有的一个,从而它可以发布这样的快照而无需联系本地节点。利用来自协调器的信息,事务x可以访问不发布它们自己的快照而是直接使用来自协调器的信息的本地节点。为了提交,系统与包括协调器的所有参与节点运行原子提交协议(例如,两阶段提交)。这样,协调器知晓所有提交并可以向新的事务提供正确的快照信息。全局法的优点是其简单性以及在所有场景中的生存力。悲观法不同于全局法的一个重要方面是:中央协调器不是自己产生全局有效的快照,而是联系本地节点以协调分布式快照的建立。这意味着,只有分布式事务需要联系中央协调器,但是开始分布式事务的开销增加。该方法需要系统预先知晓哪些事务是分布式的、以及事务将要访问哪些节点。这是因为协调器为性能的原因而仅仅联系节点的最小集合以建立分布式快照。我们称该需求为完整先验知识(fulla-prioriknowledge)。如果访问的节点的集合未知,则不得不使用保守的候选集合,其限制性能。所有分布式事务的开始(begin)和提交(commit)操作由中央协调器同步。于是,在协调器准备用于事务x的分布式快照的同时,没有其他的分布式事务可以开始或提交。协调器通过在每个本地节点上发布事务开始操作来构建分布式快照。事务可以接着利用已准备的事务环境访问节点。为了提交,系统运行由协调器同步的原子提交协议。悲观法的优点在于,本地事务不与中央协调器交互作用,如果大部分事务是本地的则其改善性能。悲观法的示例构建部分数据库复制协议,即,在事务开始时,通知所有可能涉及的节点。参照J.E.Armendariz-Inigo,A.Mauch-Goya,J.R.GonzalezdeMendivil,以及F.D.MunozEscoi,SIPRe:“apartialdatabasereplicationprotocolwithSIreplicas,inProceedingsofthe2008ACMsymposiumonAppliedComputing”,第2181-2185页(2008)。为了去除对完整先验知识的需求,可以采用被称为乐观法的方法。基本思路在于,除了同步分布式事务提交的原子提交协议之外,事务运行无需协调器。在提交时刻,系统检测是否发生潜在异常。这可以通过在中央协调器上跟踪分布式事务的开始和提交操作的相对次序来实现。利用该方法,不需要确切的先验知识。然而,如果系统预先知晓哪些事务将成为分布式,从而可以将簿记限制于分布式事务,则可以改善性能。如果存在没有被两个事务访问的节点,则该算法拒绝任何两个并发事务中的一个。乐观法的优点在于,其不需要完整先验知识,但是仍然允许本地事务仅仅与它们的本地节点交互作用。此外,仅为想要提交的事务付出强制分布式快照隔离的开销。在广义的快照隔离中,事务开始(即快照)与第一个实际操作分离。参看W.Elnikety,W.Zwaenepoel,以及F.Pedone,“DatabaseReplicationUsingGeneralizedSnapshotIsolation,inProceedingsofthe24thIEEESymposiumonReliableDistributedSystems”,第73-84页(2005)[以下称为“Elnikety”]。该开始仅可以早于第一个实际操作。如果相同客户端的连续事务(即,相同会话)了解之前的事务写了什么以及快照隔离持有什么,则系统确保会话快照隔离。参照K.Daudjee和K.Salem,Lazydatabasereplicationwithsnapshotisolation,inVLDB,第715-726页(2006)[以下称为“Daudjee”]。该定义是有用的,因为普通快照隔离不需要客户得到最新快照。如果每个事务得到最新快照,则Daudjee称之为强快照隔离。快照隔离已经在列存储数据库中执行。参照C.Zhang和H.deSterck,Supportingmulti-rowdistributedtransactionswithglobalsnapshotisolationusingbare-bonesHBase,inGRID,第177-184页(2010年10月)[以下称为“Zhang1”];以及C.Zhang和H.deSterck,HBaseSI:Multi-RowDistributedTransactionswithGlobalStringSnapshotIsolationonClouds,inSc本文档来自技高网...
在分布式数据库中执行快照隔离的系统和方法

【技术保护点】
一种在分布式数据库中执行快照隔离的计算机实现方法,包括:在多个硬件设备上实现多个节点,该多个节点实现分布式数据库;由该多个节点存储多个本地快照信息,其中对于特定节点,相应的本地快照信息强制该特定节点的快照隔离;由该多个节点的第一节点部分地处理分布式事务;由第一节点向硬件协调器发送访问该多个节点的第二节点的请求;由第一节点从该硬件协调器接收全局提交标识符;由第一节点和第二节点根据该全局提交标识符继续处理该分布式事务。

【技术特征摘要】
2011.11.16 US 13/298,0481.一种在分布式数据库中执行快照隔离的计算机实现方法,包括:在多个硬件设备上实现多个节点,该多个节点实现分布式数据库;由该多个节点存储多个本地快照信息,其中对于特定节点,相应的本地快照信息强制该特定节点的快照隔离;由该多个节点的第一节点部分地处理分布式事务;由第一节点向硬件协调器发送访问该多个节点的第二节点的请求;由第一节点从该硬件协调器接收全局提交标识符;由第一节点和第二节点根据该全局提交标识符继续处理该分布式事务。2.如权利要求1所述的计算机实现方法,其中该多个硬件设备之一被配置为实现该多个节点的至少两个。3.如权利要求1所述的计算机实现方法,其中该多个硬件设备之一被配置为实现该多个节点之一。4.如权利要求1所述的计算机实现方法,其中该多个节点的每一个存储该分布式数据库的不同部分。5.如权利要求1所述的计算机实现方法,其中该全局提交标识符是多个全局提交标识符之一,其中该多个全局提交标识符的每一个标识多个分布式事务的每一个的提交。6.如权利要求1所述的计算机实现方法,进一步包括:由该硬件协调器产生该全局提交标识符。7.如权利要求1所述的计算机实现方法,进一步包括:当多个分布式事务之一提交成功时,由该硬件协调器产生该全局提交标识符。8.如权利要求1所述的计算机实现方法,其中该全局提交标识符是多个全局提交标识符之一,进一步包括:当多个分布式事务提交成功时,由该硬件协调器产生该多个全局提交标识符。9.如权利要求1所述的计算机实现方法,进一步包括:在发送该请求之前,由第一节点检查另一个分布式事务还没有提交。10.如权利要求1所述的计算机实现方法,进一步包括:在继续处理该分布式事务之前,由第一节点检查另一个分布式事务还没有提交。11.如权利要求1所述的计算机实现方法,其中继续处理该分布式事务包括:由第一节点检查另一个分布式事务还没有提交;从第一节点向第二节点发送该全局提交标识符;以及由第二节点根据在该全局提交标识符之前产生的第二节点上的多个本地快照信息的快照来处理该分布式事务。12.如权利要求1所述的计算机实现方法,其中该多个本地快照信息对应于该多个节点上的该分布式数据库的多个快照。13.如权利要求1所述的计算机实现方法,其中该多个本地快照信息对应于在该多个节点上递增地创建的该分布式数据库的多个快照。14.一种在分布式数据库中执行快照隔离的系统,包括:...

【专利技术属性】
技术研发人员:S·希尔顿布兰德C·宾尼格F·费尔伯D·科斯曼J·李N·梅
申请(专利权)人:SAP股份公司
类型:发明
国别省市:德国;DE

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1