CN107430603A - 大规模并行处理数据库的系统和方法 - Google Patents
大规模并行处理数据库的系统和方法 Download PDFInfo
- Publication number
- CN107430603A CN107430603A CN201580066953.0A CN201580066953A CN107430603A CN 107430603 A CN107430603 A CN 107430603A CN 201580066953 A CN201580066953 A CN 201580066953A CN 107430603 A CN107430603 A CN 107430603A
- Authority
- CN
- China
- Prior art keywords
- node
- cluster
- lsc
- subregion
- sub
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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
-
- 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/278—Data partitioning, e.g. horizontal or vertical partitioning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种向大规模并行处理(massively parallel processing,简称MPP)集群增加分区的方法包括:确定MPP集群元子集群(meta sub‑cluster,简称MSC)第一叶子集群(leaf sub‑cluster,简称LSC)可用节点的第一数量是否大于或等于一个表格分区的第二数量(168);当可用节点第一数量大于或等于分区第二数量时,将第一LSC的第一节点分配至第一分区(170)。所述方法还包括当可用节点的第一数量小于分区的第二数量时,在MSC中查找第二LSC。
Description
相关申请案交叉申请
本申请要求于2014年12月16日递交的发明名称为“大规模并行处理数据库的系统和方法”的第14/572,502号美国非临时专利申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文。
技术领域
本发明涉及分布式处理和计算的系统和方法,尤其涉及大规模并行处理数据库的系统和方法。
背景技术
大规模并行处理(massively parallel processing,简称MPP)是指多个处理器对同一程序进行协调处理,由每个处理器处理所述程序的不同部分。不同处理器之间相互通信以完成某项任务,这些处理器分别使用自身的操作系统和内存资源。MPP系统可以设计成可扩展至大量数据节点的形式。
在MPP系统中,管理员将分布式计算应用数据分配到多个处理器,称为分区或数据节点。例如,MPP数据库系统有助于将数据库数据分配到多个数据节点,以进行并行和分布式的查询处理。
MPP系统可以以集群子系统为基础,向在集群环境下运行的上层软件程序(如数据库/应用程序服务器或应用程序)提供高可用性。既提供集群的可扩展性(就节点数而言),同时又提供高可用性是存在问题的。举例而言,数据库集群是扁平的,因此支持的节点数有限。例如,共享磁盘集群可最多支持32个节点,无共享集群支持128个节点。在另一示例中,集群具有较高的扩展性,但其高可用性受到限制,原因在于高可用性架构是松散耦合的。还有一个例子更类似于多组客户端/服务器高可用性架构,其选定服务器的最大仲裁协定同样使其高可用性受到限制。
发明内容
一种向大规模并行处理(massively parallel processing,简称MPP)集群增加分区的实施例方法包括:确定MPP集群元子集群(meta sub-cluster,简称MSC)第一叶子集群(leaf sub-cluster,简称LSC)可用节点的第一数量大于还是等于表格分区的第二数量;当可用节点的第一数量大于或等于分区的第二数量时,将第一LSC的第一节点分配至第一分区。所述方法还包括当可用节点的第一数量小于分区的第二数量时,在MSC中查找第二LSC。
在大规模并行处理(massively parallel processing,简称MPP)集群中执行复制的实施例方法包括:确定MPP集群元子集群(meta sub-cluster,简称MSC)第一叶子集群(leaf sub-cluster,简称LSC)第一节点上的第一分区的复制类型,并为第一LSC确定第一接管LSC。该方法还包括,为第一节点确定第一接管节点,以及根据复制类型、第一接管节点和第一接管LSC对第一分区进行复制。
在大规模并行处理(massively parallel processing,简称MPP)集群中移除分区的实施例方法包括:确定节点在元子集群的叶子集群(leaf sub-cluster,简称LSC)上的位置,所述分区位于节点上,并释放该节点上的分区。该方法还包括,更新目录以指示分区已被删除。
一种实施例计算机包括:处理器和用于存储处理器执行的程序的非瞬时性计算机可读存储介质。该程序包括以下指令:确定MPP集群元子集群(meta sub-cluster,简称MSC)第一叶子集群(leaf sub-cluster,简称LSC)可用节点的第一数量大于还是等于表格分区的第二数量;当可用节点的第一数量大于或等于分区的第二数量时,将第一LSC的第一节点分配至第一分区。该程序还包括以下指令:当可用节点的第一数量小于分区的第二数量时,在MSC中查找第二LSC。
一种实施例计算机包括:处理器和用于存储处理器执行的程序的非瞬时性计算机可读存储介质。该程序包括以下指令:确定MPP集群元子集群(meta sub-cluster,简称MSC)第一叶子集群(leaf sub-cluster,简称LSC)第一节点第一分区的复制类型,以及为第一LSC确定第一接管LSC。该程序还包括以下指令:为第一节点确定第一接管节点,以及根据复制类型、第一接管节点和第一接管LSC对第一分区进行复制。
上文仅粗略描述了本发明实施例的特征,以便下文中关于本发明的详细描述能够得到更好理解。下文中将描述本发明实施例的其他特征和优点,构成了本发明权利要求的内容。本领域技术人员应当理解,基于此处公开的理念和具体实施例,可便利地修改和设计与本发明具有相同目的的其他结构和过程。本领域技术人员也应意识到,这些同等建构不应背离附带权利要求中规定的本发明的精神和范围。
附图说明
为了更完整地理解本发明及其优点,现在参考下文结合附图进行的描述,其中:
图1示出了大规模并行处理(massively parallel processing,简称MPP)集群拓扑的实施例;
图2示出了一实施例的MPP集群拓扑中的分区和副本放置图;
图3示出了一种在MPP数据库中创建表的方法实施例的流程图;
图4示出了一种在MPP数据库中复制表或分区的方法实施例的流程图;
图5示出了一种在MPP数据库的表中增加新分区的方法实施例的流程图;
图6示出了一种在MPP数据库的表中删除分区的方法实施例的流程图;
图7示出了一实施例的计算机系统的框图。
除非另有指示,否则不同图中的对应标号和符号通常指代对应部分。绘制各图是为了清楚地说明实施例的相关方面,因此未必是按比例绘制的。
具体实施方式
首先应理解,尽管下文提供一项或多项实施例的说明性实施方案,但所公开的系统和/或方法可使用任何数量的技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实施方案、附图和技术,包括本文所说明并描述的示例性设计和实施方案,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。
实施例包括在大规模并行处理(massively parallel processing,简称MPP)数据库的分层集群上放置和管理数据库对象,例如分区、索引及副本的方法。数据库对象的放置和管理可配置为与数据访问模式及可用性需求一致。例如,就表格而言,分区被拆分并位于相同的子集群中。在另一示例中,当两个表格被同时正常查询时,这两个表格的分区即被共置。在一示例中,副本被存放在相同的叶子集群(leaf sub-cluster,简称LFC),以进行同步复制。在另一示例中,由于异步或半同步复制,副本被存放在LFC的外部。
有些MPP数据库系统集中于可用性需求相对较低及采用简单数据分布模型的分析应用。其他MPP数据库系统将MPP架构进行扩展,以支持事务处理应用及可用性更高的其他应用。高可用性(high availability,简称HA)指的是借助系统的高弹性和强能力,通过手动或管理员干预处理故障或处理出错,以确保故障时间最短,从而确保整个系统的正常运行。MPP系统以一个集群子系统为基础,向在集群环境中运行的上层软件程序(如数据库/应用程序服务器或应用程序)提供高可用性。既提供集群的可扩展性(就节点而言),同时又提供HA是存在问题的。这可以通过要么突出HA,要么突出可扩展性得到解决。
例如,有些MPP系统可让管理员基于集群的心跳开销及其对集群可扩展性的影响,创建3种类型的HA集群。心跳(heart-beat,简称HB)指各个集群组件与节点之间,为主动发现MPP系统中的故障组件(例如处理器、节点、存储器或网络)而发出的主动消息/探测。三种HA集群模型可由MPP系统中的一个组件,例如集群成员层(cluster membership layer,简称CML)执行。
第一种HA集群模型为松散耦合集群。在该模型中,未定义CML,对于保持集群的作用十分有限。当未定义CML时,集群与联合系统相似。在联合系统中,所有集群节点可能不知晓集群中所有其他节点的存在。但是,运行在某些节点上的应用可依据应用与节点之间的通信或协调需要,而知晓集群中的其他节点子集。当定义了CML时,其可能知晓集群中的所有节点,但并不存在任何主动心跳。在两种情况下,由于不存在任何HB,因此故障组件在某一节点上运行的应用尝试访问这些组件或节点时才被发现。在一示例中,如果没有定义任何恢复机制,错误将被反映给管理员,以便其恢复MPP系统的完整性。在某些情况下,例如出现某些错误时,应用可实施该应用特定的临时恢复机制。由于存在最低CML开销,因此该模型可提供高扩展性。
另一种HA集群模型为主从集群。在该模型中,集群成员责任被分配给一个或两个主节点,而有规律的心跳只会发生在主节点与从节点之间。在该系统中,从节点不会在它们之间发送任何心跳消息,且只有主节点参与集群成员决策。这类集群设置是可扩展的,因为心跳仅限于主从节点。但是,该模型提供的HA有限,因为整个集群的存在取决于一个或两个主节点。增加集群中主节点的数量并不能解决这一问题,因为这需要引入额外的消息以保持主节点同步,从而有损可扩展性及性能。这种方法可在保持一定集群可扩展性的同时,提供相对较高水平的HA。
第三种HA模型为紧密耦合集群。在此类集群中,所有节点地位相同,而且它们向彼此发送心跳消息,以保持集群成员的完整性。该系统的集群内具有更多的消息流量,且使用更复杂的算法保持集群的完整性。这类集群可提供很高水平的可用性,但可扩展性有限。
在一示例中,使用高度可扩展性的高可用集群(highly scalable highavailability cluster,简称HSHAC),以便在提升可扩展性的同时向集群提供HA。提供的HA及可扩展性可与MPP应用,例如数据库管理系统,集成到HSHAC。HSHAC可用于共享磁盘、无共享或混合架构。HSHAC的使用可避免任何组件的单点故障(single point of failure,简称SPOF),从而提升可用性和可靠性。实现HA之后,当集群中至少有一个或预先确定的最小数量的活节点时,集群将会启动。但是,当集群的多个节点或组件出现故障时,该应用的性能和吞吐量可能会降低或受限。另一个特征是高可用性(就集群规模而言),因此集群可在提供高HA的同时扩展至大量节点。可在运行时间性能与故障恢复之间进行折衷。
HSHAC中的节点可通过在分层结构的集群中设置节点而得到高度扩展。集群可被视作更小的紧密耦合子集群的集合。由于子集群紧密耦合,因此各子集群均可为该子集群提供相当高或足够高的可用性。该子集群被称作叶子集群(leaf sub-cluster,简称LSC)或叶。元子集群(meta sub-cluster,简称MSC)的第二层叠加在叶集群之上,构成层次的媒介节点。该MSC在限制各个子集群的心跳流量的同时管理叶的可用性。
MSC可形成层次的多层,其中一个根MSC位于顶部。层次为平衡树,各个树节点分别代表一个子集群。更多的集群节点可能位于LSC中,更小数量的节点可能位于MSC的各层。图1示出了带有一个子集群层次的集群拓扑100。该拓扑代表一棵扇出为3的树(支持有27个节点的集群)。每个树节点或子集群可能在一个紧密耦合集群模型中拥有32个数据或处理节点或组件。该树的高度为3,其中:第一层为根MSC 102;第二层104(带有三个MSC,即MSC1、MSC2和MSC3)与根MSC 102耦合;第三层包括LSC或叶110(L1、L2、L3、L4、L5、L6、L7、L8及L9)与第二层104耦合。此树在每个MSC可容纳32x 32=1024个节点,且可扩展至32x 32x32=32,768个节点。在另一实施例中,树可能具有不同的高度,例如根MSC与LSC之间的多个超过一层的MSC。一个高度为4的集群可扩展至一百万以上的节点。关于HSHAC的更多详情载于2013年4月26日提交的美国专利申请13/871,276,现特此将该申请纳入本文以供参考。
带有集群拓扑100的集群可通过配置高可用性程度以实现高可用性。这种HA程度被定义为子集群或树节点(特定数据或处理节点为其成员)的最大数量。HA程度反映集群应对其中多个同步故障的弹性。提高HA程度可以增加集群中保持的集群成员信息的副本。但这可能影响或降低运行时间性能。LSC中的节点仅属于该子集群。MSC中的节点具有的最低HA程度为2。这意味着,MSC中的节点属于至少两个子集群(包括该MSC)。属于或连接两个子集群的节点被称作连接节点。例如,带有拓扑100的整个集群的HA程度为2,因为任何连接节点都是最多两个子集群的一部分。
各子集群的HA可通过该子集群中所有节点的心跳进行密切监测。心跳消息交换仅限于各子集群的节点之间,无法到达其他子集群的节点。限制子集群的心跳流量可提高系统的可扩展性。当识别或检测到节点崩溃时,子集群中的其他节点可在足够快的响应时间内恢复至新成员,并将崩溃节点从该子集群删除。例如,集群拓扑100的子集群L1包括节点N1、N1a和N1b。当节点N1a崩溃时,L1的成员层发现该崩溃,并利用节点N1和N1b形成新子集群L1,以及将节点N1a从L1删除,而令情况得以恢复。当崩溃节点为连接节点或多个节点同时崩溃时,可使用更复杂的成员维护机制。
为了有效管理规模相对较大的集群中的集群成员,可将集群划分为更小的子集群,以获得独立的CML消息。这能促进确定子集群内的心跳和成员管理开销。可使用基于令牌环的心跳消息,例如根据Totem协议。在其他实施例中,该HB可被另一算法(例如所有同级消息)代替,其中各节点向子集群的每个其他节点发送HB消息及接收来自每个其他节点的HB消息。
集群中的节点可能为叶子节点或连接节点。叶子节点指仅属于单个子集群的成员的节点。按照定义,叶子节点的HA为1。叶子节点位于树层次的底层,且属于LSC的一部分。但叶子节点可能存在于子集群的任何更高层。连接节点指属于两个或两个以上(视集群的HA程度而定)子集群的成员的节点。连接节点连接两个或两个以上的子集群,并利用轻型成员协议,向所有连接的子集群提供HA。子集群之一被指定为连接节点的归属集群。当连接节点出现故障时,其归属集群中的一个同级可负责寻找替代的连接节点。
在紧密耦合子集群中,当出现故障或崩溃时,叶子节点可以覆盖或接管子集群中的任何其他叶子节点。该叶子节点还可被子集群中的任何其他叶覆盖。连接节点覆盖其子集群中的任何节点,且被其归属集群中的任何同级节点覆盖。此外,节点可被升级至有能力覆盖或接管崩溃的节点。可被升级的节点要么是HA程度为1的LSC中的多个叶子节点,要么是HA程度低于整个集群(所有子集群的最高HA程度)的MSC中的一个节点。在集群创建之时还可配置最高HA程度。
图2示出了子集群130(包含MSC 132及LSC 134、136和138)中分区的放置。包含客户信息(包括社会安全号(social security number,简称SSN)、名和姓)的表T1被分区,并在LSC 134的节点140、142和144上被同步复制。在同步复制中,副本被置于相同LSC的其他节点上。在同步复制中,变化也一起被同步应用。表T1按社会安全号被分为三个分区,即P11、P12和P13,其中P11在节点140上,P12在节点144上,P13在节点142上。副本P11’、P12’和P13’分别在LSC 134的节点142、144和140上。而且,含有账户信息(包括账号、社会安全号、类型及余额)的表T2,基于账号和社会安全号,在LSC 134上被同步分区。分区P21、P22和P23分别在节点140、144和142上,而副本P21’、P22’和P23’则分别在节点144、142和140上。当客户ssn=账户ssn时,名、姓、账号及余额被选定。
表T3、T4和T5被分区且在LSC 138和136中被异步复制。在异步复制中,副本位于相同MSC的不同LSC上,变化被异步应用。表T3含有客户信息,包括社会安全号、名和姓;表T4含有账户信息,包括账号、社会安全号、类型及余额;表5则含有地区信息,包括州、城市及邮政编码。表3拥有分区P31、P32和P33,分别在LSC 138的节点152、156和154上,而副本P31’、P32’和P33’则分别在LSC 136的节点146、150和148上。类似地,表4拥有分区P41、P42和P43,分别在LSC 138的节点152、156和154上,而副本P41’、P42’和P43’则分别在LSC 136的节点146、150和148上。而且,表5则拥有分区P51和P52,分别在LSC 136的节点146和150上,而副本P51’和P52’则分别在LSC 138的节点152和156上。
图3示出了一种在MPP数据库中创建和放置新表格的方法的流程图160。起初,在步骤164中,系统确定待新增的表格与先前创建的表格之间是否存在外键关系。外键指一个表格中可唯一识别另一表格的一行的一个字段或字段集合。当存在外键关系时,需要保持该分区与外键在一起。当存在外键关系时,系统进入步骤178;当不存在外键关系时,系统则进入步骤168。
在步骤168中,系统确定是否存在一个可用节点数量大于或等于待新增表格的分区数量的LSC。LSC中的节点数量需要大于或等于分区数量,才能平衡用户资源,以及将所有分区放置在同一个LSC的单独节点上。当存在一个可用节点数量大于分区数量的LSC时,该LSC即被选定,系统进入步骤170。另一方面,当不存在此类LSC时,系统将进入步骤174。
在步骤170中,系统向所选LSC中的各个分区分配一个不同的节点。
然后,在步骤172中,系统执行复制。相同的数据存储在不同的节点上,以保证冗余资源之间的一致性。复制可能为同步复制、异步复制或半同步复制。在同步复制中,副本被置于相同LSC的不同节点上,而在异步复制中,副本被置于不同LSC的节点上。在半同步复制中,有些副本被置于同一LSC的节点上,而有些副本则被置于另一LSC的节点上。
在步骤174中,系统确定是否存在充足资源和空间,以向LSC中的单个节点分配多个分区。当有充足资源时,系统进入步骤176,并向LSC中的单个节点分配多个分区。当没有充足资源时,系统则进入步骤180。
在步骤180中,系统遍历直至下一层,以寻找满意的LSC。例如,系统检查父MSC,并在相同MSC中寻找另一LSC。当父MSC中没有另一LSC时,系统进入另一层,在另一MSC中寻找LSC。系统试图寻找离原有LSC最近的LSC。当系统找到满意的LSC时,将进入步骤178。
在步骤178中,系统确定该LSC中是否具有充足资源和负载均衡规则。LSC可能是先前创建的表格的LSC,或尽可能接近先前创建的表格的LSC。当有充足资源时,系统选择该LSC,并进入步骤170,以向表格的分区分配LSC的节点。当没有充足资源时,系统则进入步骤180,以寻找另一LSC。
图4示出了一种在MPP数据库中执行复制的方法的流程图190。例如,流程图190可用于流程图160中的步骤172。起初,在步骤194中,系统确定待复制的表格或分区是否为复制而进行特别配置。当表格或分区为复制而进行特别配置时,系统进入步骤196。当表格或分区没有为复制进行特别配置时,系统则进入步骤198。
在步骤196中,系统确定被配置的复制类型、接管节点,以及针对表格或分区的接管LSC。复制类型可能为同步、异步或半同步。在同步复制中,副本靠近相同LSC的分区,变化也一起被应用。在同步复制中,副本位于相同MSC的不同LSC,变化被异步应用。在半同步复制中,有些副本位于相同的LSC,有些副本位于不同的LSC。同时,系统确定接管节点和接管LSC。接管节点在出现故障或错误的情况下将接管当前节点,且接管LSC将接管当前LSC。
然后,在步骤202中,系统执行复制。副本基于步骤196中的决策可分为同步、异步或半同步。在异步复制中,副本被置于另一LSC的节点上;在同步复制中,副本被置于相同LSC的节点上;在半同步复制中,有些副本被置于相同LSC的节点上,有些副本被置于另一LSC的节点上。设置副本后,系统进入结尾步骤206。
在步骤198中,系统确定容纳主分区的主节点和主LSC的接管节点和接管LSC。系统还确定复制类型。复制类型可能为同步、异步或半同步。在同步复制中,副本在靠近相同LSC的分区的节点上,变化也一起被应用。在异步复制中,副本位于相同MSC的不同LSC的节点上,变化被异步应用。在半同步复制中,有些副本位于相同LSC的节点上,而有些副本则位于不同LSC的节点上。
然后,在步骤200中,系统确定接管节点和接管LSC是否拥有充足资源,用于基于指定负载均衡规则的复制类型。当接管节点和接管LSC拥有充足资源时,系统进入步骤202,以设置复制。当没有充足资源时,系统则进入步骤204,以寻找拥有充足资源的另一LSC。
在步骤204中,系统寻找一个拥有充足资源以进行复制的LSC。系统遍历直至父MSC并在相同的MSC中选择另一LSC。然后,系统返回到步骤200,以确定接管节点和接管LSC是否拥有充足资源以进行复制。
图5示出了一种向现有表格添加新分区的方法的流程图210。起初,在步骤212中,系统决定向该表格添加一个新分区。
然后,在步骤214中,系统确定表格的现有分区所在的LSC。
然后,在步骤216中,系统确定该LSC是否存在一个拥有充足资源以容纳新分区的可用节点。当LCS没有一个拥有充足资源的可用节点时,系统进入步骤224;当LCS有一个拥有充足资源的可用节点时,系统进入步骤218。
在步骤218中,系统将分区放置在LSC的可用节点上。
然后,在步骤220中,系统更新目录,以表明该分区位于LSC的节点上。
最后,系统在步骤222中执行分区的复制,例如使用流程图160示出的方法。同样的数据储存在不同的节点上,以保证冗余资源之间的一致性。另一个节点可能在同一LSC或同一MSC的不同LSC中,需根据是同步复制、异步复制还是半同步复制而定。在同步复制中,副本被置于同一LSC的其他节点上,而在异步复制中,副本被置于不同LSC的节点上。在半同步复制中,相同的副本被置于同一LSC的各个节点上,而其他副本被置于其他LSC的节点上。
步骤224中,系统寻找另一LSC,该LSC的可用节点要具有可供分区的充足资源。系统提升一个级别,并在同一MSC中寻找另一LSC。选定另一LSC。
然后,在步骤226中,系统确定该LSC是否存在一个拥有充足资源以容纳该分区的可用节点。当LSC具有拥有充足资源以容纳该分区的可用节点时,系统进入步骤218,以便在可用节点上创建分区。当LSC没有此类可用节点时,系统返回步骤224,在同一MSC中寻找另一LSC。
图6示出了删除分区的方法流程图230。首先,在步骤232中,系统决定删除表格中的一个分区。
然后,在步骤234中,系统确定要删除的分区所在节点的位置。
然后,在步骤236中,系统标明该分区已从集群目录中删除。副本用集群目录确定接管节点的集群,并根据目录放置分区的副本。
在步骤238中,系统释放节点上的分区。
节点被释放后,在步骤240中系统在LSC目录中标明节点的可用性。
然后,在步骤242中,系统释放与被删除的分区对应的副本分区。副本在另一个节点上,位于同一MSC的同一LSC或不同LSC上。
最后,在步骤244中,系统利用释放资源更新集群目录。然后,这些资源可作其他用途。
图7示出了处理系统270的框图,该处理系统可以用来实现本文公开的设备和方法。特定装置可利用所有所示的组件或所述组件的仅一子集,且装置之间的集成程度可能不同。此外,设备可以包括部件的多个实例,例如多个处理单元、处理器、存储器、发射器、接收器等。处理系统可以包括配备一个或多个输入设备,例如麦克风、鼠标、触摸屏、按键、键盘等的处理单元。另外,处理系统270可配备一个或多个输出设备,例如,扬声器、打印机、显示器等。处理单元可以包括中央处理器(central processing unit,简称CPU)274、存储器276、大容量存储器设备278、视频适配器280以及连接至总线的I/O接口288。
总线可以是任意类型的若干总线架构中的一个或多个,包括存储总线或存储控制器、外设总线、视频总线等等。CPU 274可包括任意类型的电子数据处理器。存储器276可包括任何类型的非瞬时性系统存储器,例如静态随机存取存储器(static random accessmemory,简称SRAM)、动态随机存取存储器(dynamic random access memory,简称DRAM)、同步DRAM(synchronous DRAM,简称SDRAM)、只读存储器(read-only memory,简称ROM)或其组合等等。在一实施例中,所述存储器可包括在开机时使用的ROM以及在执行程序时使用的存储程序和数据的DRAM。
大容量存储器设备278可包括任意类型的非瞬时性存储设备,其用于存储数据、程序和其他信息,并使这些数据、程序和其他信息通过总线访问。大容量存储器设备278可包括如下项中的一种或多种:固态磁盘、硬盘驱动器、磁盘驱动器、光盘驱动器等等。
视频适配器280以及I/O接口288提供接口以将外部输入以及输出装置耦合到处理单元上。如所图示,输入以及输出装置的实例包含耦合到显示卡上的显示器以及耦合到I/O接口上的鼠标/键盘/打印机。其他装置可以耦合到处理单元上,并且可以利用额外的或较少的接口卡。举例来说,串行接口卡(未图示)可以用于为打印机提供串行接口。
处理单元还包含一个或多个网络接口284,所述网络接口284可以包括例如以太网电缆等有线链路,和/或用以接入节点或不同网络的无线链路。网络接口284允许处理单元经由网络与远程单元通信。举例来说,网络接口可以经由一个或多个发射器/发射天线以及一个或多个接收器/接收天线提供无线通信。在一实施例中,所述处理单元与局域网或者广域网耦合以进行数据处理以及与远端设备比如其他处理单元、因特网、远端存储设备等通信。
在一实施例中,处理系统270包括:确定模块,确定MPP集群元子集群(meta sub-cluster,简称MSC)第一叶子集群(leaf sub-cluster,简称LSC)可用节点的第一数量是否大于或等于一个表格分区的第二数量;指派模块,当可用节点的第一数量大于或等于分区的第二数量时,将第一LSC的第一节点分配至第一分区;查找模块,当可用节点的第一数量小于分区的第二数量时,在MSC中查找第二LSC。在部分实施例中,处理系统270可以包括其他或者附加模块用于执行所述实施例中描述的任一或组合的步骤。
在一实施例中,处理系统270包括:确定模块,确定MPP集群元子集群(meta sub-cluster,简称MSC)第一叶子集群(leaf sub-cluster,简称LSC)第一节点第一分区的复制类型;接管模块,为第一LSC确定第一接管LSC;接管模块,为第一节点确定第一接管节点;复制模块,根据复制类型、第一接管节点和第一接管LSC执行对第一分区的复制。在部分实施例中,处理系统270可以包括其他或者附加模块用于执行所述实施例中描述的任一或组合的步骤。
在一实施例中,处理系统270包括:节点定位模块,确定节点在元子集群叶子集群(leaf sub-cluster,简称LSC)上的位置,其中分区位于该节点;节点自由模块,释放节点上的分区;目录更新模块,更新目录以指示分区已被删除。在部分实施例中,处理系统270可以包括其他或者附加模块用于执行所述实施例中描述的任一或组合的步骤。
虽然本发明中已提供若干实施例,但应理解,在不脱离本发明的精神或范围的情况下,本发明所公开的系统和方法可以以许多其他特定形式来体现。本发明的实例应被视为说明性而非限制性的,且本发明并不限于本文本所给出的细节。例如,各种元件或部件可以在另一系统中组合或合并,或者某些特征可以省略或不实施。
此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其他系统、模块、技术或方法进行组合或合并。展示或论述为彼此耦合或直接耦合或通信的其他项也可以采用电方式、机械方式或其他方式通过某一接口、设备或中间部件间接地耦合或通信。其他变化、替代和改变的示例可以由本领域的技术人员在不脱离本文精神和所公开的范围的情况下确定。
Claims (20)
1.一种向大规模并行处理(massively parallel processing,简称MPP)集群增加分区的方法,其特征在于,所述方法包括:
确定MPP集群元子集群(meta sub-cluster,简称MSC)第一叶子集群(leaf sub-cluster,简称LSC)可用节点的第一数量是否大于或等于一个表格分区的第二数量;
当可用节点的第一数量大于或等于分区的第二数量时,将第一LSC的第一节点分配至第一分区;
当可用节点的第一数量小于分区的第二数量时,在MSC中查找第二LSC。
2.根据权利要求1所述的方法,其特征在于,还包括确定表格与先前创建的表格之间是否存在外键关系,其中,所述先前创建的表格位于LSC。
3.根据权利要求1和2所述的方法,其特征在于,所述分区的第二数量为1。
4.根据权利要求1至3所述的方法,其特征在于,还包括确定与第一分区相应的一个表格是否位于第一LSC,其中当表格位于第一LSC时,确定第一LSC可用节点的第一数量是否大于或等于分区的第二数量。
5.根据权利要求1至4所述的方法,其特征在于,还包括更新目录以指示第一分区位于第一节点。
6.根据权利要求1至5所述的方法,其特征在于,还包括复制表格的多个分区。
7.根据权利要求1至6所述的方法,其特征在于,还包括:
确定第一LSC的第一节点是否拥有表格分区第二数量的充足资源;
当第一节点拥有分区第二数量的充足资源时,将分区第二数量分配至第一节点,
其中当第一节点没有分区第二数量的充足资源时,查找第二LSC。
8.一种在大规模并行处理(massively parallel processing,简称MPP)集群中实施复制的方法,其特征在于,所述方法包括:
确定MPP集群元子集群(meta sub-cluster,简称MSC)第一叶子集群(leaf sub-cluster,简称LSC)第一节点第一分区的复制类型;
为第一LSC确定第一接管LSC;
为第一节点确定第一接管节点;
根据复制类型、第一接管节点和第一接管LSC执行对第一分区的复制。
9.根据权利要求8所述的方法,其特征在于,所述执行对第一分区的复制包括将第一分区的副本置于第一LSC的第二接管节点。
10.根据权利要求9所述的方法,其特征在于,所述执行对第一分区的复制包括将第一分区的副本置于MSC第二LSC的第二接管节点。
11.根据权利要求8至10所述的方法,其特征在于,还包括:确定第一分区是否专门为复制而配置;当第一分区专门为复制而配置时,确定复制类型。
12.根据权利要求8至11所述的方法,其特征在于,所述第一分区被列入一个包含多个分区的表格中。
13.根据权利要求12所述的方法,其特征在于,所述为第一节点确定第一接管节点包括为表格主节点确定第二接管节点,以及其中为第一LSC确定第一接管LSC包括为表格主LSC确定第二接管LSC。
14.根据权利要求12所述的方法,其特征在于,还包括:
确定所述第一接管节点是否拥有充足资源;
确定所述第一接管LSC是否拥有充足资源;
当第一LSC没有充足资源时,遍历MSC选择其他接管LSC。
15.一种在大规模并行处理(massively parallel processing,简称MPP)集群中移除分区的方法,其特征在于,所述方法包括:
确定节点在元子集群叶子集群(leaf sub-cluster,简称LSC)上的位置,其中所述分区位于节点;
释放节点上的分区;
更新目录以指示分区已被删除。
16.根据权利要求15所述的方法,其特征在于,还包括:
确定分区副本的位置;
释放副本,以产生释放副本资源。
17.根据权利要求16所述的方法,其特征在于,还包括更新集群目录,以指示释放副本资源的可用性。
18.根据权利要求15至17所述的方法,其特征在于,还包括更新LSC的目录以指示节点的可用性。
19.一种计算机,其特征在于,包括:
处理器;
存储所述处理器的执行程序的非瞬时性计算机可读存储介质,其中,所述程序包括指令,用于:
确定MPP集群元子集群(meta sub-cluster,简称MSC)第一叶子集群(leaf sub-cluster,简称LSC)可用节点的第一数量是否大于或等于一个表格分区的第二数量;
当可用节点的第一数量大于或等于分区的第二数量时,将第一LSC的第一节点分配至第一分区;
当可用节点的第一数量小于分区的第二数量时,在MSC中查找第二LSC。
20.一种计算机,其特征在于,包括:
处理器;
存储所述处理器的执行程序的非瞬时性计算机可读存储介质,其中,所述程序包括指令,用于:
确定MPP集群元子集群(meta sub-cluster,简称MSC)第一叶子集群(leaf sub-cluster,简称LSC)第一节点第一分区的复制类型;
为第一LSC确定第一接管LSC;
为第一节点确定第一接管节点;
根据复制类型、第一接管节点和第一接管LSC执行对第一分区的复制。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/572,502 | 2014-12-16 | ||
US14/572,502 US10372696B2 (en) | 2014-12-16 | 2014-12-16 | System and method for massively parallel processing database |
PCT/CN2015/097209 WO2016095764A1 (en) | 2014-12-16 | 2015-12-12 | System and method for massively parallel processing database |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107430603A true CN107430603A (zh) | 2017-12-01 |
CN107430603B CN107430603B (zh) | 2020-05-08 |
Family
ID=56111374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580066953.0A Active CN107430603B (zh) | 2014-12-16 | 2015-12-12 | 大规模并行处理数据库的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10372696B2 (zh) |
EP (2) | EP3224746B1 (zh) |
CN (1) | CN107430603B (zh) |
WO (1) | WO2016095764A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9959332B2 (en) * | 2015-01-21 | 2018-05-01 | Futurewei Technologies, Inc. | System and method for massively parallel processor database |
US10515097B2 (en) * | 2015-04-06 | 2019-12-24 | EMC IP Holding Company LLC | Analytics platform for scalable distributed computations |
US10776404B2 (en) | 2015-04-06 | 2020-09-15 | EMC IP Holding Company LLC | Scalable distributed computations utilizing multiple distinct computational frameworks |
US10706970B1 (en) | 2015-04-06 | 2020-07-07 | EMC IP Holding Company LLC | Distributed data analytics |
US10860622B1 (en) | 2015-04-06 | 2020-12-08 | EMC IP Holding Company LLC | Scalable recursive computation for pattern identification across distributed data processing nodes |
US10791063B1 (en) | 2015-04-06 | 2020-09-29 | EMC IP Holding Company LLC | Scalable edge computing using devices with limited resources |
US10541936B1 (en) | 2015-04-06 | 2020-01-21 | EMC IP Holding Company LLC | Method and system for distributed analysis |
US10541938B1 (en) | 2015-04-06 | 2020-01-21 | EMC IP Holding Company LLC | Integration of distributed data processing platform with one or more distinct supporting platforms |
US10277668B1 (en) | 2015-04-06 | 2019-04-30 | EMC IP Holding Company LLC | Beacon-based distributed data processing platform |
US10425350B1 (en) | 2015-04-06 | 2019-09-24 | EMC IP Holding Company LLC | Distributed catalog service for data processing platform |
US10977276B2 (en) * | 2015-07-31 | 2021-04-13 | International Business Machines Corporation | Balanced partition placement in distributed databases |
US10656861B1 (en) | 2015-12-29 | 2020-05-19 | EMC IP Holding Company LLC | Scalable distributed in-memory computation |
CN106027634B (zh) * | 2016-05-16 | 2019-06-04 | 白杨 | 消息端口交换服务系统 |
US11138178B2 (en) | 2016-11-10 | 2021-10-05 | Futurewei Technologies, Inc. | Separation of computation from storage in database for better elasticity |
US9934287B1 (en) | 2017-07-25 | 2018-04-03 | Capital One Services, Llc | Systems and methods for expedited large file processing |
US11036471B2 (en) * | 2018-06-06 | 2021-06-15 | Sap Se | Data grouping for efficient parallel processing |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130124565A1 (en) * | 2010-10-26 | 2013-05-16 | Mrithyunjaya Annapragada | Mechanism for co-located data placement in a parallel elastic database management system |
CN103412897A (zh) * | 2013-07-25 | 2013-11-27 | 中国科学院软件研究所 | 一种基于分布式结构的并行数据处理方法 |
WO2014173295A2 (en) * | 2013-04-26 | 2014-10-30 | Huawei Technologies Co., Ltd. | System and method for creating highly scalable high availability cluster in a massively parallel processing cluster of machines in a network |
CN104135526A (zh) * | 2014-08-04 | 2014-11-05 | 江苏中宏信息技术有限公司 | 具有超大规模存储能力的云平台专属客户端 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6725750B1 (en) | 1999-03-22 | 2004-04-27 | Dave C. Feltch | Turret extender |
US20040230862A1 (en) * | 2003-05-16 | 2004-11-18 | Arif Merchant | Redundant data assigment in a data storage system |
WO2012085297A1 (es) * | 2010-12-20 | 2012-06-28 | Rathod Paresh Manhar | Resguardo paralelo para entornos de sistemas de bases de datos distribuidas |
US9195701B2 (en) | 2012-10-29 | 2015-11-24 | Futurewei Technologies, Inc. | System and method for flexible distributed massively parallel processing (MPP) database |
US9684671B1 (en) * | 2014-02-28 | 2017-06-20 | Pivotal Software, Inc. | Parallel streaming of external data |
-
2014
- 2014-12-16 US US14/572,502 patent/US10372696B2/en active Active
-
2015
- 2015-12-12 EP EP15869271.5A patent/EP3224746B1/en active Active
- 2015-12-12 EP EP20194234.9A patent/EP3764244B1/en active Active
- 2015-12-12 CN CN201580066953.0A patent/CN107430603B/zh active Active
- 2015-12-12 WO PCT/CN2015/097209 patent/WO2016095764A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130124565A1 (en) * | 2010-10-26 | 2013-05-16 | Mrithyunjaya Annapragada | Mechanism for co-located data placement in a parallel elastic database management system |
WO2014173295A2 (en) * | 2013-04-26 | 2014-10-30 | Huawei Technologies Co., Ltd. | System and method for creating highly scalable high availability cluster in a massively parallel processing cluster of machines in a network |
CN103412897A (zh) * | 2013-07-25 | 2013-11-27 | 中国科学院软件研究所 | 一种基于分布式结构的并行数据处理方法 |
CN104135526A (zh) * | 2014-08-04 | 2014-11-05 | 江苏中宏信息技术有限公司 | 具有超大规模存储能力的云平台专属客户端 |
Also Published As
Publication number | Publication date |
---|---|
US20160171072A1 (en) | 2016-06-16 |
EP3224746A1 (en) | 2017-10-04 |
EP3224746B1 (en) | 2022-05-11 |
EP3224746A4 (en) | 2018-03-21 |
US10372696B2 (en) | 2019-08-06 |
CN107430603B (zh) | 2020-05-08 |
EP3764244A1 (en) | 2021-01-13 |
WO2016095764A1 (en) | 2016-06-23 |
EP3764244B1 (en) | 2022-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107430603A (zh) | 大规模并行处理数据库的系统和方法 | |
US11388043B2 (en) | System and method for data replication using a single master failover protocol | |
US11899684B2 (en) | System and method for maintaining a master replica for reads and writes in a data store | |
US9201742B2 (en) | Method and system of self-managing nodes of a distributed database cluster with a consensus algorithm | |
Campbell et al. | Extreme scale with full sql language support in microsoft sql azure | |
US8930312B1 (en) | System and method for splitting a replicated data partition | |
US9069827B1 (en) | System and method for adjusting membership of a data replication group | |
US9489434B1 (en) | System and method for replication log branching avoidance using post-failover rejoin | |
CN107005596A (zh) | 用于在集群重新配置后的工作负载平衡的复制型数据库分配 | |
CN113515499B (zh) | 一种数据库服务方法及系统 | |
CN102622427A (zh) | 读写分离数据库的方法及系统 | |
CN106993064A (zh) | 一种基于Openstack云平台实现海量数据可伸缩性存储的系统及其构建方法与应用 | |
US20180004777A1 (en) | Data distribution across nodes of a distributed database base system | |
EP3513296B1 (en) | Hierarchical fault tolerance in system storage | |
US8931051B2 (en) | Scalable and highly available clustering for large scale real-time applications | |
CN106605217B (zh) | 用于将应用从一个站点移动到另一站点的方法和系统 | |
CN105262633A (zh) | 一种应用级容灾方法及应用级容灾系统 | |
CN103473328A (zh) | 一种基于mysql的数据库云及其建立方法 | |
US11461201B2 (en) | Cloud architecture for replicated data services | |
CN107465706B (zh) | 一种基于无线通信网络的分布式数据对象存储装置 | |
KR101750601B1 (ko) | 장애 내구성을 지닌 클러스터의 상태 감시 및 클러스터의 형상 변경을 위한 클러스터 관리 방법 및 데이터 저장 시스템 | |
WO2014054173A1 (ja) | 分散データ管理システム及びプログラム | |
US10331627B2 (en) | Method and system for unified technological stack management for relational databases | |
Lin et al. | A job-oriented load-distribution scheme for cost-effective NameNode service in HDFS | |
Song | Redesign Tactilon Agnet database in distributed environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |