CN105009110A - 大规模并行处理(mpp)数据库的自动伸缩方法 - Google Patents
大规模并行处理(mpp)数据库的自动伸缩方法 Download PDFInfo
- Publication number
- CN105009110A CN105009110A CN201380059501.0A CN201380059501A CN105009110A CN 105009110 A CN105009110 A CN 105009110A CN 201380059501 A CN201380059501 A CN 201380059501A CN 105009110 A CN105009110 A CN 105009110A
- Authority
- CN
- China
- Prior art keywords
- subregion
- entry
- group
- new
- existing
- 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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
- G06F16/353—Clustering; Classification into predefined classes
-
- 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/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)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
通过分阶段迁移过程能够使大规模并行处理(MPP)数据库在保持在线的同时实现重新分区/重新均衡。分阶段迁移可包括第一阶段和第二阶段。在第一阶段,重新分配现有分区中的条目至新分区;更新目录,使重新分配的条目与所述现有分区和所述新分区同时发生关联,以使对所述重新分配的条目的查询被定向到所述现有分区和所述新分区。在第二阶段,将所述重新分配的条目从现有分区迁移至所述新分区;迁移完成后,重新更新目录,将迁移后的条目与所述新分区发生关联,以使新查询被定向到所述新分区。
Description
相关申请案交叉申请
本发明申请要求由Kamini Jagtiani等人2012年11月30日递交的发明名称为“大规模并行处理(MPP)数据库的自动伸缩方法”的第13/691,402号美国专利申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文。
技术领域
本发明涉及大规模并行处理(MPP)数据库,以及在特定实施例中,涉及一种MPP数据库的自动伸缩方法。
背景技术
大规模并行处理(MPP)是多个处理器处理同一程序的不同部分时该程序的协调过程。各处理器运用自身的操作系统和内存资源相互交流,共同完成一项任务。MPP数据库系统基于无共享架构,其数据库的表划分成片段,再分配给不同的处理节点。各处理节点之间不分享数据。数据库查询时,各查询工作根据数据分配方案和优化执行方案划分并且分配至其中一个所述处理节点。各个处理节点的处理实体仅负责处理各自的数据部分。但是,这些处理实体在其工作执行期间可以互相交流,交换必要的信息。一个查询可划分为多个子查询,所述多个子查询可在部分或全部所述处理节点上并行执行或按某种优选顺序执行。所述子查询的结果可先聚合再处理,继而更多的子查询可根据所述结果执行。
MPP系统的一大挑战是当MPP数据库添加数据时如何保持有效伸缩。具体来讲,MPP数据库的创建通常是通过某种算法(例如,哈希,范围等)在多个数据库分区(DB分区)中划分一个或多个表。所述MPP数据库添加新数据时,所述DB分区内的各表中根据该算法产生新的数据条目。然而,传统的MPP数据库的数据分区算法是在该MPP数据库的创建过程中设置,并且在所述MPP数据库的整个生命周期内保持不变。因此,所述静态算法可能无法随着条件的变化而演变,从而导致底层MPP数据库随着时间的推移在处理查询时变得不均衡且效率低下。
举例来讲,假设某个传统客户数据库是基于账户持有人的性别来分区的,那么,男性账户持有人对应的数据库条目和女性账户持有人对应的数据库条目分别存储在不同的DB分区。之所以选择该算法是因为在所述MPP数据库首次创建时,男性账户持有人和女性账户持有人的比率相对均衡。然而,随着时间的推移,假设该数据库中新增女性账户持有人的速度明显高于男性账户持有人,将会导致所述MPP数据库变得不均衡(即第二DB分区明显大于第一DB分区)。在某个时刻,重新划分所述MPP数据库以使DB分区重新获得均衡变得尤为迫切。现有技术中,重新划分MPP数据库由数据库管理员(DBA)手动执行,这通常需要该MPP数据库离线一段时间。因此,迫切需要能够在不中断MPP数据库的运行时间操作的情况下实现MPP数据库重新分区的机制。
发明内容
技术优点通常由本发明实施例描述的MPP数据库的自动伸缩系统和方法来实现。
根据一实施例,提供了一种用于管理大规模并行处理(MPP)数据库的方法和装置。本实例中,该方法包括:确定所述MPP数据库的现有分区重新均衡的条件已满足;将现有分区中的一组条目重新分配至新分区;更新目录,使该组条目与所述现有分区和所述新分区同时发生关联,以使迁移期间接收到的对该组条目的查询被定向到所述现有分区和所述新分区。该方法还包括:将该组条目从所述现有分区迁移至所述新分区;重新更新目录,以便在该组条目从现有分区迁移至新分区后,使该组条目与所述新分区发生关联。还提供了一种执行该方法的装置。
根据另一实施例,提供了另一种用于管理大规模并行处理(MPP)数据库的方法。本实例中,该方法包括:确定所述MPP数据库中的现有数据库分区(DB分区)重新分区的条件已满足。所述现有DB分区包括第一表中的第一分区(t1-p1)和第二表中的第一分区(t2-p1)。该方法还包括:将t1-p1中的第一组条目和t2-p1中的第二组条目重新分配至一个新DB分区;更新目录,将所述第一组条目和所述第二组条目与所述现有DB分区和所述新DB分区同时关联,以使迁移期间接收到的对重新分配的条目的查询被定向到所述现有DB分区和所述新DB分区。该方法还包括:将所述第一组条目和所述第二组条目从所述现有DB分区迁移至所述新DB分区;重新更新目录,以便在该组条目从所述现有DB分区迁移至所述新DB分区后,使所述第一组条目和所述第二组条目与所述新DB分区发生关联。还提供了一种执行该方法的装置。
附图说明
为了更完整地理解本发明及其优点,现参考下文结合附图进行描述,其中:
图1示出了一种数据库的图;
图2示出了一种包括表分区的MPP数据库的图;
图3示出了一种用于在不中断MPP数据库的运行时间操作的情况下重新平衡现有表分区的方法的流程图;
图4示出了一种包括DB分区的具体MPP数据库的图;
图5示出了一种包括DB分区的具体MPP客户数据库的图;
图6示出了一种用于在不中断MPP数据库的运行时间操作的情况下重新平衡现有DB分区的方法的流程图;
图7示出了一种用于自动创建新DB分区的具体方法;
图8示出了另一种用于自动创建新DB分区的具体方法;
图9示出了一种用于在不中断MPP数据库的运行时间操作的情况下重新平衡现有DB分区的具体设备的图。
除非另有说明,不同的图中的对应数字和符号通常是指对应的部分。所述图旨在清晰地描绘实施例的相关方面,不一定是按比例绘制。
具体实施方式
下文将详细论述当前优选实施例的制作和使用。然而,应了解,本发明提供可在各种具体上下文中体现的许多适用的发明构思。所论述的具体实施例仅为示例性的,并不限制本发明的范围。
本发明将结合具体上下文中的优选实施例进行说明,即一种大规模并行处理(MPP)数据库及其管理。然而,本发明中的构思也可应用于其他类型的数据库和数据管理系统。
本发明各方面提供了用于在不中断MPP数据库的运行时间操作的情况下重新划分MPP数据库的机制。具体来讲,本发明实施例允许在MPP数据库保持在线的情况下将现有DB分区的条目迁移至新DB分区。这是通过分阶段更新查询目录来实现的。例如,第一阶段的目录更新发生在迁移前,可用于更新目录中的索引,以使迁移期间被迁移的条目与所述现有DB分区和所述新DB分区同时发生关联。结果,迁移期间接收到的查询将首先被定向到所述现有DB分区,然后再被定向到所述新DB分区。也就是说,只有被查询条目在所述现有DB分区中定位失败之后,才搜索所述新DB分区。由于各个条目在从所述现有DB分区中删除/移除之前已被写入所述新DB分区,所述现有和新DB分区的分阶段搜索可确保查询错误避免发生。
进一步地,本发明各方面还提供了一种用于在迁移期间保存主键/外键关系的机制。具体地,包括两个或多个表的MPP数据库的分区方式可以是根据主键/外键关系使不同表中的相应条目发生关联,如2012年10月29日递交的发明名称为“System and Method for Flexible Distributed MassivelyParallel Processing(MPP)Database(用于灵活分配大规模并行处理(MPP)数据库的系统和方法)”的第13/663,237号美国专利申请案中所述,该申请案的内容以引入的方式并入本文。对于使用该方式进行分区的MPP数据库,在迁移期间保存主键/外键关系的需求尤为迫切。本发明各方面实现该目标的方式如下:通过分批或分元组并行迁移对应条目,以使对应条目同时被写入所述新DB分区。
图1示出了传统数据库100的一个例子,该数据库包括多个表110至140,即第一表(t1)110、第二表(t2)120、第三表(t3)130、第四表(t4)140。所述表110至140大小可能不同,且可包括不同数量的列。例如,所述t1 110包括四列(t1.c1、t1.c2、t1.c3、t1.c4),而所述t4 140包括三列(t4.c1、t4.c2、t4.c3)。
由于所述表110至140填充额外数据,因此,所述数据库100可能变得过大而无法由单个处理器有效处理。相应地,根据MPP方案对所述数据库100进行分区较为有益。图2示出了传统MPP数据库200,该数据库中所述表(t1至t4)110至140被分为多个表分区。具体来讲,所述t1 110被分为三个分区(t1-p1、t1-p2、t1-p3),所述t2 120被分为两个分区(t2-p1、t2-p2),所述t3 130被分为三个分区(t3-p1、t3-p2、t3-p3、t3-t4),所述t4 140保持未分区。各个表分区(t1-p1、t1-p2、t1-p3、t2-p1等)位于分配给不同处理器的不同存储器或存储设备上。
所述传统MPP数据库200中,各表分区可在运行时间操作过程中添加。例如,随着数据输入到所述t4 140中,可添加第四分区(t1-p4)。虽然添加所述t1-p4可增大容量,但由于传统MPP方案仅允许新数据存储于所述t1-p4中,所以所述t1-p1、t1-p2、t1-p3之间并未实现重新均衡。例如,如果所述t1-p1的填充速度快于所述t1-p2,那么添加所述t1-p4并不能缓解所述t1 110中的不均衡,因为在使用传统技术时,要是不迫使所述传统MPP数据库200下线(即,中断运行时间操作)的情况下,数据就无法从所述t1-p1移至所述t1-p4。
本发明各方面提供了一种用于在不中断MPP数据库的运行时间操作的情况下重新划分MPP数据库的机制。图3示出了一种用于重新配置现有表分区的方法300,可由MPP数据库系统独立执行。该方法开始于步骤310,假设现有表分区中已检测到重新分区的条件。该条件可包括所述现有表分区的一个特征值已超过阈值。例如,当所述现有表分区的大小超过阈值时满足该条件。或者,该条件可基于所述现有表分区的一个热度(例如查询频率),或者所述现有表分区的一种读/写模式。另外,该条件可包括由DBA确定的时间(周期性)条件、用户自定义条件、手动触发条件等。
然后,该方法300执行步骤320,创建了一个新的表分区。此后,该方法300执行步骤330,修改算法(例如哈希、范围等)以重新分配所述现有表分区中的数据至所述新的表分区。
然后,该方法300执行步骤340,更新用于对查询进行定向的目录,以使重新分配的条目与所述现有表分区和所述新的表分区同时发生关联(例如,<现有表分区,新表分区>)。也就是说,与其中一个所述重新分配的条目相关的查询将首先被定向到所述现有表分区,然后再被定向到所述新的表分区(如果该条目没有在所述现有表分区中找到的话)。此后,该方法300执行步骤350,从所述现有表分区中读取重新分配的条目。值得注意的是,该读操作并不用于从所述现有表分区中删除/移除所述重新分配的条目。然后,该方法执行步骤360,所述重新分配的条目被写入到所述新的表分区。此后,该方法300执行步骤370,更新所述目录表,以使所述重新分配的条目与所述新的表分区发生关联。本实施例中,所述步骤370可包括解除所述现有表分区的关联,例如,<现有DB分区,新DB分区>。最后,该方法300执行步骤380,被迁移条目从所述现有表分区中删除,并且在所述新的和旧的表分区中重建索引。
上述用于重新划分现有表分区的机制还可应用于重新划分现有DB分区。当MPP数据库依照第13/663,237号美国专利申请案中描述的方式进行构建时,产生DB分区。图4示出了一种大规模并行处理(MPP)数据库400的一个实施例,其中,所述表110至140在多个数据库分区(DB分区)410至430中进行划分。如图所示,所述DB分区410至430中的每一个都包括所述表110至140中每一个的一部分。
值得注意的是,所述t1 110根据某一算法(例如,哈希,范围等)在所述DB分区410至430中划分,所述t2 120至t4 140根据主键/外键关系在所述DB分区410至430中划分。具体来讲,指定所述t1 110的第一列为所述t1 110的主键(PK),并且通过将该算法(例如,哈希,范围等)应用于所述主键,将所述t1 110在所述DB分区410至430中划分。进一步地,指定所述t2 120的第二列为所述t2 120的外键(FK),并且根据t1 110中的PK和t2 120中的FK之间的关系将所述t2 120在所述DB分区410至430中划分。也就是说,通过匹配所述t2-p1中第二列的FK值(t2.c2-p1)与所述t2-p1中第一列的PK值(t2.c2-p1),所述t2 120中的条目被选入所述t2-p1中。对于所述t3-p1也同样如此,其中,所述t3-p1中第三列的PK值(t2.c3-p1)与所述t2-p1中第一列中的PK值(t2.c2-p1)匹配。
但是,所述t4 140与所述t1 110并不共享任何公共列,因此与所述t4140之间没有明确的主键/外键关系。相反,由于所述t4的第二列(t4.c2)与所述t3的第一列(t3.c1)共享公共单元(例如,账号等),所以所述t4 140与所述t3 130共享主键/外键关系。因此,所述t4 140根据所述t3 130的PK与所述t4 140的FK的关系在所述DB分区410至430中划分。也就是说,通过匹配所述t4中第二列的FK值(t4.c2)与所述t2-p1中第一列的PK值(t3.c1-p1),所述t4 140中的条目被选入所述t4-p1中。表1显示了各表的摘要如何在所述DB分区410至430之间划分。
表1
DB分区410 | DB分区420 | DB分区430 | |
t1 110 | f(t1.c1) | f(t1.c1) | f(t1.c1) |
t2 120 | t2.c2-p1=t1.c1-p1 | t2.c2-p2=t1.c1-p2 | t2.c2-p3=t1.c1-p3 |
t3 130 | t3.c3-p1=t1.c1-p1 | t3.c3-p2=t1.c1-p2 | t3.c3-p3=t1.c1-p3 |
t4 140 | t4.c2-p1=t3.c1-p1 | t4.c2-p2=t3.c1-p2 | t4.c2-p3=t3.c1-p3 |
图5示出了数据库500根据DB分区方法划入MPP数据库550中的一个实例。如图所示,所述数据库500包括客户表(t1)、账户表(t2)、均衡表(t3)。所述客户表(t1)包括四列:各个客户的社保号(SSN)、名字(FN)、姓氏(LN)、地址(add)。所述账户表(t2)包括三列:各个账户的账号(ACT)、开户客户的SSN,账户类型(TYP)。所述均衡表(t3)包括四列:各个账号(ACT)、借记(DEB)、贷记(Cred)、结余(Bal)。
在对所述数据库500进行分区时,所述客户表(t1)、账户表(t2)、均衡表(t3)可根据主键/外键关系相关联。例如,所述客户表(t1)和账户表(t2)之间的主键/外键关系可依赖各自表中的SSN列,所述SSN列被视为所述客户表(t1)中的主键和所述账户表(t2)中的辅助列。然而,所述均衡表(t3)中没有SSN列,并且事实上,其与本例中的客户表(t1)并不分享任何公共列。因此,所述均衡表(t3)和所述账户表(t2)之间的主键/外键关系的建立需使用各自表中的ACT列。值得注意的是,某个表中的主键和外键在某些例子中可以为同一列。进一步地,某个表的主键并不一定必须为该表的第一列。
本例中,通过将范围算法应用于所述客户表(t1)的主键(即,SSN列),所述数据库500被划入所述MPP数据库550中。具体来讲,SSN值在1至1000之间的t1条目被分配至所述DB分区-1,SSN值在1001至2000之间的t1条目被分配至所述DB分区-2,SSN值在2001至3000之间的t1条目被分配至所述DB分区-3。虽然图5是在范围分区的上下文中进行讨论的,但其中示例的构思同样适用于其他分区算法(例如,哈希等)。
所述账户表(t2)和所述均衡表(t3)根据其各自的主键/外键关系进行分区。也就是说,t2条目基于所述账户表(t2)和所述客户表(t1)之间的主键/外键关系在所述DB分区-1、DB分区-2、DB分区-3中进行分区。因此,SSN值在1至1000之间的t2条目的第一集合被分配至所述DB分区-1,SSN值在1001至2000之间的t2条目的第二集合被分配至所述DB分区-2,SSN值在2001至3000之间的t2条目的第三集合被分配至所述DB分区-3。
类似地,所述均衡表(t3)基于所述均衡表(t3)和所述账户表(t2)之间的主键/外键关系在所述DB分区-1、DB分区-2、DB分区-3中进行分区。也就是说,t2-p1中ACT值与t2条目的ACT值相匹配的t3条目被分配至所述DB分区-1,t2-p2中ACT值与t2条目的ACT值相匹配的t3条目被分配至所述DB分区-2,t2-p3中ACT值与t2条目的ACT值相匹配的t3条目被分配至所述DB分区-3。
DB分区虽然较传统表分区存在优势,但随着数据被添加到MPP数据库,DB分区也会变得不均衡。本发明各方面提供了一种用于在不中断底层MPP数据库的运行时间操作的情况下重新划分DB分区的机制。图6示出了一种用于重新划分现有DB分区的方法600,可由MPP数据库系统独立执行。该方法开始于步骤610,假设现有DB分区中已检测到重新分区的条件。检测到所述重新分区的条件可包括检测到所述现有DB分区的一个特征值已超过阈值。例如,当所述现有DB分区的大小超过阈值时,或者当所述现有DB分区中的单个表超过阈值时,满足该条件。或者,该条件可基于所述现有DB分区的一个热度(例如查询频率),或者所述现有DB分区的一种读/写模式。另外,该条件可包括由DBA确定的时间(周期性)条件、用户自定义条件、手动触发条件等。
然后,该方法600执行步骤620,创建了一个新DB分区。此后,该方法600执行步骤630,修改算法(例如哈希、范围等)以重新分配所述现有DB分区中的数据至所述新DB分区。例如,假设某范围算法表明所述现有DB包括SSN为1至1000的条目。在这种情况下,可通过修改该范围算法来重新分配SSN为1至500的条目至所述新DB分区,同时将SSN为501至1000的条目分配至所述现有DB分区。
然后,该方法600执行步骤640,更新用于对查询进行定向的目录,以使重新分配的条目与所述现有DB分区和所述新DB分区同时发生关联(例如,<现有DB分区,新DB分区>)。也就是说,与其中一个所述重新分配的条目相关的查询将首先被定向到所述现有DB分区,然后再被定向到所述新DB分区(如果该条目没有在所述现有DB分区中找到的话)。此后,该方法600执行步骤650,读取所述第一表(t1)中的第一行的条目。这里,第一表(t1)是指具有分配判断列的表。然后,所述方法执行步骤660,在步骤630中修改该算法后,判断所述读取条目是否已被重新分配至所述新DB分区。做出该判断的过程主要取决于所使用的分区算法的类型。例如,如果使用的是范围算法,则步骤660可包括判断该条目的值是否在被重新分配至所述新DB分区的范围内。或者,如果使用的是哈希算法,则步骤660可包括将更新后的哈希函数应用于该条目以获得哈希值,然后再判断该哈希值是否已被重新分配至所述新DB分区。
如果该条目未被重新分配至所述新DB分区,则增加所述第一表(t1)的瞬时行,同时该方法600返回步骤650。如果所述读取条目已被重新分配至所述新DB分区,则该方法600执行步骤670,扫描其他表(例如,t2至t3)以判断任一其他表是否包括与读取条目相对应的条目。此后,该方法600执行步骤675,所述第一表(t1)中的所述读取条目和所述其他表中的所述对应条目被写入所述新DB分区。
然后,所述方法600执行步骤680,判断所述扫描是否完成,当所述第一表(t1)的最后一行已评估时可能会出现此种状况。如果扫描尚未完成,则增加所述第一表(t1)的所述瞬时行,同时该方法600返回步骤650。如果扫描已完成,则该方法600执行步骤690,更新所述目录表,以使所述被迁移条目与所述新DB分区发生关联。在实施例中,步骤690中的所述更新目录可包括解除所述现有DB之前的关联,例如,<现有DB分区,新DB分区>。最后,该方法600执行步骤695,所述被迁移条目从所述现有DB分区中删除,并且在所述新的和旧的DB分区中重建索引。
图7示出了当MPP数据库起初按照范围算法分区时用于自动创建新DB分区的具体方法700。该方法700开始于检查是否存在任何DB分区达到其最大的大小。该“达到”参数是可配置的——可以是“最大DB分区大小”的90%或“最大DB分区大小”的95%。它可由DBA控制。如果DB分区1达到其极限,则判断MPP数据库是否已经达到为该方案定义的“最大DB分区”。如果是,则发出警告和告警以表明特定DB分区1已接近其极限。如果没有达到“最大DB分区”,则创建一个新DB分区。将DB分区1正在处理的桶分为两半,半数的桶分配给所述新DB分区_新。在用于将所述DB分区映射至自己的桶的目录中添加新条目。
例如,DB分区1正在处理所有0至1000的桶。接近饱和时,DB分区1将继续处理0至499,而500至1000则会分配至DB分区_新。现在,哈希桶500和1000之间发生的任何插入都将直接进入DB分区_新。与此同时,在背景技术中,该元组位于DB分区1中,但可哈希的列将该元组哈希至500至1000的桶中,该元组移入DB分区_新。
图8示出了当MPP数据库起初按照哈希算法分区时用于自动创建新DB分区的具体方法800。该方法800与方法800类似,除了扫描过程在重新分配范围和哈希之间的差别。具体地,该方法800判断所述分配判断列的值是否会导致分配至所述DB分区_新。如果否,则该方法800处理下一行。如果所述分配判断列的值将导致分配至所述DB分区_新,则所有相关条目(即,包括其他表中的条目)被迁移至所述DB分区_新。
图9示出了一种用于重新均衡大规模并行处理数据库的装置900。该装置包括处理器910、用于存储供所述处理器910执行的计算机可读指令925的存储器920、包括MPP数据库935的存储设备930。值得注意的是,所述MPP数据库935可对应一个更大MPP数据库中的表或DB分区,所述处理器910可以是用于管理和提供所述更大MPP数据库的多个并行处理器中的一个。
虽然本发明提供了示例性实施例,但本说明书并不旨在限制本发明。对所述示例性实施例的各种修改和组合,以及其他实施例对所属领域的技术人员而言,在参考本说明书后,是显而易见。因此,所附权利要求书意图涵盖任何此类修改或实施例。
Claims (22)
1.一种用于管理大规模并行处理(MPP)数据库的方法,其特征在于,该方法包括:
确定所述MPP数据库现有分区的重新均衡条件已满足;
将所述现有分区中的一组条目重新分配至新分区;
更新目录,以使该组条目与所述现有分区和所述新分区同时发生关联,其中,更新目录导致对迁移期间接收到的该组条目的查询被定向到所述现有分区和所述新分区;
将该组条目从所述现有分区迁移至所述新分区;
重新更新目录,以便在该组条目从所述现有分区迁移至新分区后,使该组条目与所述新分区发生关联。
2.根据权利要求1所述的方法,其特征在于,所述重新更新目录以使该组条目与所述新分区发生关联包括解除该组条目与所述现有分区之间的关联。
3.根据权利要求1所述的方法,其特征在于,该组条目从所述现有分区迁移至所述新分区并没有中断所述MPP数据库的运行时间操作。
4.一种装置,其特征在于,包括:
处理器;
计算机可读存储介质,用于存储供所述处理器执行的程序,其中,所述程序包括指令,用于:
确定一种大规模并行处理(MPP)数据库现有分区的重新均衡条件已满足;
将所述现有分区中的一组条目重新分配至新分区;
更新目录,以使该组条目与所述现有分区和所述新分区同时发生关联,其中,更新目录导致对迁移期间接收到的该组条目的查询被定向到所述现有分区和所述新分区;
将该组条目从所述现有分区迁移至新分区;
重新更新目录,以便在该组条目从所述现有分区迁移至新分区后,使该组条目与所述新分区发生关联。
5.根据权利要求4所述的装置,其特征在于,所述用于重新更新目录以使该组条目与所述新分区发生关联的指令包括用于解除该组条目与所述现有分区之间关联的指令。
6.根据权利要求4所述的装置,其特征在于,该组条目从所述现有分区迁移至所述新分区并没有中断所述MPP数据库的运行时间操作。
7.一种用于管理大规模并行处理(MPP)数据库的方法,其特征在于,该方法包括:
确定所述MPP数据库中现有数据库分区(DB分区)的重新分区条件已满足,其中,所述现有DB分区包括第一表中的第一分区(t1-p1)和第二表中的第一分区(t2-p1);
将所述t1-p1中的第一组条目和所述t2-p1中的第二组条目重新分配至新DB分区;
更新目录,以使所述第一组条目和所述第二组条目与所述现有DB分区和所述新DB分区同时发生关联,其中,更新目录导致对迁移期间接收到的重新分配的条目的查询被定向到所述现有DB分区和所述新DB分区;
将所述现有DB分区中的所述第一组条目和所述第二组条目迁移至所述新DB分区;
重新更新目录,以便在所述现有DB分区中的该组条目迁移至所述新DB分区后,使所述第一组条目和所述第二组条目与所述新DB分区发生关联。
8.根据权利要求1所述的方法,其特征在于,所述重新更新目录以使所述第一组条目和所述第二组条目与所述新DB分区发生关联包括:
解除所述第一组条目与所述现有DB分区之间的关联,以使对所述第一组条目的查询被定向到所述新DB分区,而不是被定向到所述现有DB分区;
解除所述第二组条目与所述现有DB分区之间的关联,以使对所述第二组条目的查询被定向到所述新DB分区,而不是被定向到所述现有DB分区;
9.根据权利要求8所述的方法,其特征在于,将所述第一组条目和所述第二组条目从所述现有分区迁移至所述新分区并没有中断所述MPP数据库的运行时间操作。
10.根据权利要求7所述的方法,其特征在于,所述t1-p1根据应用于所述第一表中主键的算法被初始分配至所述现有DB分区,所述t2-p1根据主键/外键关系被初始分配至所述第一DB分区,其中,所述主键/外键关系规定了所述第一表的所述主键和所述第二表中的外键之间的关联。
11.根据权利要求10所述的方法,其特征在于,所述将所述t1-p1中的所述第一组条目和所述t2-p1中的所述第二组条目重新分配至所述新DB分区包括:
更新所述算法,以使所述t1-p1中的所述第一组条目重新分配至所述新DB分区;
根据所述主键/外键关系将所述t1-p2中的所述第二组条目重新分配至所述新DB分区。
12.根据权利要求11所述的方法,所述根据所述主键/外键关系将所述t1-p2中的所述第二组条目重新分配至所述新DB分区包括:
识别与被重新分配至所述新DB分区的所述t1-p2中的所述第一组条目相关联的一组主键值;
将所述t1-p2中具有与该组主键值中的任意一值等效的外键值的条目重新分配至所述新DB分区。
13.根据权利要求12所述的方法,其特征在于,所述将所述现有DB分区中的所述第一组条目和所述第二组条目迁移至所述新DB分区包括:
将所述第一组条目依次分别写入所述新DB分区,以使所述第一组条目中的不同条目在不同的时间被写入到所述新DB分区中;
针对所述第一组条目中的对应条目同步将所述第二组条目写入所述新DB分区,以使所述t1-p1和所述t2-p1中的对应条目同时被写入到所述新DB分区中。
14.根据权利要求13所述的方法,其特征在于,所述将所述第一组条目和所述第二组条目从所述现有DB分区迁移至所述新DB分区还包括:
将所述第一组组条目和所述第二组条目从现有DB分区中的移除延迟,直至所述条目已被写入所述新DB分区,以使整个迁移期间内所述第一组条目和所述第二组条目在所述现有DB分区和所述新DB分区中的至少一个分区可读。
15.根据权利要求13所述的方法,其特征在于,包括:
在重新更新目录以使所述第一组条目和所述第二组条目与所述新DB分区发生关联之后,从所述现有DB分区中移除所述第一组条目和第二组条目中的各个条目。
16.根据权利要求7所述的方法,其特征在于,所述将所述第一组条目和所述第二组条目从所述现有DB分区迁移至所述新DB分区包括:
从所述现有DB分区中读取所述t1-p1中的第一条目,其中,所述第一条目具有第一主键值;
从所述现有DB分区中读取所述t2-p1中的一组条目,其中,该组条目中的各个条目都具有一个与所述第一条目的主键值等效的外键值;
将所述第一条目和该组条目同时写入所述新DB分区。
17.根据权利要求16所述的方法,其特征在于,该组条目包括所述t2-p1中具有与所述第一条目的主键值等效的外键值的所有条目。
18.根据权利要求7所述的方法,其特征在于,所述确定所述现有DB分区的重新分区条件已满足包括:
确定所述现有DB分区的大小超过阈值。
19.根据权利要求7所述的方法,其特征在于,所述确定所述现有DB分区的重新分区条件已满足包括:
确定所述现有DB分区中的一个或多个表分区的大小超过阈值。
20.根据权利要求7所述的方法,其特征在于,所述确定所述现有DB分区的重新分区条件已满足包括:
确定查询被定向到所述现有DB分区的频率超过阈值。
21.根据权利要求7所述的方法,其特征在于,所述确定所述现有DB分区的重新分区条件已满足包括:
确定所述现有DB分区添加条目的频率超过阈值。
22.一种装置,其特征在于,包括:
处理器;
计算机可读存储介质,用于存储供所述处理器执行的程序,其中,所述程序包括指令,用于:
确定大规模并行处理(MPP)数据库中的现有数据库分区(DB分区)的重新分区条件已满足,其中,所述现有DB分区包括第一表中的第一分区(t1-p1)和第二表中的第一分区(t2-p1);
将所述t1-p1中的第一组条目和所述t2-p1中的第二组条目重新分配至新DB分区;
更新目录,使所述第一组条目和所述第二组条目与所述现有DB分区和所述新DB分区同时发生关联,以使对迁移期间接收到的所述第一组条目或者所述第二组条目的查询被定向到所述现有DB分区和所述新DB分区;
将所述第一组条目和所述第二组条目从所述现有DB分区迁移至所述新DB分区;
重新更新目录,以便在该组条目从所述现有DB分区迁移至所述新DB分区后,使所述第一组条目和所述第二组条目与所述新DB分区发生关联。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/691,402 | 2012-11-30 | ||
US13/691,402 US8799284B2 (en) | 2012-11-30 | 2012-11-30 | Method for automated scaling of a massive parallel processing (MPP) database |
PCT/CN2013/088276 WO2014082602A1 (en) | 2012-11-30 | 2013-12-02 | Method for automated scaling of massive parallel processing (mpp) database |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105009110A true CN105009110A (zh) | 2015-10-28 |
CN105009110B CN105009110B (zh) | 2018-11-06 |
Family
ID=50826525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380059501.0A Active CN105009110B (zh) | 2012-11-30 | 2013-12-02 | 大规模并行处理(mpp)数据库的自动伸缩方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8799284B2 (zh) |
EP (1) | EP2917854B1 (zh) |
CN (1) | CN105009110B (zh) |
WO (1) | WO2014082602A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105279280A (zh) * | 2015-11-16 | 2016-01-27 | 天津南大通用数据技术股份有限公司 | 快速迁移Oracle数据到MPP数据库的方法及工具 |
CN105550309A (zh) * | 2015-12-12 | 2016-05-04 | 天津南大通用数据技术股份有限公司 | Mpp架构数据库集群序列系统及序列管理方法 |
CN106383845A (zh) * | 2016-08-31 | 2017-02-08 | 天津南大通用数据技术股份有限公司 | 一种基于共享存储的mpp数据库数据重分布系统 |
CN107480205A (zh) * | 2017-07-24 | 2017-12-15 | 北京京东尚科信息技术有限公司 | 一种进行数据分区的方法和装置 |
CN108959510A (zh) * | 2018-06-27 | 2018-12-07 | 阿里巴巴集团控股有限公司 | 一种分布式数据库的分区级连接方法和装置 |
CN110622152A (zh) * | 2017-02-27 | 2019-12-27 | 分秒库公司 | 用于查询时间序列数据的可扩展数据库系统 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9239741B2 (en) * | 2012-10-16 | 2016-01-19 | Futurewei Technologies, Inc. | System and method for flexible distributed massively parallel processing (MPP) |
US9785645B1 (en) * | 2013-09-24 | 2017-10-10 | EMC IP Holding Company LLC | Database migration management |
US10192187B2 (en) * | 2014-01-03 | 2019-01-29 | Visier Solutions, Inc. | Comparison of client and benchmark data |
US10042910B2 (en) * | 2014-02-24 | 2018-08-07 | Sap Se | Database table re-partitioning using two active partition specifications |
US9792185B2 (en) | 2014-06-24 | 2017-10-17 | International Business Machines Corporation | Directed backup for massively parallel processing databases |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
US9875263B2 (en) * | 2014-10-21 | 2018-01-23 | Microsoft Technology Licensing, Llc | Composite partition functions |
US9959332B2 (en) | 2015-01-21 | 2018-05-01 | Futurewei Technologies, Inc. | System and method for massively parallel processor database |
US10242021B2 (en) | 2016-01-12 | 2019-03-26 | International Business Machines Corporation | Storing data deduplication metadata in a grid of processors |
US10255288B2 (en) | 2016-01-12 | 2019-04-09 | International Business Machines Corporation | Distributed data deduplication in a grid of processors |
US10261946B2 (en) | 2016-01-12 | 2019-04-16 | International Business Machines Corporation | Rebalancing distributed metadata |
US10613988B2 (en) * | 2016-09-28 | 2020-04-07 | Micro Focus Llc | Purging storage partitions of databases |
US11138178B2 (en) | 2016-11-10 | 2021-10-05 | Futurewei Technologies, Inc. | Separation of computation from storage in database for better elasticity |
US10649996B2 (en) * | 2016-12-09 | 2020-05-12 | Futurewei Technologies, Inc. | Dynamic computation node grouping with cost based optimization for massively parallel processing |
CN108415934B (zh) * | 2018-01-23 | 2022-05-03 | 海尔优家智能科技(北京)有限公司 | 一种Hive表修复方法、装置、设备及计算机可读存储介质 |
US10884998B2 (en) | 2018-09-14 | 2021-01-05 | International Business Machines Corporation | Method for migrating data records from a source database to a target database |
US11086840B2 (en) | 2018-12-07 | 2021-08-10 | Snowflake Inc. | Transactional streaming of change tracking data |
US20240045885A1 (en) * | 2022-08-05 | 2024-02-08 | International Business Machines Corporation | Direct access method of bypassing partition overhead in massively parallel processing (mpp) environment |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7203686B1 (en) * | 2003-12-30 | 2007-04-10 | Ncr Corp. | Partition join in a partitioned database system |
US7640244B1 (en) * | 2004-06-07 | 2009-12-29 | Teredata Us, Inc. | Dynamic partition enhanced joining using a value-count index |
CN102521234A (zh) * | 2010-10-28 | 2012-06-27 | 微软公司 | 在线数据库的分区 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19701761C1 (de) | 1997-01-20 | 1998-04-16 | Fuss Fritz Gmbh & Co | Selbstverriegelndes Schloß |
US6125370A (en) * | 1998-04-01 | 2000-09-26 | International Business Machines Corporation | Repartitioning data |
US6795821B2 (en) | 2001-07-17 | 2004-09-21 | Trendium, Inc. | Database systems, methods and computer program products including primary key and super key indexes for use with partitioned tables |
JP2003316635A (ja) * | 2002-04-26 | 2003-11-07 | Hitachi Ltd | データのバックアップ方法及びそのプログラム |
US7299239B1 (en) | 2002-12-02 | 2007-11-20 | Oracle International Corporation | Methods for partitioning an object |
CN101120340B (zh) | 2004-02-21 | 2010-12-08 | 数据迅捷股份有限公司 | 超无共享并行数据库 |
US8607020B2 (en) * | 2008-06-06 | 2013-12-10 | International Business Machines Corporation | Shared memory partition data processing system with hypervisor managed paging |
CN101639835A (zh) | 2008-07-30 | 2010-02-03 | 国际商业机器公司 | 多租户场景中应用数据库分区的方法和装置 |
US8086808B2 (en) * | 2009-04-23 | 2011-12-27 | Hitachi, Ltd. | Method and system for migration between physical and virtual systems |
CN101876983B (zh) | 2009-04-30 | 2012-11-28 | 国际商业机器公司 | 数据库分区方法与系统 |
US8850423B2 (en) * | 2009-10-29 | 2014-09-30 | International Business Machines Corporation | Assisting server migration |
KR101565172B1 (ko) | 2010-01-15 | 2015-11-02 | 삼성전자주식회사 | 대규모 병렬 프로세서 어레이 시스템의 데이터 처리 장치 및 방법 |
CN101916261B (zh) | 2010-07-28 | 2013-07-17 | 北京播思软件技术有限公司 | 一种分布式并行数据库系统的数据分区方法 |
US9081837B2 (en) | 2010-10-28 | 2015-07-14 | Microsoft Technology Licensing, Llc | Scoped database connections |
KR101467939B1 (ko) * | 2011-04-26 | 2014-12-02 | 엘에스아이 코포레이션 | 비휘발성 저장부에 대한 가변 오버프로비저닝 |
US9195701B2 (en) | 2012-10-29 | 2015-11-24 | Futurewei Technologies, Inc. | System and method for flexible distributed massively parallel processing (MPP) database |
-
2012
- 2012-11-30 US US13/691,402 patent/US8799284B2/en active Active
-
2013
- 2013-12-02 WO PCT/CN2013/088276 patent/WO2014082602A1/en active Application Filing
- 2013-12-02 CN CN201380059501.0A patent/CN105009110B/zh active Active
- 2013-12-02 EP EP13857829.9A patent/EP2917854B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7203686B1 (en) * | 2003-12-30 | 2007-04-10 | Ncr Corp. | Partition join in a partitioned database system |
US7640244B1 (en) * | 2004-06-07 | 2009-12-29 | Teredata Us, Inc. | Dynamic partition enhanced joining using a value-count index |
CN102521234A (zh) * | 2010-10-28 | 2012-06-27 | 微软公司 | 在线数据库的分区 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105279280A (zh) * | 2015-11-16 | 2016-01-27 | 天津南大通用数据技术股份有限公司 | 快速迁移Oracle数据到MPP数据库的方法及工具 |
CN105550309A (zh) * | 2015-12-12 | 2016-05-04 | 天津南大通用数据技术股份有限公司 | Mpp架构数据库集群序列系统及序列管理方法 |
CN106383845A (zh) * | 2016-08-31 | 2017-02-08 | 天津南大通用数据技术股份有限公司 | 一种基于共享存储的mpp数据库数据重分布系统 |
CN110622152A (zh) * | 2017-02-27 | 2019-12-27 | 分秒库公司 | 用于查询时间序列数据的可扩展数据库系统 |
CN107480205A (zh) * | 2017-07-24 | 2017-12-15 | 北京京东尚科信息技术有限公司 | 一种进行数据分区的方法和装置 |
CN107480205B (zh) * | 2017-07-24 | 2020-06-05 | 北京京东尚科信息技术有限公司 | 一种进行数据分区的方法和装置 |
CN108959510A (zh) * | 2018-06-27 | 2018-12-07 | 阿里巴巴集团控股有限公司 | 一种分布式数据库的分区级连接方法和装置 |
CN108959510B (zh) * | 2018-06-27 | 2022-04-19 | 北京奥星贝斯科技有限公司 | 一种分布式数据库的分区级连接方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2917854A4 (en) | 2016-03-16 |
US20140156666A1 (en) | 2014-06-05 |
EP2917854A1 (en) | 2015-09-16 |
US8799284B2 (en) | 2014-08-05 |
EP2917854B1 (en) | 2018-11-21 |
WO2014082602A1 (en) | 2014-06-05 |
CN105009110B (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105009110A (zh) | 大规模并行处理(mpp)数据库的自动伸缩方法 | |
EP3238106B1 (en) | Compaction policy | |
US8726290B2 (en) | System and/or method for balancing allocation of data among reduce processes by reallocation | |
CN110147407B (zh) | 一种数据处理方法、装置及数据库管理服务器 | |
CN104871153B (zh) | 用于分布式大规模并行处理数据库的方法和系统 | |
US20160292215A1 (en) | Partitioning online databases | |
US8271523B2 (en) | Coordination server, data allocating method, and computer program product | |
US20050154731A1 (en) | Method of changing system configuration in shared-nothing database management system | |
CN103336792B (zh) | 数据分区方法和装置 | |
US9977804B2 (en) | Index updates using parallel and hybrid execution | |
CN104903887A (zh) | 灵活的分布式大规模并行处理(mpp)系统和方法 | |
CN108959510B (zh) | 一种分布式数据库的分区级连接方法和装置 | |
CN104573112B (zh) | Oltp集群数据库中页面查询方法及数据处理节点 | |
CN104111936A (zh) | 数据查询方法和系统 | |
CN104239567B (zh) | 数据仓库中的维度处理方法和装置 | |
WO2016191995A1 (zh) | 一种分布式数据库中关联表分区的方法和设备 | |
US20190163795A1 (en) | Data allocating system and data allocating method | |
EP2778921B1 (en) | A method and a system for distributed processing of a dataset | |
US9239852B1 (en) | Item collections | |
US9910869B2 (en) | Dropping columns from a table with minimized unavailability | |
CN111414422B (zh) | 一种数据分布方法、装置、设备和存储介质 | |
JP2015513333A (ja) | マイグレーションによるデータベースの作業負荷バランシング | |
CN111782634B (zh) | 数据分布式存储方法、装置、电子设备及存储介质 | |
CN109388638B (zh) | 用于分布式大规模并行处理数据库的方法及系统 | |
US20170052712A1 (en) | System and method for dynamic cache distribution for in-memory data grids |
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 |