CN104885054A - 大规模并行处理数据库中执行事务的系统和方法 - Google Patents
大规模并行处理数据库中执行事务的系统和方法 Download PDFInfo
- Publication number
- CN104885054A CN104885054A CN201480003613.9A CN201480003613A CN104885054A CN 104885054 A CN104885054 A CN 104885054A CN 201480003613 A CN201480003613 A CN 201480003613A CN 104885054 A CN104885054 A CN 104885054A
- Authority
- CN
- China
- Prior art keywords
- snapshot
- resource manager
- affairs
- manager
- mediation
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- 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/2308—Concurrency control
-
- 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
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
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)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种用于在大规模并行处理(MPP)数据库中执行事务的方法包括通过事务管理器从第一资源管理器接收所述第一资源管理器的第一快照,以及通过所述事务管理器从第二资源管理器接收所述第二资源管理器的第二快照(148)。此外,所述方法包括调和所述第一资源管理器的所述第一快照以及所述第二资源管理器的所述第二快照以产生调和快照(150),以及通过所述事务管理器将所述调和快照传送到所述第一资源管理器以及所述第二资源管理器(152)。另外,所述方法包括使用所述调和快照执行事务(154)。
Description
本发明要求2013年3月13日递交的发明名称为“大规模并行处理数据库中执行事务的系统和方法(System and Method for Performing aTransaction in a Massively Parallel Processing Database)”的美国非临时专利申请案序列号13/798,344的在先申请优先权,该在先申请的内容以引入的方式并入本文本中。
技术领域
本发明涉及一种用于数据库的系统和方法,尤其涉及一种通过利用基于快照隔离的一致性模型在大规模并行处理数据库中执行事务的系统和方法。
背景技术
大规模并行处理(MPP)数据库是指利用大量处理器并行执行一组计算的数据库。在MPP系统中,以协同方式通过多个处理器处理程序,其中每个处理器工作于程序的不同部分和/或不同数据。
MPP数据库系统基于无共享架构,其中数据库的表被分割成多个分区并且分布到不同处理节点。当数据库查询到达时,根据数据分布以及优化执行计划来划分每个查询任务并且将其分配给处理节点。每个处理节点中的处理实体仅管理其数据部分。然而,在执行查询任务期间,处理实体之间可以彼此通信以交换所需信息。可以将查询划分成多个子查询,并且可以在部分或所有处理节点中并行地或以某一最优次序执行子查询。子查询的结果可以被聚合并进一步处理。随后,可以基于所述结果执行更多的子查询。
发明内容
本发明一实施例提供的用于在大规模并行处理(MPP)数据库中执行事务的方法包括:通过事务管理器从第一资源管理器接收第一资源管理器的第一快照,以及通过事务管理器从第二资源管理器接收第二资源管理器的第二快照。此外,所述方法包括调和第一资源管理器的第一快照以及第二资源管理器的第二快照以产生调和快照,以及通过事务管理器将调和快照传送到第一资源管理器以及第二资源管理器。另外,所述方法包括使用调和快照执行事务。
本发明另一实施例提供的在MPP数据库中执行第一事务的方法包括:通过第一资源管理器将第一资源管理器的第一快照传送到事务管理器,以及通过资源管理器从事务管理器接收根据第一资源管理器的第一快照以及第二资源管理器的第二快照的调和后得到的调和快照。此外,所述方法包括使用调和快照执行第一事务。
本发明另一实施例提供的MPP数据库的第一节点包括:处理器以及存储有可被该处理器执行的程序的计算机可读存储介质。该程序包括用以进行以下操作的指令:通过事务管理器从第一资源管理器接收第一资源管理器的第一快照,以及通过事务管理器从第二资源管理器接收第二资源管理器的第二快照。此外,程序包括用以进行以下操作的指令:调和第一资源管理器的第一快照以及第二资源管理器的第二快照,以及通过事务管理器将调和快照传送到第一资源管理器以及第二资源管理器。另外,程序包括使用调和快照执行事务的指令。
本发明另一实施例提供的MPP数据库的第一节点包括处理器以及存储有可被该处理器执行的程序的计算机可读存储介质。该程序包括用以进行以下操作的指令:通过第一资源管理器将第一资源管理器的第一快照传送到事务管理器,以及通过第一资源管理器接收调和快照以及第二资源管理器的第二快照。此外,该程序包括使用调和快照执行事务的指令。
以上内容概述了本发明的实施例的特征,以便可以更好地理解以下本发明的具体实施方式。下文将描述本发明的实施例的附加特征和有益效果,这些特征和有益效果形成本发明的权利要求书的主题。所属领域的技术人员应了解,本发明所公开的概念和特定实施例可以轻易地用被修改或设计用于实现本发明的相同目的。所属领域的技术人员还应意识到,此类等效构造不脱离如所附权利要求书中所阐述的本发明的精神和范围。
附图说明
为了更完整地理解本发明及其优点,现在参考以下结合附图进行的描述,其中:
图1图示了本发明实施例的大规模并行处理(MPP)数据库系统;
图2图示了本发明实施例在MPP数据库系统中执行事务的方法;
图3图示了本发明实施例在MPP数据库系统中调和快照的方法;
图4图示了本发明实施例两阶段协议;
图5图示了本发明实施例的全局事务ID的产生过程;
图6图示了在单一节点中执行的查询;
图7图示了不一致事务状态;
图8图示了使用快照调和在多个节点上执行的语句;以及
图9图示了图示本发明一个实施例的计算平台的框图,所述计算平台可以用于实施如本文中所描述的装置以及方法。
除非另有指示,否则不同图中的对应标号和符号通常指代对应部分。绘制各图是为了清楚地说明实施例的相关方面,因此未必是按比例绘制的。
具体实施方式
首先应理解,尽管下文阐述了一个或多个实施例的实施方案,但所公开的系统和/或方法可使用多种技术手段来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所揭示的实施方案、附图和技术,以及本文所描述的示例性设计和实施方案,而应覆盖所附权利要求书的范围以及其等效物的完整范围。
事务构成了数据库系统的原子性、并发性、隔离性以及持久性(ACID)特性的基础。事务是具有已提交读隔离的语义的事务。ACID特性确保可靠地处理数据库事务。原子性要求如果事务的一部分失败,那么整个事务失败,并且数据库保持不变。一致性确保事务将数据库从一个有效状态转变为另一有效状态。隔离性确保事务的并发执行的结果与事务以串行次序执行是一样的。此外,持久性要求一旦已经提交事务,即使处理器节点瞬态丢失,例如因断电或死机,由事务造成的所有改变也保持持久以及永久,并且事务保持为已提交的。
为了维持ACID特性,事务的各步骤之间的中间状态不应对其它并发事务可见。对于原子性,如果发生阻止事务完成的故障,那么这些步骤中没有步骤影响到数据库,从而确保人人都看到一致数据。在单一节点非分布式数据库系统中,数据库管理实例与事务管理器通过实施严格的两阶段锁定(SS2PL)或快照确保ACID特性。事务是一组动作的逻辑分组,所述动作例如选择数据、更新数据、插入数据以及删除数据。跨越多个节点的事务系统需要了解整个系统中当前活动事务的全局信息。当前活动事务的信息可以被称为事务快照或快照。
数据以及系统的元数据信息用于创建快照。快照的每行附加有修该它的事务ID。快照是系统中当前活动事务的列表。通过使用快照,事务管理器可以在执行任何动作之前确定数据的可见性。如果事务ID与快照列表中的任一事务相关,那么数据不应是可见的,因为事务仍是活动的,并且动作的中间状态不应被其它事务看到。
图1图示了大规模并行处理(MPP)数据库系统100的一个实例。系统100图示了四个节点:第一节点102、第二节点104、第三节点106以及第四节点108。每个节点可以与其它节点通信。为了清楚起见,图示了四个节点。然而,实际上可以使用更多的节点,包括多得多的节点。
分布式事务是对两个或更多个网络计算机系统执行操作的事务。在一个实例中,用户可以在第一节点102上开始一个事务,并且在本地访问数据。如果一个事务需要访问远程节点上、例如第二节点104上的数据,那么可以使用分布式事务能力来全局地处理这个事务。在一个实例中,可以用一个集中式组件维持系统中的所有事务的状态。系统中的每一事务在事务的开始处获得一个快照或者每一事务为事务内的每个语句获得快照。系统中的任何事务将对于快照的请求传送到集中式组件,所述集中式组件向系统的单个节点提供快照。
尽管数据可以分散在系统上,但数据分布对于用户是透明的。对于在一个节点处发起的事务,如果需要非本地数据,那么节点透明地打开远程节点上的相同事务的分支。另外,原子性以及持久性可以通过使用隐式两阶段提交(2PC)协议来满足,从而确保尽管在多个节点上修改并且访问数据,但所有的工作单元在逻辑上与一个单元相关联。在2PC中,通过事务管理器(TM)将全局事务ID分配给每个资源管理器(RM)。在一个实例中,其中发起父事务的节点变成TM,并且分支事务节点变成RM。根据特定的事务,任何节点都可以是事务管理器或资源管理器。TM与每个RM协同决策提交或回滚事务。此外,每个RM会分配本地事务ID。TM将节点名称作为后缀添加到父事务ID上以获得用于事务的所有分支的全局事务ID,从而确保全局事务ID是唯一的。例如,如果在第一节点102上开始事务,那么第一节点102变成TM。驻留在远程节点上的非本地访问的数据可以在新远程事务下执行。这些新远程事务是相同父事务的分支。当客户端使用显式提交时,TM使用2PC协议以提交或回滚父事务的所有分支。
为了确保事务的隔离一致性,在一个实施例中,父事务从相关联事务的所有远程节点收集快照信息。调和所有这些快照以消除任何不一致性,并且构造新快照。此最新构造的快照传送给此事务的参与节点,并被所有节点用于执行该事务的语句。在一个实施例中,所有该事务涉及的系统可以看到相同的一致的数据,并且所述实施例给定已提交读隔离的级别。
图2图示了流程图110,所述流程图描绘了在MPP系统中执行事务的一个实施例方法。首先,在步骤112中,开始显式父事务。随后,在步骤114中,获得下一语句,并且在步骤116中,确定操作类型。如果操作类型是提交操作,那么在步骤128中准备所有分支,结束事务,并且在步骤128中所述改变变得可见。然而,如果操作类型是回滚,那么在步骤130中对所有分支执行回滚,并且MPP系统返回到先前状态。
另一方面,如果确定操作类型是读取,那么在步骤118中确定所述操作是否是单一节点本地的。如果操作是单一节点本地的,那么在步骤120执行读取操作,并且系统返回到步骤114。如果读取操作是远程的或在远程以及在本地同时发生,那么在步骤122中,判定远程节点是否已经是分支事务的一部分。如果远程节点已经是分支事务的一部分,那么在步骤124中执行分支事务,并且系统返回到步骤114。然而,如果远程节点尚不是分支事务的一部分,那么在步骤126中在没有事务的情况下执行读取命令,并且系统返回到步骤114。
类似地,如果确定操作类型是写入操作,那么在步骤132中,判定所述操作是否是单一节点本地的。如果操作是单一节点本地的,那么在步骤120执行写入命令,并且系统返回到步骤114。然而,如果操作是远程的或是本地以及远程同时发生的,那么系统转至步骤134,其中所述系统确定远程节点是否已经是分支事务的一部分。如果远程节点已经是分支事务的一部分,那么在步骤124中执行分支事务,并且系统返回到步骤114。然而,如果远程节点不是分支事务的一部分,那么在步骤136处开始新分支事务。随后,在步骤138中执行新分支事务,并且系统返回到步骤114。在步骤114中,系统获得下一语句。系统继续获得新语句直到执行提交或回滚。
图3图示了调和快照的一个实施例方法的流程图140。首先,在步骤142中,TM判定是否可以在单一节点上执行查询。如果可以在单一节点上执行查询,那么在步骤144中,TM检索节点的快照,并且在步骤146,TM使用所检索的快照执行查询。然而,如果不能在单一节点上执行查询,那么在步骤148中,TM从该事务所需的所有节点请求快照。随后,在步骤150中,TM调和快照,并且在步骤152中,TM将调和快照传送到其它节点。最后,在步骤154中,使用调和快照执行查询。
图4图示了对用户透明的隐式两阶段协议160。首先,第一节点102具有非共享数据A并且第二节点104具有非共享数据B。客户端连接落在第一节点102上,并且开始事务ID为200的显式事务txn1。接着,通过开始命令启动事务。Txn1是父事务,并且第一节点102是TM。在此实例中,父事务涉及修改并且访问数据A以及数据B。随后执行写入(A)命令,所述写入(A)命令在本地写入数据。写入(A)命令在第一节点102上的txn1的上下文中执行。在写入(A)命令之后,执行写入(B)命令,即在第二节点104中对数据B的写入操作。在第二节点104上执行事务ID为102的隐式事务txn2。事务txn2是txn1的分支。接着,执行读取(A),所述读取(A)是对本地数据A的读取操作。在第一节点102的本地事务的上下文txn1中执行读取(A)。随后,对数据B执行写入(B)操作,并且对数据B执行读取(B)操作,所述操作均在第二节点104上执行。这些命令在事务txn2中执行,所述事务是已经开始的。最后,通过客户端显式地发布提交命令。第一节点102将自身认作TM,并且提交的操作自动转换成两阶段提交(2PC)算法。第一节点102通过将节点的逻辑名称附加到事务ID上产生全局ID。当事务跨越多个节点时,产生全局ID。当打开分支事务时,将全局ID连同请求传送至其它节点以产生分支事务。例如,通过将节点名称n1添加到事务ID 200上,全局ID将是Tnode-n1-200。保证全局ID在整个系统上是唯一的。随后,使用全局ID Tnode-nl-200在2PC的第一阶段中准备事务txn1以及txn2。最后,合并响应,并且通过第一节点102发布提交的第二阶段。
图5图示了全局事务ID 170的产生,其中在远程节点上所涉及的事务的所有分支上维持全局事务ID。在一个实例中,每一事务通过唯一事务ID标识。在另一实例中,每一事务被标识为具有全局事务ID以及本地事务ID的事务对。本地事务ID是在本地产生的ID。随后,通过将节点号附加到本地事务ID上产生全局事务ID。
在图5中,通过客户端连接在第一节点102上显式地开始事务。第一节点102是TM,并且分配有6364的本地事务ID。自动产生的全局事务ID是1:6364,所述全局事务ID通过将节点号“1”附加到本地事务ID 6364上而创建。随后,执行写入(Nl)命令,所述命令是在第一节点102上事务<1:6364,6364>的上下文中执行的本地写入操作。之后,在写入(N2)中,在第二节点104上执行远程操作。隐式事务在第二节点104上打开。此外,第二节点104的本地事务管理器分配有8876的本地事务ID。此外,新事务是父事务的分支,并且所述新事务从父事务获得全局事务ID。在此实例中,全局事务ID是1:6364。因此,在事务<1:6364,8876>的上下文中执行远程操作。
接着,在第三节点106上执行操作写入(N3)。在第三节点106上打开新分支事务,所述新分支事务具有与父事务相同的全局事务ID,即1:6364。此全局事务ID经传送并且与本地事务ID 4387形成一对。随后在事务<1:6364,4387>的上下文中执行操作写入(N3)。最后,提交操作利用隐式2PC协议以在全部三个节点上提交。在第一节点102上提交父事务6364,在第二节点104上提交分支8876,并且在第三节点106上提交分支4387。尽管父事务以及其分支事务在每个节点上作为单独的事务执行,但通过将一对ID分配给所有事务,所述事务被标识为相同全局事务的一部分,在所述事务对中,全局事务ID是所有事务对共有的。
在分布式环境中,可以在一个节点上执行事务的一条语句,例如“从表中选择coll,其中coll='data-on-local-node”。替代地,可以在超过一个节点上执行一条语句,例如“从其中为真的表中选择coll”。图6图示了简单的事务情形180,其中事务中的每个查询可以在一个节点在本地完整地执行。例如,选择、更新、插入以及删除操作中的任一者涉及仅一个节点,而非多个节点。快照是在任何时刻处的活动事务的列表。快照信息被事务管理器用来确保适当的隔离级别。因此,快照有助于使当前事务看不到当前活动事务的中间状态。在一个实例中,每一节点使用本地事务ID维持其快照,所述节点具有另外的元数据以识别用于每个本地事务ID的对应的全局事务ID。
在图6中,在第一节点102上开始具有100的本地事务ID的事务txn1。随后,执行读取(A),所述读取(A)需要本地快照。该本地快照提供了第一节点102上此时的活动事务的列表,且本地快照用于确定数据的可见性。第一节点102的快照是<S1>122,130,132,其中具有本地事务ID 122、130以及132的事务当前在第一节点102上运行。被这些事务修改的任何数据不应被txn1看到,以确保已提交读隔离。随后,写入(B)命令在第二节点104上启动具有200的本地事务ID的远程事务txn2。将语句传送至第二节点104。随后,在第二节点104上请求本地快照。此本地快照是<S2>372,399,412。具有本地事务ID 372、399以及412的事务当前在第二节点104上运行,并且被这些事务修改的任何数据不应被txn2看到,从而实现在第二节点104上对此语句的已提交读隔离。
图7图示了涉及在第一节点102以及第二节点104两者上执行的查询的事务txn1190。首先,在第一节点102上开始具有433的事务ID的事务txn1。随后,写入命令(A,B)涉及在第一节点102以及第二节点104两者上的数据修改。因此,在第二节点104上打开具有112的事务ID的新事务txn2。同时,具有事务ID 212的另一事务txn3在第一节点102以及第二节点104上执行到最终提交阶段的。事务txn3在第二节点104上准备并且提交,但尚未在第一节点102上提交。此时,在第一节点102上,请求快照并且给出快照<S1>212,因为212仍是活动的。然而,在第二节点104上,给出的快照是<S2>空,因为212已经在第二节点104上完成。如果使用本地快照执行写入(A,B)的查询,那么将存在不一致状态,其中ID 212的事务呈现为在第二节点104上但不在第一节点102上提交。
为了消除此类不一致,一个实施例实施快照调和200,如图8中所图示。首先,开始事务,并且在第一节点102、第二节点104以及第三节点106上执行查询。第一节点102,即其中开始事务的TM,将短快照请求消息传送到第二节点104,第三节点106,以及,将会在开始执行查询之前执行语句的所有参与节点。随后,第二节点104以及第三节点106采用最新快照并且以全局ID唯一格式传送快照。在全局ID唯一格式中,对于所有活动事务,仅传送全局事务ID。第一节点102接收来自参与节点,第二节点104以及第三节点106的所有快照。随后第一节点102形成第一节点102、第二节点104以及第三节点106的所有快照的调和列表,所述调和列表是新的ID列表,所述新的ID列表是来自所有节点的列表的并集。接着,第一节点102将调和快照传送到所有参与节点。
所有参与节点接收全局ID格式的调和快照列表,并且将其转换成本地格式。列表中的每一全局事务ID对应于本地事务ID。将调和快照从全局格式转换成本地格式涉及调整步骤以消除不一致性。参与节点采用调和快照与发送到TM的快照的交集。对于不是所述交集的一部分的任何事务,要么当前节点从未参与所述事务,要么所述节点参与所述事务,但将所述事务看作在其它节点上活动的。如果当前节点从未参与所述事务,那么可以忽略此事务ID。然而,如果所述节点参与所述事务,那么新事务ID将被包括为最新构造的快照的一部分,从而确保如果一个节点未看到事务的影响,那么没有节点会看到它。之后,TM将查询本文传送到所有参与节点。最终,所有参与节点使用最新构造的快照执行查询。
图9图示了可以用于实施本文中所公开的装置以及方法的处理系统270的框图。特定装置可利用所有所示的部件或仅所述部件的子集,且装置之间的集成水平可能不同。此外,装置可以包含部件的多个例子,例如多个处理单元、处理器、存储器、发射器、接收器等。处理系统可以包含配备有一个或多个输入装置的处理单元,所述输入装置例如麦克风、鼠标、触摸屏、小键盘、键盘等。此外,处理系统270可以配备有一个或多个输出装置,例如扬声器、打印机、显示器等。处理单元可以包括中央处理单元(CPU)274、存储器276、大容量存储装置278、显示卡280以及连接到总线上的I/O接口288。
总线可以是任何类型的若干总线架构中的一者或多者,包括存储器总线或存储器控制器、外围总线、视频总线等。CPU 274可以包含任何类型的电子数据处理器。存储器276可以包含任何类型的系统存储器,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、只读存储器(ROM)、其组合等。在一个实施例中,存储器可以包括在启动时使用的ROM、以及在执行程序时使用的用于程序以及数据存储的DRAM。
大容量存储装置278可以包含任何类型的存储装置,所述存储装置经配置以存储数据、程序以及其它信息,并且使得数据、程序以及其它信息为经由总线可存取的。大容量存储装置278可以包含例如固态驱动器、硬盘驱动器、磁盘驱动器、光盘驱动器等中的一者或多者。
显示卡280以及I/O接口288提供接口以将外部输入以及输出装置耦合到处理单元上。如所图示,输入以及输出装置的实例包括耦合到显示卡上的显示器以及耦合到I/O接口上的鼠标/键盘/打印机。可以将其它装置耦合到处理单元上,并且可以利用另外的或较少的接口卡。例如,串行接口卡(未描绘)可以用于为打印机提供串行接口。
处理单元还包括一个或多个网络接口284,所述网络接口可以包含以太网线缆等有线链路和/或无线链路,以访问节点或不同网络。网络接口284允许处理单元经由网络与远程单元通信。例如,网络接口可以经由一个或多个发射器/发射天线以及一个或多个接收器/接收天线提供无线通信。在一个实施例中,处理单元耦合到局域网或广域网上以用于数据处理以及与远程装置通信,所述远程装置例如其它处理单元、因特网、远程存储设施等。
一个实施例的优点包括在没有单点故障(SPOF)的情况下管理快照的能力。此外,实施例的优点包括改进的可扩展性。
虽然本发明中已提供若干实施例,但应理解,在不脱离本发明的精神或范围的情况下,本发明所公开的系统和方法可以以许多其它特定形式来体现。本发明的实例应被视为说明性的而非限制性的,且本发明不限于本文所给出的细节。例如,各种元件或部件可在另一系统中组合或集成,或某些特征可省略或不实施。
另外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可与其它系统、模块、技术或方法进行组合或整合。展示或论述为彼此耦合或直接耦合或通信的其它项也可以采用电方式、机械方式或其它方式通过某一接口、装置或中间组件间接地耦合或通信。其它变化、替代和改变的示例可以由所属领域的技术人员在不脱离本文精神和所公开的范围的情况下确定。
Claims (20)
1.一种大规模并行处理(MPP)数据库中的事务处理的方法,所述方法包括:
通过事务管理器从第一资源管理器接收所述第一资源管理器的第一快照;
通过所述事务管理器从第二资源管理器接收所述第二资源管理器的第二快照;
调和所述第一资源管理器的所述第一快照以及所述第二资源管理器的所述第二快照以产生调和快照;
通过所述事务管理器将所述调和快照传送到所述第一资源管理器以及所述第二资源管理器;以及
使用所述调和快照执行事务。
2.根据权利要求1所述的方法,还包括:给所述事务分配全局事务ID。
3.根据权利要求2所述的方法,其中分配所述全局事务ID包括:将所述事务管理器的逻辑名称附加到本地事务ID上。
4.根据权利要求2所述的方法,还包括:给所述第一资源管理器分配本地事务ID。
5.根据权利要求1所述的方法,还包括:通过所述事务管理器从第三资源管理器接收所述第三资源管理器的第三快照,其中调和所述第一资源管理器的所述第一快照以及所述第二资源管理器的所述第二快照包括:调和所述第三资源管理器的所述第三快照与所述第一资源管理器的所述第一快照以及所述第二资源管理器的所述第二快照。
6.根据权利要求1所述的方法,还包括:通过所述事务管理器从多个资源管理器接收所述多个资源管理器的多个快照,其中调和所述第一资源管理器的所述第一快照以及所述第二资源管理器的所述第二快照进一步包括:调和所述多个资源管理器的所述多个快照与所述第一资源管理器的所述第一快照以及所述第二资源管理器的所述第二快照。
7.根据权利要求1所述的方法,还包括:确定所述事务是否是所述事务管理器本地的。
8.根据权利要求1所述的方法,还包括:执行所述事务的提交。
9.根据权利要求1所述的方法,还包括:执行所述事务的回滚。
10.根据权利要求1所述的方法,还包括:通过所述事务管理器发送对所述第一资源管理器的所述第一快照的请求。
11.根据权利要求1所述的方法,其中调和所述第一资源管理器的所述第一快照以及所述第二资源管理器的所述第二快照包括:指定所述调和快照为所述第一资源管理器的所述第一快照以及所述第二资源管理器的所述第二快照的并集。
12.一种MPP数据库中的事务处理的方法,所述方法包含:
通过第一资源管理器将所述第一资源管理器的第一快照传送到事务管理器;
通过所述资源管理器从所述事务管理器接收根据所述第一资源管理器的所述第一快照以及第二资源管理器的第二快照生成的调和快照;以及
使用所述调和快照执行第一事务。
13.根据权利要求12所述的方法,还包括:执行所述第一事务的提交。
14.根据权利要求12所述的方法,还包括:执行所述第一事务的回滚。
15.根据权利要求12所述的方法,还包括:通过所述第一资源管理器从所述事务管理器接收对所述第一快照的请求。
16.根据权利要求12所述的方法,其中所述调和快照包含全局事务ID,所述方法还包括:将所述调和快照转换成包含本地事务ID的转换快照。
17.根据权利要求16所述的方法,其中将所述调和快照转换成所述转换快照包括:减少所述调和快照中的不一致性。
18.根据权利要求17所述的方法,其中减少所述调和快照中的不一致性包括:
确定所述调和快照以及所述第一快照的交集;以及
根据所述第一资源管理器是否参与不是所述交集的组成部分的第二事务来判定所述第二事务是否包括在所述转换快照中。
19.一种MPP数据库的事务管理器,其包含:
处理器;以及
计算机可读存储介质,所述计算机可读存储介质存储有可被所述处理器执行的程序,所述程序包括用以进行以下操作的指令:
通过所述事务管理器从第一资源管理器接收所述第一资源管理器的第一快照,
通过所述事务管理器从第二资源管理器接收所述第二资源管理器的第二快照,
调和所述第一资源管理器的所述第一快照以及所述第二资源管理器的所述第二快照,
通过所述事务管理器将所述调和快照传送到所述第一资源管理器以及所述第二资源管理器,以及
使用所述调和快照执行事务。
20.一种MPP数据库的第一资源管理器,其包含:
处理器;以及
计算机可读存储介质,所述计算机可读存储介质存储有可被所述处理器执行的程序,所述程序包括用以进行以下操作的指令:
通过所述第一资源管理器将所述第一资源管理器的第一快照传送到事务管理器,
通过所述第一资源管理器接收调和快照以及第二资源管理器的第二快照,以及
使用所述调和快照执行事务。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/798,344 | 2013-03-13 | ||
US13/798,344 US9348641B2 (en) | 2013-03-13 | 2013-03-13 | System and method for performing a transaction in a massively parallel processing database |
PCT/US2014/024601 WO2014165160A1 (en) | 2013-03-13 | 2014-03-12 | System and method for performing a transaction in a massively parallel processing database |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104885054A true CN104885054A (zh) | 2015-09-02 |
CN104885054B CN104885054B (zh) | 2018-01-12 |
Family
ID=51533030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480003613.9A Active CN104885054B (zh) | 2013-03-13 | 2014-03-12 | 大规模并行处理数据库中执行事务的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9348641B2 (zh) |
EP (1) | EP2932370B1 (zh) |
CN (1) | CN104885054B (zh) |
WO (1) | WO2014165160A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598992A (zh) * | 2015-10-15 | 2017-04-26 | 中兴通讯股份有限公司 | 数据库的操作方法及装置 |
CN106959888A (zh) * | 2016-01-11 | 2017-07-18 | 杭州海康威视数字技术股份有限公司 | 云存储系统中的任务处理方法及装置 |
CN110019102A (zh) * | 2017-10-06 | 2019-07-16 | 波音公司 | 分布式数据管理系统及方法 |
CN112486955A (zh) * | 2020-12-04 | 2021-03-12 | 高慧军 | 基于大数据和人工智能的数据维护方法及大数据平台 |
WO2023103990A1 (zh) * | 2021-12-10 | 2023-06-15 | 中兴通讯股份有限公司 | 数据库的事务快照生成方法、装置、设备及存储介质 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9715405B2 (en) * | 2013-09-23 | 2017-07-25 | International Business Machines Corporation | Efficient coordination across distributed computing systems |
US10180973B2 (en) | 2014-09-26 | 2019-01-15 | Oracle International Corporation | System and method for efficient connection management in a massively parallel or distributed database environment |
US10394818B2 (en) | 2014-09-26 | 2019-08-27 | Oracle International Corporation | System and method for dynamic database split generation in a massively parallel or distributed database environment |
US10528596B2 (en) | 2014-09-26 | 2020-01-07 | Oracle International Corporation | System and method for consistent reads between tasks in a massively parallel or distributed database environment |
US10078684B2 (en) * | 2014-09-26 | 2018-09-18 | Oracle International Corporation | System and method for query processing with table-level predicate pushdown in a massively parallel or distributed database environment |
US10089357B2 (en) * | 2014-09-26 | 2018-10-02 | Oracle International Corporation | System and method for generating partition-based splits in a massively parallel or distributed database environment |
US10380114B2 (en) | 2014-09-26 | 2019-08-13 | Oracle International Corporation | System and method for generating rowid range-based splits in a massively parallel or distributed database environment |
US10089377B2 (en) * | 2014-09-26 | 2018-10-02 | Oracle International Corporation | System and method for data transfer from JDBC to a data warehouse layer in a massively parallel or distributed database environment |
US10387421B2 (en) | 2014-09-26 | 2019-08-20 | Oracle International Corporation | System and method for generating size-based splits in a massively parallel or distributed database environment |
CN104657483B (zh) * | 2015-02-28 | 2018-06-15 | 华为技术有限公司 | 处理事务的方法、处理节点、中心节点和集群 |
US9892160B2 (en) | 2015-04-07 | 2018-02-13 | International Business Machines Corporation | Database statistics based on transaction state |
CN107045454B (zh) * | 2016-02-06 | 2020-06-26 | 华为技术有限公司 | 跨进程分布式事务控制方法及相关系统 |
US10545815B2 (en) * | 2016-08-03 | 2020-01-28 | Futurewei Technologies, Inc. | System and method for data redistribution in a database |
US10503725B2 (en) | 2016-10-13 | 2019-12-10 | Futurewei Technologies, Inc. | Decentralized distributed database consistency |
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 |
CN109684048B (zh) * | 2018-11-22 | 2021-07-09 | 华为技术有限公司 | 事务提交系统中处理事务的方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6529921B1 (en) * | 1999-06-29 | 2003-03-04 | Microsoft Corporation | Dynamic synchronization of tables |
CA2403294C (en) * | 1999-06-08 | 2007-04-10 | Iti, Inc. | Bidirectional database replication scheme for controlling ping-ponging |
US20090083088A1 (en) * | 2007-09-20 | 2009-03-26 | Microsoft Corporation | Synchronizing data between business applications |
US7523276B1 (en) * | 2003-06-30 | 2009-04-21 | Veritas Software Corporation | Synchronization of selected data from snapshots stored on different storage volumes |
US8032351B2 (en) * | 2006-11-30 | 2011-10-04 | Symantec Corporation | Running a virtual machine directly from a physical machine using snapshots |
US20120136839A1 (en) * | 2010-11-30 | 2012-05-31 | Peter Eberlein | User-Driven Conflict Resolution Of Concurrent Updates In Snapshot Isolation |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6470342B1 (en) * | 1999-03-12 | 2002-10-22 | Compaq Computer Corporation | Process of maintaining a distributed map of transaction identifiers and using hashing to access these maps |
GB2409544A (en) * | 2003-12-24 | 2005-06-29 | Ibm | Involving participants in a distributed transaction |
US7712096B2 (en) * | 2004-12-21 | 2010-05-04 | International Business Machines Corporation | Method, system, and storage medium for dynamically reordering resource participation in two-phase commit to heuristically optimize for last-agent optimization |
JP4795787B2 (ja) * | 2005-12-09 | 2011-10-19 | 株式会社日立製作所 | ストレージシステム、nasサーバ、及びスナップショット方法 |
US8204860B1 (en) * | 2010-02-09 | 2012-06-19 | F5 Networks, Inc. | Methods and systems for snapshot reconstitution |
JP2012018449A (ja) * | 2010-07-06 | 2012-01-26 | Fujitsu Ltd | スナップショット取得処理プログラム、スナップショット取得処理方法、スナップショット・パティシパント・コンピュータ、スナップショット・コーディネータ・コンピュータ |
JP6078546B2 (ja) * | 2011-09-28 | 2017-02-08 | エレメンタム エスシーエム (ケイマン)リミテッドElementum Scm (Cayman) Ltd. | 供給、製造および物流データの分析および提示 |
US8935205B2 (en) * | 2011-11-16 | 2015-01-13 | Sap Ag | System and method of performing snapshot isolation in distributed databases |
US20150120645A1 (en) * | 2013-10-31 | 2015-04-30 | Futurewei Technologies, Inc. | System and Method for Creating a Distributed Transaction Manager Supporting Repeatable Read Isolation level in a MPP Database |
-
2013
- 2013-03-13 US US13/798,344 patent/US9348641B2/en active Active
-
2014
- 2014-03-12 EP EP14778795.6A patent/EP2932370B1/en active Active
- 2014-03-12 WO PCT/US2014/024601 patent/WO2014165160A1/en active Application Filing
- 2014-03-12 CN CN201480003613.9A patent/CN104885054B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2403294C (en) * | 1999-06-08 | 2007-04-10 | Iti, Inc. | Bidirectional database replication scheme for controlling ping-ponging |
US6529921B1 (en) * | 1999-06-29 | 2003-03-04 | Microsoft Corporation | Dynamic synchronization of tables |
US7523276B1 (en) * | 2003-06-30 | 2009-04-21 | Veritas Software Corporation | Synchronization of selected data from snapshots stored on different storage volumes |
US8032351B2 (en) * | 2006-11-30 | 2011-10-04 | 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 |
US20120136839A1 (en) * | 2010-11-30 | 2012-05-31 | Peter Eberlein | User-Driven Conflict Resolution Of Concurrent Updates In Snapshot Isolation |
Non-Patent Citations (1)
Title |
---|
SUDARSHAN: ""Massively Parallel/Distributed Data Storage Systems"", 《HTTP://WWW.CSE.IITB.AC.IN/-SUDARSHA/TALKS/IBMSCHOOL-OCT2012-SUDARSHAN.PPTX》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598992A (zh) * | 2015-10-15 | 2017-04-26 | 中兴通讯股份有限公司 | 数据库的操作方法及装置 |
CN106598992B (zh) * | 2015-10-15 | 2020-10-23 | 南京中兴软件有限责任公司 | 数据库的操作方法及装置 |
CN106959888A (zh) * | 2016-01-11 | 2017-07-18 | 杭州海康威视数字技术股份有限公司 | 云存储系统中的任务处理方法及装置 |
CN110019102A (zh) * | 2017-10-06 | 2019-07-16 | 波音公司 | 分布式数据管理系统及方法 |
CN110019102B (zh) * | 2017-10-06 | 2023-09-19 | 波音公司 | 分布式数据管理系统及方法 |
CN112486955A (zh) * | 2020-12-04 | 2021-03-12 | 高慧军 | 基于大数据和人工智能的数据维护方法及大数据平台 |
WO2023103990A1 (zh) * | 2021-12-10 | 2023-06-15 | 中兴通讯股份有限公司 | 数据库的事务快照生成方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2014165160A1 (en) | 2014-10-09 |
US9348641B2 (en) | 2016-05-24 |
EP2932370B1 (en) | 2019-02-13 |
EP2932370A4 (en) | 2016-06-01 |
EP2932370A1 (en) | 2015-10-21 |
US20140279986A1 (en) | 2014-09-18 |
CN104885054B (zh) | 2018-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104885054A (zh) | 大规模并行处理数据库中执行事务的系统和方法 | |
CN105684377B (zh) | 一种创建支持mpp数据库中的可重读隔离级别的分布式事务管理器的系统和方法 | |
CN101964820B (zh) | 一种保持数据一致性的方法及系统 | |
CN103345502B (zh) | 分布式数据库的事务处理方法和系统 | |
CN111190935B (zh) | 数据读取方法、装置、计算机设备及存储介质 | |
JP2023546249A (ja) | トランザクション処理方法、装置、コンピュータ機器及びコンピュータプログラム | |
CN102201010A (zh) | 无共享架构的分布式数据库系统及其实现方法 | |
CN103473696A (zh) | 一种收集、分析和分发网络商业信息的方法和系统 | |
CN111544895B (zh) | 排行榜处理方法及装置、电子设备、存储介质 | |
CN103399894A (zh) | 一种基于共享存储池的分布式事务处理方法 | |
CN115562676B (zh) | 一种图计算引擎的触发方法 | |
Agrawal et al. | Managing geo-replicated data in multi-datacenters | |
CN110188114A (zh) | 一种数据操作的优化方法、装置、系统、设备和存储介质 | |
CN109298976B (zh) | 一种异构数据库集群备份系统及方法 | |
CN107330098A (zh) | 一种自定义报表的查询方法、计算节点及查询系统 | |
US11226986B2 (en) | Data table partitioning management method and apparatus | |
CN101661583A (zh) | 动态订单工作流模板实例器跟踪系统 | |
CN102654878B (zh) | 嵌入式系统中分布式数据库的数据操作方法及板卡 | |
CN108228725B (zh) | 基于分布式数据库的gis应用系统 | |
CN110427427B (zh) | 一种通过引脚桥接实现全局事务分布式处理方法 | |
Wei et al. | Scalable join queries in cloud data stores | |
CN108090056B (zh) | 数据查询方法、装置及系统 | |
CN116150263B (zh) | 一种分布式图计算引擎 | |
CN105723365A (zh) | 用于优化索引、主数据库节点和订户数据库节点的方法 | |
WO2013132628A1 (ja) | データベースの管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |