CN109643310B - 用于数据库中数据重分布的系统和方法 - Google Patents

用于数据库中数据重分布的系统和方法 Download PDF

Info

Publication number
CN109643310B
CN109643310B CN201780048560.6A CN201780048560A CN109643310B CN 109643310 B CN109643310 B CN 109643310B CN 201780048560 A CN201780048560 A CN 201780048560A CN 109643310 B CN109643310 B CN 109643310B
Authority
CN
China
Prior art keywords
data
redistribution
data portion
change
additional
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.)
Active
Application number
CN201780048560.6A
Other languages
English (en)
Other versions
CN109643310A (zh
Inventor
蔡乐
周庆庆
孙扬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202110172742.2A priority Critical patent/CN112965951A/zh
Publication of CN109643310A publication Critical patent/CN109643310A/zh
Application granted granted Critical
Publication of CN109643310B publication Critical patent/CN109643310B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)

Abstract

提供一种用于将第一数据节点(DN)中的作业数据重分布到大规模并行处理(MPP)数据库(DB)中的至少一个附加DN的方法。所述方法包括:记录所述作业数据的快照;创建所述第一DN中的第一数据部分以及所述第一DN中的重分布数据部分;收集存储于临时表中的作业数据副本的变化;以及发起所述重分布数据部分到所述至少一个附加DN的迁移。

Description

用于数据库中数据重分布的系统和方法
技术领域
本公开的实施例通常涉及数据处理,并且更具体地涉及,但不局限于,一种用于数据库中数据重分布的方法和系统。
背景技术
大规模并行处理(massively parallel processing,MPP)是由多个处理器工作于一个程序不同部分来实现的程序的配合处理。每个处理器可以有其自己的操作系统和存储器。MPP的使用加快了超大数据库处理大量数据的性能。MPP数据库(MPP database,MPP DB)可能利用用于并行处理的多核处理器、多个处理器和服务器,和/或存储设备。通过这样的组合,遍及多个处理单元的多条数据能够同时以更快的速度来读取和处理。
MPP DB系统可以包括大量的处理器、服务器,或者其它由一个或多个管理系统操作以及调整的DB设备。为了简化MPP DB的管理,DB设备可以被分到群集中,其中一个单独的群集可以包括用于与管理系统通信的接口。群集可以进行半自动操作。
如果一个或多个MPP DB设备发生故障,服务质量会受影响。群集可以包括上千个服务器。群集越大,故障率越高。服务器故障频繁发生,大的群集甚至达到每周一次或者每天一次。
在MPP DB中,数据可以跨多个服务器或者节点进行划分,每个服务器或者节点具有存储器和/或处理器以局部地处理该数据。DB设备或系统之间的所有通信都通过网络互联进行。MPP DB通过将数据分布到多个服务器扩展大工作的处理,并且在多个服务器中运行单独的事务部分。
发明内容
在一些示例实施例中,提供一种用于将第一数据节点(datanode,DN)中的作业数据重分布到大规模并行处理(massively parallel processing,MPP)数据库(database,DB)中的至少一个附加DN的方法。所述方法包括:记录所述作业数据的快照;创建所述第一DN中的第一数据部分以及所述第一DN中的重分布数据部分;收集存储于临时表中的作业数据副本的变化;以及发起所述重分布数据部分到所述至少一个附加DN的迁移。
在所述方法的一些示例中,所述收集所述变化包括收集所述变化到存储于所述临时表中的第一DN数据变化以及存储于所述临时表中重分布数据变化。
在所述方法的一些示例中,所述快照用于确定存储于所述临时表中的所述第一DN数据变化以及所述重分布数据变化。
在所述方法的一些示例中,所述方法还包括:如果所述重分布数据部分到所述至少一个附加DN的迁移成功,则将第一DN数据变化从所述临时表合并到所述第一DN中的所述第一数据部分;以及指示所述第一DN可以继续进行处理。
在所述方法的一些示例中,所述方法还包括:如果所述重分布数据部分到所述至少一个附加DN的迁移成功,则将重分布数据变化从所述临时表合并到所述至少一个附加DN;以及指示所述至少一个附加DN准备开始进行处理。
在所述方法的一些示例中,所述方法还包括:如果所述重分布数据部分到所述至少一个附加DN的迁移失败,则将第一DN数据变化从所述临时表合并到所述第一DN中的所述第一数据部分;将重分布数据变化从所述临时表合并到所述第一DN中的所述重分布数据部分;以及指示所述第一DN准备重新发起所述第一DN中的处理。
在所述方法的一些示例中,所述方法还包括:如果所述重分布数据部分到所述至少一个附加DN的迁移失败,则将第一DN数据变化从所述临时表合并到所述第一DN中的所述第一数据部分;将重分布数据变化从所述临时表合并到所述第一DN中的所述重分布数据部分;以及重试所述数据重分布。
在所述方法的一些示例中,所述方法还包括:如果所述重分布数据部分到所述至少一个附加DN的迁移成功,则通过所述快照识别所述临时表中的第一DN数据变化;将所述第一DN数据变化合并到所述第一DN中的所述第一数据部分;以及指示所述第一DN可以继续进行处理。
在所述方法的一些示例中,所述方法还包括:如果所述重分布数据部分到所述至少一个附加DN的迁移成功,则通过所述快照识别所述临时表中的重分布数据变化;将所述重分布数据变化合并到所述至少一个附加DN中的所述重分布数据部分;以及指示所述至少一个附加DN准备开始进行处理。
在所述方法的一些示例中,所述方法还包括:如果所述重分布数据部分到所述至少一个附加DN的迁移失败,则通过所述快照识别所述临时表中的第一DN数据变化;将所述第一DN数据变化合并到所述第一DN中的所述第一数据部分;通过所述快照识别所述临时表中的重分布数据变化;将所述重分布数据变化合并到所述第一DN中的所述重分布数据部分;以及指示所述第一DN准备重新发起所述第一DN中的处理。
在所述方法的一些示例中,如果所述重分布数据部分到所述至少一个附加DN的迁移失败,重试所述数据重分布。
在所述方法的一些示例中,所述方法还包括,如果所述重分布数据部分到所述至少一个附加DN的迁移失败:则通过所述快照识别所述临时表中的第一DN数据变化;将所述第一DN数据变化合并到所述第一DN中的所述第一数据部分;通过所述快照识别所述临时表中的重分布数据变化;将所述重分布数据变化合并到所述第一DN中的所述重分布数据部分;以及重试所述数据重分布。
在所述方法的一些示例中,所述作业数据包括所述第一数据部分以及所述重分布数据部分。
在所述方法的一些示例中,所述作业数据包括所述重分布数据部分。
在所述设备的一些示例中,提供一种用于将第一数据节点(datanode,DN)中的作业数据重分布到大规模并行处理(massively parallel processing,MPP)数据库(database,DB)中的至少一个附加DN的设备。所述设备包括非瞬时性存储器存储,其包括指令,以及一个或多个处理器,其与所述存储器通信。所述一个或多个处理器执行所述指令以:记录所述作业数据的快照;创建所述第一DN中的第一数据部分以及所述第一DN中的重分布数据部分;收集存储于临时表中的作业数据副本的变化;以及发起所述重分布数据部分到所述至少一个附加DN的迁移。
在所述设备的一些示例中,所述收集所述变化包括收集所述变化到存储于所述临时表中的第一DN数据变化以及存储于所述临时表中重分布数据变化。
在所述设备的一些示例中,所述快照用于确定存储于所述临时表中的所述第一DN数据变化以及所述重分布数据变化。
在所述设备的一些示例中,所述一个或多个处理器还用于:如果所述重分布数据部分到所述至少一个附加DN的迁移成功,则将第一DN数据变化从所述临时表合并到所述第一DN中的所述第一数据部分;以及指示所述第一DN可以继续进行处理。
在所述设备的一些示例中,所述一个或多个处理器还用于:如果所述重分布数据部分到所述至少一个附加DN的迁移成功,则将重分布数据变化从所述临时表合并到所述至少一个附加DN;以及指示所述至少一个附加DN准备开始进行处理。
在所述设备的一些示例中,所述一个或多个处理器还用于:如果所述重分布数据部分到所述至少一个附加DN的迁移失败,则将第一DN数据变化从所述临时表合并到所述第一DN中的所述第一数据部分;将重分布数据变化从所述临时表合并到所述第一DN中的所述重分布数据部分;以及指示所述第一DN准备重新发起所述第一DN中的处理。
在所述设备的一些示例中,所述一个或多个处理器还用于:如果所述重分布数据部分到所述至少一个附加DN的迁移失败,则将重分布数据变化从所述临时表合并到所述至少一个附加DN;以及指示所述至少一个附加DN准备开始进行处理。
在所述设备的一些示例中,所述一个或多个处理器还用于:如果所述重分布数据部分到所述至少一个附加DN的迁移成功,则通过所述快照识别所述临时表中的第一DN数据变化;将所述第一DN数据变化合并到所述第一DN中的所述第一数据部分;以及指示所述第一DN可以继续进行处理。
在在所述设备的一些示例中,所述一个或多个处理器还用于:如果所述重分布数据部分到所述至少一个附加DN的迁移成功,则通过所述快照识别所述临时表中的重分布数据变化;将所述重分布数据变化合并到所述至少一个附加DN中的所述重分布数据部分;以及指示所述至少一个附加DN准备开始进行处理。
在在所述设备的一些示例中,所述一个或多个处理器还用于:如果所述重分布数据部分到所述至少一个附加DN的迁移失败,则通过所述快照识别所述临时表中的第一DN数据变化;将所述第一DN数据变化合并到所述第一DN中的所述第一数据部分;通过所述快照识别所述临时表中的重分布数据变化;将所述重分布数据变化合并到所述第一DN中的所述重分布数据部分;以及指示所述第一DN准备重新发起所述第一DN中的处理。
在所述设备的一些示例中,如果所述重分布数据部分到所述至少一个附加DN的迁移失败,重试所述数据重分布。
在所述设备的一些示例中,所述一个或多个处理器还用于:如果所述重分布数据部分到所述至少一个附加DN的迁移失败,则通过所述快照识别所述临时表中的第一DN数据变化;将所述第一DN数据变化合并到所述第一DN中的所述第一数据部分;通过所述快照识别所述临时表中的重分布数据变化;将所述重分布数据变化合并到所述第一DN中的所述重分布数据部分;以及重试到至少一个附加DN的所述数据重分布。
在所述设备的一些示例中,所述作业数据包括所述第一数据部分以及所述重分布数据部分。
在所述设备的一些示例中,所述作业数据包括所述重分布数据部分。
附图说明
各种附图阐释了本公开的示例实施例且不能认为其限制了本公开的范围。
图1为MPP DB的示例;
图2为MPP DB的示例,MPP DB包括组织到群集中的DB设备;
图3为MPP DB的示例;
图4示出数据重分布流程之前的MPP DB;
图5示出MPP DB,其中至少一个附加DN2用虚线示出;
图6示出MPP DB,其中第一DN1的作业数据p已被拆分,以为数据重分布做准备;
图7A示出MPP DB,其中作业数据p被划分成第一数据部分p1以及重分布数据部分p2,用于数据重分布流程;
图7B还可以示出MPP DB,其中全部作业数据p包括重分布数据部分p2;
图8示出MPP DB,其中快照已被记录;
图9示出MPP DB,其中即使所述MPP DB正在准备数据重分布,第一DN1仍继续进行作业处理;
图10示出MPP DB,其中重分布数据部分p2被迁移到至少一个附加DN2;
图11示出MPP DB,其中该数据重分布已经成功;
图12为用于第一DN中的作业数据到MPP DB中至少一个附加DN的数据重分布的方法的流程图;
图13A示出用于第一数据节点DNl中的作业数据到MPP DB中至少一个附加DN的数据重分布的数据重分布方法的流程图;
图13B示出根据实施例的用于数据重分布的流程1;
图13C示出根据实施例的用于DN1或者DN2中的数据重分布的流程2;
图13D示出根据实施例的用于数据重分布的流程3;
图13E示出根据实施例的用于数据重分布的流程3′;以及
图14示出可以用于根据任一实施例实现例如,本文所描述的设备和方法的计算平台。
本文所提供的标题仅为方便起见,且不必然影响所用术语之范围或含义。
具体实施方式
以下描述包括体现本公开的示例性实施例的系统、方法、技术、指令序列以及计算器程序产品。在以下描述中,出于解释目的,提供大量具体细节用于理解发明主题的各种实施例。然而,很明显,即使没有这些具体细节,本领域技术人员仍然可以实践发明主题的实施例。通常,已知的指令实例、协议、结构以及技术不需要详细示出。
本文揭露的实施例提供MPP DB中的数据重分布操作。该数据重分布操作可以作为单个事务来执行。在数据库的背景下,事务是作为工作的单个逻辑单元而执行的一系列操作,其被独立执行以进行数据检索或更新。事务可以为原子集合或者网络中系统部件之间执行的其它操作。在相关数据库中,要取得事务的资格,必须展示出四种特性。该操作必须是原子的、一致的、单独的以及持久的,概括为首字母缩写词ACID。
在数据系统中,原子性(或者原子特性)意味着不可分,其为ACID事务特性之一。原子事务为不可分且不能再分一系列数据库操作,这样其要么全发生要么不发生。例如,原子事务为从A帐户到B帐户的转帐。其由两个操作组成,即从A账户取钱和将钱存到B账户。如果从A账户取钱失败,则存钱到B账户也不会发生。因而,该转账仅在从A账户取钱和存钱到B账户都成功的情况下才会成功。在原子事务中执行这些操作确保数据库保持一致的状态。也就是说,即使两个操作中任一操作失败了,钱也不会丢失。
典型地,系统通过提供用于指示哪些事务已经开始以及哪些事务已经结束的机制来实现原子性。或者,通过保存发生任何变化前的数据的副本,例如,通过一个读取-副本-更新的流程,来提供原子性。
一个实例为计算机程序的流程或者运行实体,其已被分配有地址空间、CPU时间以及其它相关联的资源。地址空间可以为例如虚拟存储器的地址空间。在MPP DB中,实例可为数据库流程,如协调节点(coordinator node,CN)、数据节点(datanode,DN)、协调器实例、数据实例或者数据节点实例。节点可以包括实例或者流程,而不是一个实体服务器。数据库实例提供函数来实现和/或管理一个或多个数据库函数。运行于多个服务器中的实例共同工作以完成一个或多个数据库操作。一个实体服务器可以运行多个实例或者节点,例如协调节点或者数据节点。MPP DB运行多个实例以完成包括多线程处理的处理工作。
多线程编程模型广泛用于MPP DB管理系统。另外,在监控和/或采取行动防止服务器故障时,该多线程编程模型还会导致操作之间的隔离度的降低。操作之间隔离度的降低会导致更加频繁的实例故障。例如,由于数据在处理线程之间进行交换,所以一个处理线程中的故障会导致其它线程中的故障。或者,数据库操作会由于本地资源冲突,比如锁超时或者缓冲区不可用,而失败。此类故障仅在一些实例中经常发生。但是无论有多少幸存实例已经完成了各自的处理部分,任何实例故障(或者运行一个或多个实例的服务器的崩溃)都会导致数据库操作的失败。这样一种“一败皆败”模型在大规模数据处理中非常低效。
图1为MPP DB 100的示例。该MPP DB 100包括DB主机110、通信资源113以及一个或多个DB设备124。DB主机110与一个或多个DB设备124通过通信资源113通信。该通信资源113包括通信链路、设施、一个或多个网络或者其它适合的通信资源。在一些实施例中,该DB主机110接收来自客户端140的数据库操作。该DB主机110执行随后的数据库操作,例如,包括发起、监控和/或控制DB操作。在一些实施例中,数据库主机110发送数据库查询以及其它数据库操作命令到一个或多个DB设备124。在一些实施例中,数据库主机110生成数据库查询或者命令并且判断一个或多个DB设备124中的哪些DB设备124将用于满足该查询或者命令。
每个DB设备124可以存储作业数据的一个或多个部分。然而,DB主机110经常不存储用户数据。相反,DB主机110可以存储关于一个或多个DB设备124的元数据和/或关于存储于一个或多个DB设备124或将由一个或多个DB设备124处理的作业数据的元数据。DB主机110可以包括系统表。
客户端140可以为表示一个人、一组人或者一个或多个计算机等意思的各种实体或人。客户端140可以通过例如移动设备、计算机、智能手机、平板、平板电脑等电子设备接入MPP DB。
MPP DB 100中的所有服务器、设备或者编程实例可以称为MPP DB 100的节点。例如,协调节点可以为一种互联交换机,数据节点可以为一种用于MPP DB的子节点主机。单个物理机,例如服务器设备,可以作为一个或多个虚拟机和/或程序实例的主机,包括多个虚拟机和/或多个程序实例。
当处理查询时,在一些实施例中,每个节点工作于在其本地存储的表的表行中的一行上,然后每个节点可以将结果传回到该协调节点(coordinator node,CN)。来自每个节点的结果可以为完整结果的一部分。CN可以将来自所有节点的所有结果组合成最终的结果集。
数据重分布为MPP DB处理的主要特征中的一个。作业数据跨多个数据库设备和/或编程实例而分布以实现数据以及处理并行性。跨多个数据库设备和/或编程实例均匀分布作业数据可以提供高效的操作且可以最小化处理时间。作业数据分布通常可以通过创建数据库表实现。
作业数据可能需要重新分布,包括作业处理已经开始之后。然而,数据重分布具有独特的挑战和困难。在一些示例中,作业处理可能需要在重分布时暂停。然而,这样代价高昂,且损失处理时间是很不可取的。或者,如果作业处理没有暂停,则作业数据中的变化可能不被准确或完整的捕捉到,导致数据重分布的失败。单个设备、节点或者处理实例中的数据重分布的失败会导致其它,即使在最小程度上,分享数据和/或结果的设备、节点、或者处理实例中的失败。
SQL是一种专用编程语言,其设计为用于与数据库进行通信、用于管理关系数据库管理系统(relational database management system,RDBMS)中的数据,或者用于关系数据流管理系统(relational data stream management system,RDSMS)中的流处理。该SQL语言被细分为若干个语言元素,例如包括从句、表达式、谓语、查询以及语句。从句是语句和查询的组成部分。在一些情况下,从句是可选的。表达式可以产生标量值或者可以产生由成行成列数据组成的表格。谓语指定可以被评价为SQL三值逻辑(three-valued logic,3VL)(真/假/未知)的条件或者布尔真值。谓语用于限制语句和查询的作用或改变程序流。查询为SQL的重要元素,且基于具体标准检索数据。语句对图示和数据有持续的作用或可以控制事务、程序流、连接、会话或诊断。例如,SQL语句可以用来执行诸如更新数据库中的数据或检索数据库中的数据的任务。通过用于MPP DB中的数据重分布的适合的SQL语言选择,数据自动跨分段数据库分布。
图2为MPP DB 200的示例,包括组织到群集115中的DB设备124。DB主机110与一个或多个群集115通信。DB主机110在一些实施例中用于与一个或多个客户端140交互。在一些示例中,DB主机110用于发起、监控以及控制数据库操作。在一些示例中,DB主机110和DB设备124与图1中的DB主机110和DB设备124相同。
每个群集115包括耦合到多个DB设备124或与多个DB设备124通信的群集控制器122。该群集控制器122在一些实施例中与该DB主机110通信。每个DB设备124都包括一个用于存储DB内容的存储。DB设备124可以还包括一个或多个处理器,因此DB设备124可以处理存储于相关联的存储中的数据。DB设备124可以接收部分作业数据,且DB设备124可以处理部分处理作业。每个DB设备124都可以适当地与群集115中的其它DB设备124共享数据/结果。每个DB设备124都可以将处理结果通过相关联的群集控制器122提供给DB主机110。
所示的实施例中的MPP DB 200包括耦合到DB处理设备或系统,例如DB处理群集115的DB主机110。应理解,数据库主机110可以选择性地或者额外地耦合到单独的DB设备124。DB主机110在一些示例中从客户端140接收DB处理作业,准备、发起以及控制DB处理集群115中的DB处理作业,与DB处理集群115通信以及协调DB处理集群115,监控DB处理集群115来检测故障或者失败,接收处理作业完成指示,以及组合完成的DB处理作业且将之传回客户端140。
DB处理集群115包括与群集控制器122通信的若干DB设备124。DB处理集群115可以包括任意数量DB设备124。群集控制器122在一些实施例中交换DB处理集群115和DB主机110之间的所有通信。或者,在其它实施例中,DB设备124可以直接与DB主机110交换通信。每个DB设备124包括DB处理实例,包括运行在多线程的(例如,互连的且协调的)处理环境中的物理处理机、虚拟处理机及处理软件(包括多个处理软件实例的处理软件)。每个DB设备124进行部分处理作业的处理,其中处理作业在多个处理设备/处理实例上分布(和执行)。这包括分布在多个DB设备124上的作业数据。
然而,在很大的DB处理作业中,很有可能每个DB设备独自地处理自己的数据部分。通常,一个特定数据部分的处理会导致一个或多个正在其它DB设备/DB实例上处理的其它数据部分的变化。因而,一个DB设备/DB实例中的处理错误或者处理故障可能并将会影响其它DB设备/DB实例。
通常,在MPP DB中的操作针对大数据量。处理操作中可以涉及大量实例(包括服务器)。典型地,在数据重分布流程中,大的数据作业分布在若干个数据节点,然后其可以在后来需要时,例如,需要均匀处理负载、考虑一些处理节点中的故障或滞后表现、改变执行所需时间,或者在MPP DB的处理能力中容纳改变时,重分布。处理操作会花很长时间且消耗大量计算及存储资源。在处理时,有可能发生单个实例故障。当任何数据节点在重分布流程中发生故障,整个流程失败且需要从事务开始处重新开始。在单个实例故障之后的重复操作浪费处理时间和资源。
任选地,在方法中,运行在例如协调节点、数据节点或高斯数据服务器(Gaussdata server,GDS)中的协调线程发起将数据从数据源移动到数据目的地的数据重分布操作。
图3为MPP DB 400的示例。在该示例中,MPP DB 400包括一个或多个服务器,例如服务器351以及353。在不同的服务器中,可以有一个或多个协调节点320以及一个或多个数据节点324。例如,在本示例中,DN1 424、DN2 324和CN 320位于服务器1 351中,而DN3 324以及DN4 324位于服务器2 353中。当发出查询或者数据重分布命令时,查询或者命令前往CN 320。CN 320可以视情况阐释查询或者命令以及发送查询或者命令到相关DN 324。此流程在一个事务中完成。如果在单个事务的流程中任何DN中的任何子流程失败,整个事务失败。
图4示出数据重分布流程前的MPP DB 400。MPP DB 400可以包括类似于MPP DB100、MPP DB 200或MPP DB 300的实施例,且可以具有相同或者相似部件。示出的示例中的MPP DB 400包括协调节点(coordinator node CN)420以及第一数据节点1(data node 1,DN1)430。第一DN1 430可以包括服务器或物理机或者可以包括服务器或物理机上实例化的DB处理实例。第一DN1 430可以包括图1或图2中的DB设备124或图3中的DB设备324。CN 420可以促进或者控制MPP DB 400中的至少一些操作,例如在第一DN1 430中的操作。应理解,CN 420可以在相同的服务器或者物理机或者从第一DN1 430分离的服务器或者物理机上实例化。如图2所示,第一DN1 430和/或CN 420可以包括群集115的部件。应理解,MPP DB 400通常包括不止一个DN,但是本文为了简洁只显示一个DN。
第一DN1 430包括作业数据p 435。作业数据p 435可以很大。作业数据p 435会被重分布,以促进或加速处理。重分布可以将部分或全部作业数据p 435迁移到其它数据节点进行处理。
图5示出MPP DB400,其中至少一个附加DN2 440用虚线示出。至少一个附加DN2440被添加到MPP DB 400(被提供的)中用于当前的处理作业。至少一个附加DN2 440可以包括服务器或者物理机或者在服务器或者物理机上实例化的DB处理实例。至少一个附加DN2440可以包括图1或图2中的DB设备124或可以包括图3中的DB设备324。
然而,MPP DB 400必须在至少一个附加DN2440能收到部分作业数据p 435且开始处理之前先为重分布做准备。或者,数据重分布可以在至少一个已经实例化的DN上执行。
如果在重分布中发生故障,或者重分布导致故障,MPP DB 400必须可以恢复。数据重分布不应导致至少一个附加DN2 440的不当处理或者操作。数据重分布不应导致第一DN1430的处理或者操作中的故障。更重要的是,数据重分布不应导致处理作业所涉及的其它DB设备/DB实例中的故障。
图6示出MPP DB 400,其中第一DN1 430的作业数据p 435已被拆分,以为数据重分布做准备。在所示示例中,作业数据p 435已被拆分为两个部分,即第一数据部分p1 436和重分布数据部分p2 437。第一数据部分p1 436和重分布数据部分p2 437可以大小相同或不同。应理解,尽管拆分显示为将作业数据p 435分为两个部分,该拆分可以按需将作业数据p435分为不止两个部分。进一步,该拆分不必为数据拆分,反而可以包括通过地址、索引号、偏移、数据类型或者任何其它用于迁移或检索特定数据或数据部分的系统来整理或分离数据或数据记录。在又一些实施例中,第一DN1 430的全部作业数据可以被重分布到一个或多个附加DN。或者,在其它示例中,全部作业数据可以被重分布到一个或多个其它DN。
图7A示出MPP DB 400,其中作业数据p435被划分成第一数据部分p1 436以及重分布数据部分p2437,用于数据重分布流程。第一数据部分p1 436以及重分布数据部分p2 437可以大小相同或不同。在本示例中,在数据重分布流程中,第一数据部分p1 436计划在第一DN1 430中保留。相反,在本示例中,在数据重分布流程中,重分布数据部分p2 437计划被迁移到至少一个附加DN2 440。
图7B还可以示出MPP DB 400,其中全部作业数据p 435包括重分布数据部分p2437。结果,在本示例中,在数据重分布流程中,全部作业数据p 435计划被迁移到至少一个附加DN2 440。
图8示出MPP DB 400,其中快照450已被记录。快照450可以被记录以为数据重分布做准备。快照450记录作业数据信息。作业数据信息包括关于和/或来自需要进行数据重分布操作的作业数据的信息。在数据重分布失败、数据重分布成功或者数据重分布具有成功和失败两种情况的时候,可能需要作业数据信息。在一些示例中,作业数据信息包括关于作业数据拆分的信息。在一些示例中,作业数据信息包括使得部分或全部作业数据被重分布的信息。此外,作业数据信息可以在数据重分布失败时使得适当的操作状态恢复。
在一些实施例中,被记录在快照中的作业数据信息包括作业数据的一个地址、多个地址或者地址范围或者一个或多个作业数据部分的一个地址、多个地址或者地址范围。在一些实施例中,被记录在快照中的作业数据信息包括作业数据的一个记录号、多个记录号或者记录号范围或者一个或多个作业数据部分的一个记录号、多个记录号或者记录号范围。在一些实施例中,被记录在快照中的作业数据信息包括作业数据的一个索引号、多个索引号或者索引号范围或者一个或多个作业数据部分的一个索引号、多个索引号或者索引号范围。在一些实施例中,被记录在快照中的作业数据信息包括作业数据的一个偏移号、多个偏移号或者偏移范围或者一个或多个作业数据部分的一个偏移号、多个偏移号或者偏移范围。在一些实施例中,被记录在快照中的作业数据信息包括作业数据的起点和终点或者一个或多个作业数据部分的起点和终点。
快照450可以由CN 420、第一DN1 430或者MPP DB 400的任何其它适合的部件或者设施记录。快照450可以保留在CN 420、第一DN1 430或者MPP DB 400的任何其它适合的部件或者设施。
图9示出MPP DB 400,其中即使该MPP DB 400正在准备数据重分布,第一DN1 430仍继续进行作业处理。因为在本示例中,作业数据已经被拆分成第一数据部分p1 436和重分布数据部分p2 437,必须保存及保留作业数据的变化直到数据重分布完成。因此,作业数据的变化在临时表454中积累并保存。无论是第一数据部分p1 436的变化或是重分布数据部分p2 437的变化都保存到临时表454中。在数据重分布操作的流程中,作业数据的变化可以保存在临时表454中。临时表454可以位于CN 420、第一DN1 430、或者MPP DB 400的任何其它适合的部件或者设施。
图10示出MPP DB 400,其中重分布数据部分p2 437被迁移到至少一个附加DN2440。第一DN1 430中的重分布数据部分p2 437用虚线显示来指示迁移,但是应理解,该迁移包括重分布数据部分p2 437的副本,且无需将重分布数据部分p2 437从第一DN1 430中移除。
图11示出MPP DB 400,其中该数据重分布已经成功。由于数据重分布成功,变化数据458被安装到作业数据。第一数据部分p1 436上发生的变化安装在第一数据部分p1 436上,其仍然在第一DN1 430上。重分布数据部分p2 437上发生的变化安装在目前在至少一个附加DN2 440上的重分布数据部分p2 437上。然后,至少一个附加DN2 440可以开始处理重分布数据部分p2 437。有利地,第一DN1 430已经能够继续处理作业数据,其中第一数据部分p1 436上的变化保留在第一DN1 430中,且重分布数据部分p2437上的变化迁移到至少一个附加DN2 440上。
如果数据重分布失败,原始作业数据可以恢复。进一步,根据本文任一实施例以及示例,在数据重分布流程开始后发生的作业数据的变化被捕捉及保留。万一数据重分布失败,作业数据仍然保留在第一DN1 430(与图4中的作业数据p 435相同)中。然后,变化数据458中的所有变化安装在第一数据部分p1 436上,其中第一DN1 430可以继续进行处理。没有数据或者数据变化丢失。不丢失处理时间,尤其即使即使数据重分布流程正在进行,第一DN1 430仍可以继续进行处理。
图12为用于第一DN中的作业数据到MPP DB中至少一个附加DN的数据重分布的方法的流程图1200。数据重分布可以包括第一DN中的全部或部分作业数据的重分布。此外,数据重分布可以包括来自多个第一DN的作业数据的重分布、到至少一个附加DN的作业数据的重分布,或者可以包括从多个第一DN到至少一个附加DN的作业数据的重分布。
在步骤1201中,记录作业数据快照。快照包括在数据重分布失败时用于恢复的作业数据信息。
在步骤1203中,收集和积累作业数据的变化,例如到临时表或者其它数据结构/存储设备。变化可能由第一DN连续的作业数据的处理引起。变化可能由其它DN、设备或者系统连续的作业数据的处理引起,其中其它DN的处理可能会引起作业数据的变化。其它选择中,变化由第一DN和其它DN、设备或者系统进行的处理引起。
在步骤1204中,发起至少一个部分作业数据的迁移。
在步骤1205中,如果数据重分布迁移成功,则该方法进入步骤1206。如果数据重分布迁移失败,则该方法分支到步骤1210。
在步骤1206中,其中数据重分布迁移成功,将所有第一数据部分的变化(在临时表中积累)合并到第一DN的第一数据部分。在一些实施例中,快照用于确定将临时表中的哪些变化合并到第一DN的第一数据部分。因此,将第一数据部分的变化保留在第一DN中。
在步骤1207中,指示第一DN可以继续进行处理。该第一DN具有全部以及当前数据或数据部分。
在步骤1208中,将重分布数据部分的变化(在临时表中积累)合并到目前在至少一个附加DN上的重分布数据部分。在一些实施例中,快照用于确定将临时表中的哪些变化合并到至少一个附加DN的重分布数据部分。一些实施例中,快照可以用来将重分布数据变化从临时表合并到迁移成功的至少一个附加DN。一些实施例中,快照可以用来将临时表积累的重分布数据变化合并到迁移失败的第一DN。因此,重分布数据部分的变化出现在至少一个附加DN中。
在步骤1209中,指示至少一个附加DN准备开始进行处理。该至少一个附加DN具有全部以及当前数据或数据部分。
在步骤1210中,其中数据重分布迁移失败,如前所述,将第一数据部分(在临时表中积累)的变化合并到仍然该第一DN的第一数据部分。
在步骤1211中,将重分布数据部分(在临时表中积累)的变化合并到仍然存在于第一DN的重分布数据部分。在一些实施例中,快照用于确定将临时表中的哪些变化合并到第一DN的重分布数据部分。因此,将重分布数据部分的变化加入到或者包括在第一DN。
在步骤1212中,指示该第一DN可以继续进行处理,此时,使用的是原始作业数据以及拍摄快照以后所有已发生的变化。或者,该方法可以重试数据重分布。进一步,该方法可以迭代处理多个此类重分布。
图13A至图13E示出根据实施例的在添加一个或多个新服务器/实例到MPP DB之后的数据重分布流程的流程图。
图13A示出用于第一数据节点DN1中的作业数据到MPP DB中至少一个附加DN的数据重分布的数据重分布方法1300的流程图。步骤1310,在MPP DB上开始数据重分布。
步骤1320,基于现有的服务器及新服务器的数量,计算桶到服务器的映射关系。
步骤1330,建立表格列表以满足数据重分布的需求。
步骤1340,当表格需要数据重分布,流程进入步骤1360(因此进入流程1、流程2以及流程3)来执行数据重分布的事务。典型地,在接收到来自CN、DN或其它服务器的命令或查询后,发生步骤1340,触发或发起数据重分布。或者,不需要数据重分布时,该方法退出。
步骤1360,执行流程1。流程1在下文结合图13B进一步讨论。
步骤1370和步骤1380,为第一DNl以及第二DN2执行流程2。步骤1370和步骤1380可以基本上并行执行。流程2在下文结合图13C进一步讨论。
步骤1390,执行流程3。流程3在下文结合图13D和图13E进一步讨论。
图13B示出根据实施例的用于数据重分布的流程1。通常在为具有新的或者添加的服务器的MPP DB开始数据重分布时,执行步骤1361至1369。流程1保留作业数据,其用于数据重分布流程成功或失败的事件中。
步骤1361包括开始用于数据重分布的事务。
步骤1363,创建在数据重分布时使用的临时表。
步骤1365,记录用于目标服务器的目标表的快照。记录快照还可以描述为获取快照或拍摄快照等。快照可以由例如CN、DN或者其它服务器拍摄。
步骤1367,发出语句,该语句可以删除、选择和/或插入作为数据重分布的部分而被移动的数据记录。该语句由数据重分布中涉及的一个或多个DB设备发出。因此,本示例中,原一个或多个服务器或者DN中的数据记录根据目标表的快照被分成一个或多个数据部分。至少一些用户数据部分会被重分布到新添的服务器或实例上。
在步骤1369中,该事务完成。
图13C示出根据实施例的用于第一DN1和/或第二或附加DN2中的数据重分布的流程2。应理解流程2可视情况由多个数据节点执行。步骤1371、步骤1373以及步骤1375说明事务为数据重分布开始,以及数据记录根据目标表的快照从原始表移动到临时表。临时表为数据重分布而创建。在步骤1375中,该事务完成。
图13D示出根据实施例的用于数据重分布的流程3。流程3迭代处理所有单独的数据重分布。流程3继续进行直到所有数据重分布完成。
步骤1396,如果在MPP DB为任一节点数据重分布流程中发生故障,如上该为故障节点重复流程2。其它节点的其它流程2可以继续进行而不受影响。
步骤1396,如果所有事务都已经完成,进入流程3′。
图13E示出根据实施例的用于数据重分布的流程3′。在所有迭代(例如,所有单独的数据重分布)已经完成后,执行流程3′。当所有的事务都已经完成后,元数据在目标表和原始表之间切换,临时表被合并到原始表中作为最终的目标表。数据重分布流程完成。
额外提供各种实施例,其可与任何前述实施例结合以执行本发明。
用于将数据从数据源移动到大规模并行处理(massively parallel processing,MPP)数据库中的数据目的地的数据重分布的方法包括:记录标识了数据重分布起点和终点的快照;发出第一语句以从数据源中基于快照选择一个或多个数据记录以及将该一个或多个数据记录插入到为数据重分布而创建的临时表中;将临时表转换成为数据目的地而创建的目标表;以及删除该临时表。任选地,该起点和该终点用文件的偏移进行标识,且该文件为要移动的数据。
该方法可以还包括,当数据重分布的流程中出现失败时,重新发出第二语句来基于相同的快照从数据源中选择一个或多个数据记录,且将该一个或多个数据记录插入为数据重分布而创建的临时表。
该方法可以还包括当数据重分布而创建的基本表被锁定为只读时,记录该基本表的快照。
该方法可以还包括为每个数据目的地的数据重分布,运行独立事务,其中不同事务间不交互。该方法可以还包括为每个数据目的地的数据重分布,在实例级别上运行事务以及记录快照、发出第一语句和转换事务中的临时表。
该方法可以还包括为每个数据目的地的数据重分布,在实例级别上运行事务,当第一数据目的地的实例中的事务失败时,保持用于其它数据目的地的数据重分布的其它实例中其它事务的运行。该方法可以还包括以隔离实例的方式发起数据重分布的操作,这样如果在数据重分布的操作流程中,一个数据节点中实例失败了,其它数据节点中的其它实例可以继续。
上述方法还可以适用于用于执行本文所描述的步骤的系统和装置。
本文讨论的各种实施例侧重于在保留所有幸存实例完成的工作的同时,重新开始在MPP DB中海量数据的操控操作的途径。该数据操控操作是指例如群集扩展后的数据重分布、重建索引、将数据从文件中副本到表中和大容量加载操作。通过应用在此描述的各种实施例的解决方案,MPP DB可以为故障的服务器或者实例重新开始或者重新运行部分工作而非重新开始或者重新运行全部数据重分布流程。保留或重新使用单独的数据重分布的结果(由幸存服务器或者实例完成的)来完成重分布流程。通过此类可以重新开始的数据操控操作,节约了大量的工作、时间以及计算资源。
示例的机器可读介质
图14示出可以用于根据任一实施例实现例如,本文所描述的设备和方法的计算单元1400。具体设备可以利用所有显示的部件或者仅部件的子集,且设备之间整合水平不同。此外,设备可以包括多个部件的实例,例如多个处理单元、处理器、存储器、发射器、接收器等。处理单元1400可以包括连接到总线1440的中央处理单元(central processing unit,CPU)1410、存储器1420、海量存储设备1430以及I/O接口1460。
总线1440可为若干个一个或多个任意类型的总线架构,其包括存储器总线或者存储器控制器、外设总线或视频总线等。CPU 1410可以包括任意类型的电子数据处理器。该存储器1420可以包括任意类型的非瞬时性系统存储器,例如静态随机存储器(static randomaccess memory,SRAM)、动态随机存储器(dynamic random access memory,DRAM)、同步DRAM(synchronous DRAM,SDRAM)、只读存储器(read-only memory,ROM)或其组合等。实施例中,存储器1420可以包括用于启动的ROM以及用于执行程序时使用的程序以及数据存储的DRAM。
海量存储1430可以包括任意类型的非瞬时性存储设备,其用于存储数据、程序以及其它信息以及使得该数据、程序以及其它信息可通过总线1440访问。该海量存储1430可以包括,例如,一个或多个固态硬盘、硬盘驱动、磁盘驱动或光盘驱动等。
该I/O接口1460耦合外部输入以及输出设备到处理单元1400。如图示,输入以及输出设备的示例包括耦合到I/O接口1460的扬声器、麦克风、鼠标、触摸屏、小键盘、键盘、打印机、显示器等(未示出)。其它设备可以耦合到该处理单元1400,且可以利用更多或更少的接口设备。例如,可使用如通用串行总线(universal serial bus,USB)(未示出)等串行接口将接口提供给打印机。
处理单元1400还包括一个或多个通信接口1450,其可包括到接入节点或不同网络1480的有线链接,如以太网缆线,和/或无线链路。通信接口1450使得处理单元1400能例如通过网络1480与远程单元通信。例如,通信接口1450可以通过一个或多个发送器和/或一个或多个接收器(未图示)提供无线通信。实施例中,处理单元1400耦合到局域网或广域网上以用于数据处理以及与远程设备通信,该远程设备例如其它处理单元、因特网、远程存储设施或其类似者。
对本文中示出的实施例进行足够详细的描述以使所属领域的技术人员能够实践本文中所公开的教示。可使用其它实施例且从本文中导出其它实施例,使得可在不脱离本发明的范围的情况下对结构和逻辑作出替代和改变。因此,详细描述不应以限制性意义来理解,并且各种实施例的范围仅由所附权利要求连同此类权利要求授权的等效物的完整范围定义。

Claims (26)

1.一种用于将第一数据节点DN中的作业数据重分布到大规模并行处理MPP数据库DB中的至少一个附加DN的方法,其特征在于,包括:
记录所述作业数据的快照;
将所述第一DN中的作业数据拆分为第一数据部分以及重分布数据部分;
收集所述作业数据的变化,所述变化包括第一数据部分变化和重分布数据变化,将所述变化存储于临时表中;
发起所述重分布数据部分到所述至少一个附加DN的迁移;
如果所述重分布数据部分到所述至少一个附加DN的迁移成功:
将所述第一数据部分变化合并到所述第一数据部分;以及
将所述重分布数据变化合并到所述至少一个附加DN中的所述重分布数据部分。
2.根据权利要求1所述的方法,其特征在于,所述快照用于确定存储于所述临时表中的所述第一数据部分变化以及所述重分布数据变化。
3.根据权利要求1至2任一项所述的方法,其特征在于,还包括:
如果所述重分布数据部分到所述至少一个附加DN的迁移成功:
指示所述第一DN继续进行处理。
4.根据权利要求1至2任一项所述的方法,其特征在于,还包括:
如果所述重分布数据部分到所述至少一个附加DN的迁移成功:
指示所述至少一个附加DN准备开始进行处理。
5.根据权利要求1至2任一项所述的方法,其特征在于,还包括:
如果所述重分布数据部分到所述至少一个附加DN的迁移失败:
则将所述第一数据部分变化从所述临时表合并到所述第一DN中的所述第一数据部分;
将所述重分布数据变化从所述临时表合并到所述第一DN中的所述重分布数据部分;以及
指示所述第一DN准备重新发起所述第一DN中的处理。
6.根据权利要求1至2任一项所述的方法,其特征在于,还包括:
如果所述重分布数据部分到所述至少一个附加DN的迁移失败:
则将所述第一数据部分变化从所述临时表合并到所述第一DN中的所述第一数据部分;
将所述重分布数据变化从所述临时表合并到所述第一DN中的所述重分布数据部分;以及
重试所述数据重分布。
7.根据权利要求1至2任一项所述的方法,其特征在于,还包括:
如果所述重分布数据部分到所述至少一个附加DN的迁移成功:
则通过所述快照识别所述临时表中的所述第一数据部分变化;
指示所述第一DN可以继续进行处理。
8.根据权利要求1至2任一项所述的方法,其特征在于,还包括:
如果所述重分布数据部分到所述至少一个附加DN的迁移成功:
则通过所述快照识别所述临时表中的所述重分布数据变化;
指示所述至少一个附加DN准备开始进行处理。
9.根据权利要求7所述的方法,其特征在于,还包括:
如果所述重分布数据部分到所述至少一个附加DN的迁移失败:
则通过所述快照识别所述临时表中的所述第一数据部分变化;
将所述第一数据部分变化合并到所述第一DN中的所述第一数据部分;
通过所述快照识别所述临时表中的所述重分布数据变化;
将所述重分布数据变化合并到所述第一DN中的所述重分布数据部分;以及
指示所述第一DN准备重新发起所述第一DN中的处理。
10.根据权利要求8所述的方法,其特征在于,还包括:
如果所述重分布数据部分到所述至少一个附加DN的迁移失败:重试所述数据重分布。
11.根据权利要求8所述的方法,其特征在于,还包括:
如果所述重分布数据部分到所述至少一个附加DN的迁移失败:
则通过所述快照识别所述临时表中的所述第一数据部分变化;
将所述第一数据部分变化合并到所述第一DN中的所述第一数据部分;
通过所述快照识别所述临时表中的所述重分布数据变化;
将所述重分布数据变化合并到所述第一DN中的所述重分布数据部分;以及
重试所述数据重分布。
12.根据权利要求1所述的方法,其特征在于,所述作业数据包括所述第一数据部分以及所述重分布数据部分。
13.根据权利要求1所述的方法,其特征在于,所述作业数据包括所述重分布数据部分。
14.一种用于将第一数据节点DN中的作业数据重分布到大规模并行处理MPP数据库中的至少一个附加DN的设备,其特征在于,包括:
非瞬时性存储器,其包括指令;以及
一个或多个处理器,其与所述存储器通信,其中所述一个或多个处理器执行所述指令以:
记录所述作业数据的快照;
将所述第一DN中的作业数据拆分为第一数据部分以及重分布数据部分;
收集所述作业数据的变化,所述变化包括第一数据部分变化以及重分布数据变化,将所述变化存储于临时表中;
发起所述重分布数据部分到所述至少一个附加DN的迁移;
如果所述重分布数据部分到所述至少一个附加DN的迁移成功:
将所述第一数据部分变化合并到所述第一数据部分;以及
将所述重分布数据变化合并到所述至少一个附加DN中的所述重分布数据部分。
15.根据权利要求14所述的设备,其特征在于,所述快照用于确定存储于所述临时表中的所述第一数据部分变化以及所述重分布数据变化。
16.根据权利要求14至15任一项所述的设备,其特征在于,所述一个或多个处理器还用于:
如果所述重分布数据部分到所述至少一个附加DN的迁移成功:
指示所述第一DN继续进行处理。
17.根据权利要求14至15任一项所述的设备,其特征在于,所述一个或多个处理器还用于:
如果所述重分布数据部分到所述至少一个附加DN的迁移成功:
指示所述至少一个附加DN准备开始进行处理。
18.根据权利要求14至15任一项所述的设备,其特征在于,所述一个或多个处理器还用于:
如果所述重分布数据部分到所述至少一个附加DN的迁移失败:
则将所述第一数据部分变化从所述临时表合并到所述第一DN中的所述第一数据部分;
将所述重分布数据变化从所述临时表合并到所述第一DN中的所述重分布数据部分;以及
指示所述第一DN准备重新发起所述第一DN中的处理。
19.根据权利要求14至15任一项所述的设备,其特征在于,还包括:
如果所述重分布数据部分到所述至少一个附加DN的迁移失败:
则将所述第一数据部分变化从所述临时表合并到所述第一DN中的所述第一数据部分;
将所述重分布数据变化从所述临时表合并到所述第一DN中的所述重分布数据部分;以及
重试所述数据重分布。
20.根据权利要求14至15任一项所述的设备,其特征在于,所述一个或多个处理器还用于:
如果所述重分布数据部分到所述至少一个附加DN的迁移成功:
则通过所述快照识别所述临时表中的所述第一数据部分变化;
指示所述第一DN继续进行处理。
21.根据权利要求14至15任一项所述的设备,其特征在于,所述一个或多个处理器还用于:
如果所述重分布数据部分到所述至少一个附加DN的迁移成功:
通过所述快照识别所述临时表中的所述重分布数据变化;
指示所述至少一个附加DN准备开始进行处理。
22.根据权利要求21所述的设备,其特征在于,所述一个或多个处理器还用于:
如果所述重分布数据部分到所述至少一个附加DN的迁移失败:
则通过所述快照识别所述临时表中的所述第一数据部分变化;
将所述第一数据部分变化合并到所述第一DN中的所述第一数据部分;
通过所述快照识别所述临时表中的所述重分布数据变化;
将所述重分布数据变化合并到所述第一DN中的所述重分布数据部分;以及
指示所述第一DN准备重新发起所述第一DN中的处理。
23.根据权利要求21所述的设备,其特征在于,还包括:
如果所述重分布数据部分到所述至少一个附加DN的迁移失败:重试所述数据重分布。
24.根据权利要求21所述的设备,其特征在于,还包括:
如果所述重分布数据部分到所述至少一个附加DN的迁移失败:
则通过所述快照识别所述临时表中的所述第一数据部分变化;
将所述第一数据部分变化合并到所述第一DN中的所述第一数据部分;
通过所述快照识别所述临时表中的所述重分布数据变化;
将所述重分布数据变化合并到所述第一DN中的所述重分布数据部分;以及
重试所述数据重分布。
25.根据权利要求14所述的设备,其特征在于,所述作业数据包括所述第一数据部分以及所述重分布数据部分。
26.根据权利要求14所述的设备,其特征在于,所述作业数据包括所述重分布数据部分。
CN201780048560.6A 2016-08-03 2017-07-06 用于数据库中数据重分布的系统和方法 Active CN109643310B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110172742.2A CN112965951A (zh) 2016-08-03 2017-07-06 用于数据库中数据重分布的系统和方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/227,546 2016-08-03
US15/227,546 US10545815B2 (en) 2016-08-03 2016-08-03 System and method for data redistribution in a database
PCT/CN2017/092027 WO2018024075A1 (en) 2016-08-03 2017-07-06 System and method for data redistribution in database

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202110172742.2A Division CN112965951A (zh) 2016-08-03 2017-07-06 用于数据库中数据重分布的系统和方法

Publications (2)

Publication Number Publication Date
CN109643310A CN109643310A (zh) 2019-04-16
CN109643310B true CN109643310B (zh) 2021-02-12

Family

ID=61070126

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201780048560.6A Active CN109643310B (zh) 2016-08-03 2017-07-06 用于数据库中数据重分布的系统和方法
CN202110172742.2A Pending CN112965951A (zh) 2016-08-03 2017-07-06 用于数据库中数据重分布的系统和方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202110172742.2A Pending CN112965951A (zh) 2016-08-03 2017-07-06 用于数据库中数据重分布的系统和方法

Country Status (4)

Country Link
US (3) US10545815B2 (zh)
EP (2) EP3491532B1 (zh)
CN (2) CN109643310B (zh)
WO (1) WO2018024075A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2957737A1 (en) * 2014-09-07 2016-03-10 Selecta Biosciences, Inc. Methods and compositions for attenuating gene expression modulating anti-viral transfer vector immune responses
US10545815B2 (en) * 2016-08-03 2020-01-28 Futurewei Technologies, Inc. System and method for data redistribution in a database
CN108319623B (zh) * 2017-01-18 2021-10-22 华为技术有限公司 一种数据重分布方法、装置及数据库集群
CN110196882B (zh) * 2019-05-27 2021-06-08 上海达梦数据库有限公司 数据重分布方式的确定方法、装置、服务器及存储介质
US11537476B2 (en) * 2020-03-25 2022-12-27 Sap Se Database management system backup and recovery management
US11455219B2 (en) * 2020-10-22 2022-09-27 Oracle International Corporation High availability and automated recovery in scale-out distributed database system
US11354337B1 (en) 2021-01-12 2022-06-07 International Business Machines Corporation Online reorganization of database tables with concurrent updates using virtual partitions
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9020802B1 (en) * 2012-03-30 2015-04-28 Emc Corporation Worldwide distributed architecture model and management
CN105190533A (zh) * 2013-03-15 2015-12-23 亚马逊科技公司 原位快照
WO2016116052A1 (en) * 2015-01-21 2016-07-28 Huawei Technologies Co., Ltd. System and method for massively parallel processor database

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7930278B2 (en) * 1998-02-13 2011-04-19 Oracle International Corporation Methods to perform disk writes in a distributed shared disk system needing consistency across failures
US6675189B2 (en) * 1998-05-28 2004-01-06 Hewlett-Packard Development Company, L.P. System for learning and applying integrated task and data parallel strategies in dynamic applications
US7395536B2 (en) * 2002-11-14 2008-07-01 Sun Microsystems, Inc. System and method for submitting and performing computational tasks in a distributed heterogeneous networked environment
US7243088B2 (en) 2003-08-06 2007-07-10 Oracle International Corporation Database management system with efficient version control
US8230426B2 (en) * 2004-10-06 2012-07-24 Digipede Technologies, Llc Multicore distributed processing system using selection of available workunits based on the comparison of concurrency attributes with the parallel processing characteristics
CN101568911B (zh) * 2006-11-29 2011-10-19 张永敏 群对群计算的方法及系统
US8041773B2 (en) * 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US10459912B2 (en) 2008-12-11 2019-10-29 Teradata Us, Inc. Optimizing processing of group-by queries featuring maximum or minimum equality conditions in a parallel processing system
US20110321056A1 (en) * 2010-06-23 2011-12-29 International Business Machines Corporation Dynamic run time allocation of distributed jobs
US8566837B2 (en) 2010-07-16 2013-10-22 International Business Machines Corportion Dynamic run time allocation of distributed jobs with application specific metrics
US9268613B2 (en) * 2010-12-20 2016-02-23 Microsoft Technology Licensing, Llc Scheduling and management in a personal datacenter
EP2746941A1 (en) * 2012-12-20 2014-06-25 Thomson Licensing Device and method for optimization of data processing in a MapReduce framework
US9348641B2 (en) * 2013-03-13 2016-05-24 Futurewei Technologies, Inc. System and method for performing a transaction in a massively parallel processing database
US9817703B1 (en) * 2013-12-04 2017-11-14 Amazon Technologies, Inc. Distributed lock management using conditional updates to a distributed key value data store
US9424160B2 (en) * 2014-03-18 2016-08-23 International Business Machines Corporation Detection of data flow bottlenecks and disruptions based on operator timing profiles in a parallel processing environment
US10963810B2 (en) * 2014-06-30 2021-03-30 Amazon Technologies, Inc. Efficient duplicate detection for machine learning data sets
US10102086B2 (en) 2014-12-19 2018-10-16 Futurewei Technologies, Inc. Replicated database distribution for workload balancing after cluster reconfiguration
US9900378B2 (en) * 2016-02-01 2018-02-20 Sas Institute Inc. Node device function and cache aware task assignment
US10545815B2 (en) 2016-08-03 2020-01-28 Futurewei Technologies, Inc. System and method for data redistribution in a database

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9020802B1 (en) * 2012-03-30 2015-04-28 Emc Corporation Worldwide distributed architecture model and management
CN105190533A (zh) * 2013-03-15 2015-12-23 亚马逊科技公司 原位快照
WO2016116052A1 (en) * 2015-01-21 2016-07-28 Huawei Technologies Co., Ltd. System and method for massively parallel processor database

Also Published As

Publication number Publication date
US10545815B2 (en) 2020-01-28
CN109643310A (zh) 2019-04-16
US20220276922A1 (en) 2022-09-01
EP3859556B1 (en) 2024-05-15
US11886284B2 (en) 2024-01-30
EP3491532A1 (en) 2019-06-05
US20200210273A1 (en) 2020-07-02
US11334422B2 (en) 2022-05-17
CN112965951A (zh) 2021-06-15
US20180039534A1 (en) 2018-02-08
EP3859556A1 (en) 2021-08-04
EP3491532A4 (en) 2019-06-05
EP3491532B1 (en) 2021-04-21
WO2018024075A1 (en) 2018-02-08

Similar Documents

Publication Publication Date Title
CN109643310B (zh) 用于数据库中数据重分布的系统和方法
US11010262B2 (en) Database system recovery using preliminary and final slave node replay positions
US10089307B2 (en) Scalable distributed data store
EP3120261B1 (en) Dependency-aware transaction batching for data replication
JP5577350B2 (ja) 効率的なデータ同期化のための方法及びシステム
JP5660693B2 (ja) ハイブリッドoltp及びolap高性能データベースシステム
US9747356B2 (en) Eager replication of uncommitted transactions
US9170848B1 (en) Parallel processing of data
US11263236B2 (en) Real-time cross-system database replication for hybrid-cloud elastic scaling and high-performance data virtualization
US20110082832A1 (en) Parallelized backup and restore process and system
US10366075B2 (en) Database management system and method
CN112654978B (zh) 分布式异构存储系统中数据一致性实时检查的方法、设备和系统
CN110019469B (zh) 分布式数据库数据处理方法、装置、存储介质及电子装置
US9984139B1 (en) Publish session framework for datastore operation records
WO2021046750A1 (zh) 数据重分布方法、装置及系统
Jiang et al. Alibaba hologres: A cloud-native service for hybrid serving/analytical processing
CN107566341B (zh) 一种基于联邦分布式文件存储系统的数据持久化存储方法及系统
Pankowski Consistency and availability of Data in replicated NoSQL databases
US11940972B2 (en) Execution of operations on partitioned tables
CN116975053A (zh) 一种数据处理方法、装置、设备、介质及程序产品
CN114706832A (zh) 一种数据重分布方法、装置、设备及存储介质
JPH08147203A (ja) トランザクション処理システム
CN103984712A (zh) 基于sap数据仓库的凭证数据检索方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant