CN114253936A - 分布式数据库的缩容方法、装置、设备和介质 - Google Patents

分布式数据库的缩容方法、装置、设备和介质 Download PDF

Info

Publication number
CN114253936A
CN114253936A CN202011001982.8A CN202011001982A CN114253936A CN 114253936 A CN114253936 A CN 114253936A CN 202011001982 A CN202011001982 A CN 202011001982A CN 114253936 A CN114253936 A CN 114253936A
Authority
CN
China
Prior art keywords
node
data
nodes
target migration
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.)
Pending
Application number
CN202011001982.8A
Other languages
English (en)
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.)
Zhejiang Uniview Technologies Co Ltd
Original Assignee
Zhejiang Uniview 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 Zhejiang Uniview Technologies Co Ltd filed Critical Zhejiang Uniview Technologies Co Ltd
Priority to CN202011001982.8A priority Critical patent/CN114253936A/zh
Publication of CN114253936A publication Critical patent/CN114253936A/zh
Pending legal-status Critical Current

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
    • 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/23Updating
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种分布式数据库的缩容方法、装置、设备和介质。其中方法包括:从多个数据节点中确定待缩容数据节点,并确定待缩容数据节点上第一副本数据子节点待迁至的第一目标迁移节点,以及第一目标迁移节点上第二副本数据子节点待迁至的第二目标迁移节点;分别迁移第一副本数据子节点至第一目标迁移节点,和第二副本数据子节点至第二目标迁移节点;确定待缩容数据节点上第一主数据子节点待迁至的第三目标迁移节点;迁移第一主数据子节点至第三目标迁移节点,并将待缩容数据节点从分布式数据库中删除。本发明通过一种在线缩容方案,对分布式数据库进行缩容,使得分布式数据库在缩容过程中无需中断服务,保证能够正常提供服务。

Description

分布式数据库的缩容方法、装置、设备和介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种分布式数据库的缩容方法、装置、设备和介质。
背景技术
分布式数据库(例如GreenPlum数据库),是在PostgreSQL的基础上采用大规模并行处理(Massively Parallel Processing,简称MPP)架构的高性能数据库,具有高可用、高扩展性和性价比高等优点。
在使用过程中,为了适应数据量的规模和计算处理能力的要求,通常需要对GreenPlum数据库进行适应性缩容处理。目前,大多数是基于备份恢复的方式实现缩容的目的。具体实现过程为:将GreenPlum数据库中每个数据节点(Segment)上存储的数据全部备份到其他存储设备(比如,硬盘或磁盘等)中,然后拆解GreenPlum数据库,并将不满足需求的Segment拆除,利用剩余的Segment重新构建新GreenPlum数据库。在新GreenPlum数据库运行正常后,将暂存于其他存储设备中的数据重新导入到新GreenPlum数据库中。在导入数据时,被拆除的至少一个Segment的数据会被均匀的导入到新GreenPlum数据库中的每个Segment中,以实现对GreenPlum数据库的缩容。
然而,上述缩容方式需要GreenPlum数据库中断服务,导致GreenPlum数据库处于不可用的状态。
发明内容
本发明实施例提供一种分布式数据库的缩容方法、装置、设备和介质,通过一种在线缩容方案,对分布式数据库进行缩容,使得分布式数据库在缩容过程中无需中断服务,保证能够正常提供服务。
第一方面,本发明实施例提供了一种分布式数据库的缩容方法,所述分布式数据库包括管理节点和多个数据节点,所述每个数据节点包括主数据子节点和副本数据子节点,其中所述主数据子节点和所述副本数据子节点存储不同的数据;所述方法由管理节点执行,所述方法包括:
从多个数据节点中确定待缩容数据节点,并确定所述待缩容数据节点上第一副本数据子节点待迁至的第一目标迁移节点,以及所述第一目标迁移节点上第二副本数据子节点待迁至的第二目标迁移节点;
分别迁移所述第一副本数据子节点至所述第一目标迁移节点,和所述第二副本数据子节点至所述第二目标迁移节点;
确定所述待缩容数据节点上第一主数据子节点待迁至的第三目标迁移节点;
迁移所述第一主数据子节点至所述第三目标迁移节点,并将所述待缩容数据节点从所述分布式数据库中删除。
第二方面,本发明实施例提供了一种分布式数据库的缩容装置,所述分布式数据库包括管理节点和多个数据节点,所述每个数据节点包括主数据子节点和副本数据子节点,其中所述主数据子节点和所述副本数据子节点存储不同的数据;所述装置配置于管理节点,包括:
第一确定模块,用于从多个数据节点中确定待缩容数据节点,并确定所述待缩容数据节点上第一副本数据子节点待迁至的第一目标迁移节点,以及所述第一目标迁移节点上第二副本数据子节点待迁至的第二目标迁移节点;
第一控制模块,用于分别迁移所述第一副本数据子节点至所述第一目标迁移节点,和所述第二副本数据子节点至所述第二目标迁移节点;
第二确定模块,用于确定所述待缩容数据节点上第一主数据子节点待迁至的第三目标迁移节点;
第二控制模块,用于迁移所述第一主数据子节点至所述第三目标迁移节点,并将所述待缩容数据节点从所述分布式数据库中删除。
第三方面,本发明实施例还提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例中任一所述的分布式数据库的缩容方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例中任一所述的分布式数据库的缩容方法。
本发明实施例公开的技术方案,具有如下有益效果:
从多个数据节点中确定待缩容数据节点,并确定待缩容数据节点上第一副本数据子节点待迁至的第一目标迁移节点,以及第一目标迁移节点上第二副本数据子节点待迁至的第二目标迁移节点;分别迁移第一副本数据子节点至第一目标迁移节点,和第二副本数据子节点至第二目标迁移节点;确定待缩容数据节点上第一主数据子节点的第三目标迁移节点,迁移第一主数据子节点至第三目标迁移节点,并将待缩容数据节点从分布式数据库中删除。由此,通过一种在线缩容方案,对分布式数据库进行缩容,使得分布式数据库在缩容过程中无需中断服务,保证能够正常提供服务。
附图说明
图1是本发明实施例提供的一种分布式数据库的结构示意图;
图2是本发明实施例提供的一种分布式数据库的缩容方法的流程示意图;
图3是本发明实施例提供的另一种分布式数据库的缩容方法的流程示意图;
图4(a)是本发明实施例提供的一个具体确定待缩容数据节点上第一副本数据子节点的第一目标迁移节点的示意图;
图4(b)是本发明实施例提供的一个具体将第一副本数据子节点迁移至第一目标迁移节点,以及第二副本数据子节点迁移至第二目标迁移节点的示意图;
图5是本发明实施例提供的再一种分布式数据库的缩容方法的流程示意图;
图6(a)是本发明实施例提供的一种示例性并查集的示意图;
图6(b)是本发明实施例提供的一种构建分布式数据库的并查集的示意图;
图6(c)是本发明实施例提供的一种对分布式数据库进行缩容后的示意图;
图7是本发明实施例提供的一种分布式数据库的缩容装置的结构示意图;
图8是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
为了清楚说明本发明实施例,下面结合图1对分布式数据库(例如GreenPlum数据库)进行说明。如图1所示,分布式数据库包括一个管理节点(Master)和多个数据节点(Segment),管理节点与多个数据节点通过互联协议联通。其中,管理节点负责管理整个分布式数据库的运作;多个数据节点负责数据存储和运行计算。在使用过程中,为了避免数据节点发生故障导致整个数据库停止服务,通常会启用镜像,以为每个数据节点配备一个副本数据子节点(mirror segment),即每个数据节点包括主数据子节点(primary segment)和副本数据子节点,并且同一个数据节点的主数据子节点和副本数据子节点被分布在不同的数据节点,以预防单数据节点故障导致分布式数据库无法使用的风险。
下面参考附图对本发明实施例的分布式数据库的缩容方法、装置、设备和介质进行详细说明。
图2是本发明实施例提供的一种分布式数据库的缩容方法的流程示意图。本发明实施例可适用于对分布式数据库进行缩容的场景,该方法可以由配置于管理节点的分布式数据库的缩容装置来执行。如图2所示,该方法具体包括如下:
S101,从多个数据节点中确定待缩容数据节点,并确定所述待缩容数据节点上第一副本数据子节点待迁至的第一目标迁移节点,以及所述第一目标迁移节点上第二副本数据子节点待迁至的第二目标迁移节点。
通常,分布式数据库中的管理节点与客户端建立连接,负责接收用户通过客户端发送的请求或指令,以根据请求或指令执行相应操作。例如,用户通过客户端发送查询请求,那么管理节点通过解析该请求并形成执行计划,然后并行向每个数据节点分发执行计划并收集每个数据节点的执行结果,然后将结果返回给客户端。又例如,用户可通过客户端发送缩容指令,那么管理节点通过解析该缩容指令,以根据缩容指令携带的待缩容数据节点的标识信息,从多个数据节点中确定出待缩容数据节点。
也就是说,本实施例从多个数据节点中确定待缩容数据节点时,可接收用户发送的缩容指令,所述缩容指令携带有待缩容数据节点的标识信息;根据所述缩容指令携带的待缩容数据节点的标识信息,从多个数据节点中确定待缩容数据节点。在本发明实施例中,标识信息是指能够唯一确定待缩容数据节点的身份信息,例如编号、序列号或者数字证书等。比如,缩容指令中携带的待缩容数据节点的标识信息为编号11,则管理节点将编号为11的数据节点确定为待缩容数据节点。
由于分布式数据库中的数据节点负责数据的计算和存储,那么管理节点根据缩容指令确定出的待缩容数据节点上主数据子节点和副本数据子节点(第一副本数据子节点)也存储着数据。为了确保分布式数据库的安全性和完整性,本发明采用将待缩容数据节点上的主数据子节点和副本数据子节点迁移至分布式数据库的其它数据节点上,以使待缩容数据节点上不存在任何数据,之后再将没有任何数据的待缩容数据删除,以实现分布式数据库的缩容目的。
在分布式数据库中,每个数据节点对应有存储着相同数据的主数据子节点和副本数据子节点中,且每个数据节点一般是由主数据子节点提供服务。当主数据子节点出现异常,无法正常提供服务时,才切换到与主数据子节点具有相同数据的副本数据子节点工作,以提高分布式数据库的容灾能力。也就是说,在数据节点的主数据子节点运行正常的情况下,与主数据子节点存储相同数据的副本数据子节点是不提供服务的。
基于此,本发明实施例将待缩容数据节点上存储有不同数据的主数据子节点和副本数据子节点,迁移至分布式数据库中的其他数据节点时,可以先迁移待缩容数据节点上的第一副本数据子节点,然后再迁移待缩容数据节点上的主数据子节点,从而实现在迁移第一副本数据子节点的同时,确保主数据子节点可以继续对外提供服务。
具体迁移待缩容数据节点上第一副本数据子节点之前,首先需要从除待缩容数据节点之外的其它数据节点中,确定目标迁移节点(第一目标迁移节点),在确定出第一目标迁移节点之后,即可将待缩容数据节点上第一副本数据子节点迁移至第一目标迁移节点。又因为第一目标迁移节点上原本也存储有不同数据的主数据子节点和副本数据节点(第二副本数据节点),所以为了避免将待缩容数据节点上第一副本数据子节点直接迁移至第一目标迁移节点,而导致第一目标迁移节点上副本数据子节点数量突增,使得分布式数据库中各数据节点上存储的数据量出现不均衡现象。本实施例在确定出第一目标迁移节点之后,还进一步确定第一目标迁移节点上第二副本数据子节点的第二目标迁移节点。
在本发明实施例中,确定待缩容数据节点上第一副本数据子节点的第一目标迁移节点,以及确定第一目标迁移节点上第二副本数据子节点的第二目标迁移节点,可根据待缩容数据节点上主数据子节点对应的副本数据子节点数量,或者基于数据节点的负载量、网络距离以及硬件状态数据中至少一个确定,或者还可采用其他方式确定,此处对其不作具体限定。
S102,分别迁移所述第一副本数据子节点至所述第一目标迁移节点,和所述第二副本数据子节点至所述第二目标迁移节点。
可选的,在确定出第一目标迁移节点和第二目标迁移节点之后,本发明实施例中管理节点即可控制待缩容数据节点,将第一副本数据子节点迁移至第一目标迁移节点中,以及控制第一目标迁移节点将第二副本数据子节点迁移至第二目标迁移节点。
其中,控制待缩容数据节点和第一目标迁移节点,将各自的副本数据子节点迁移至对应目标数据节点时,可包括以下情景:
情景一
管理节点可并行向待缩容数据节点和第一目标迁移节点发送数据子节点迁移指令,以使待缩容数据节点和第一目标迁移节点分别将各自的副本数据子节点,迁移至对应的目标迁移节点中。
情景二
管理节点先向待缩容数据节点发送数据子节点迁移指令,在待缩容数据节点将第一副本数据子节点迁移至第一目标迁移节点之后,向第一目标迁移节点发送数据子节点迁移指令,以使第一目标迁移节点将第二副本数据子节点迁移至第二目标迁移节点中。
情景三
管理节点先向第一目标迁移节点发送数据子节点迁移指令,在第一目标迁移节点将第二副本数据子节点迁移至第二目标迁移节点之后,向待缩容数据节点发送数据子节点迁移指令,以使待缩容数据节点将第一副本数据子节点迁移至第一目标迁移节点中。
需要说明的是,上述几种情景仅作为本发明实施例的示例性说明,不作为具体限定。
优选的在本发明实施例中,迁移待缩容数据节点上第一副本数据子节点,和第一目标迁移节点上第二副本数据子节点至各自对应的目标迁移节点时,可采用流复制的方式实现。
S103,确定所述待缩容数据节点上第一主数据子节点待迁至的第三目标迁移节点。
可选的,将待缩容数据节点上第一副本数据子节点,和第一目标迁移节点上第二副本数据子节点,迁移至各自对应的目标迁移节点后,管理节点可获取每个数据节点上主数据子节点和副本数据子节点之间的映射关系;根据映射关系构建并查集(UnionFind),然后根据构建的并查集,确定待缩容数据节点上第一主数据子节点的第三目标迁移节点。其中,并查集是一种树形的数据结构,用于处理一些不相交集合的合并以及查询问题,在图论算法当中对连通性以及环的判断有着广泛的应用,在数据量极大的情况下可以用较小的空间描述图中点集合与边集合的关系。基于这种数据结构可以大大的降低联通性和带环判断的时间复杂度。
S104,迁移所述第一主数据子节点至所述第三目标迁移节点,并将所述待缩容数据节点从所述分布式数据库中删除。
可选的,由于第一目标迁移节点上存储的第二副本数据子节点与待缩容数据节点上主数据子节点存储有相同的数据,因此为了在迁移待缩容数据节点上主数据子节点时,分布式数据库能够正常运行,并对外提供服务。本发明实施例可在迁移所述第一主数据子节点至所述第三目标迁移节点之前,将与待缩容数据节点上第一主数据子节点存储相同数据的第二副本数据子节点,暂时切换成为新的第一主数据子节点。从而实现在迁移待缩容数据节点上第一主数据子节点时,可通过新的第一主数据子节点继续对外提供服务,使得分布式数据库能够一直对外提供服务,而不会因为迁移第一主数据子节点而导致数据库中断服务,提高了数据库的使用性能。
在本实施例中,迁移待缩容数据节点上第一主数据子节点至第三目标迁移节点时,可采用流复制的方式实现。在迁移完成之后,待缩容数据节点上已不存在任何数据,此时可将待缩容数据节点从分布式数据库中删除,以实现对分布式数据库的缩容目的。
本发明实施例提供的技术方案,从多个数据节点中确定待缩容数据节点,并确定待缩容数据节点上第一副本数据子节点待迁至的第一目标迁移节点,以第一目标迁移节点上第二副本数据子节点待迁至的第二目标迁移节点;分别迁移第一副本数据子节点至第一目标迁移节点,和第二副本数据子节点至第二目标迁移节点;确定待缩容数据节点上第一主数据子节点待迁至的第三目标迁移节点,迁移第一主数据子节点至第三目标迁移节点,并将待缩容数据节点从分布式数据库中删除。由此,通过一种在线缩容方案,对分布式数据库进行缩容,使得分布式数据库在缩容过程中无需中断服务,保证能够正常提供服务。
基于上述实施例,在将待缩容数据节点从分布式数据库中删除之后,可选的还包括:将所述新的第一主数据子节点恢复为副本数据子节点。
其中,副本数据子节点具体是指待缩容数据节点上的第一副本数据子节点。
通过将新的第一主数据子节点恢复为副本数据子节点,使得迁移后的待缩容数据节点上第一主数据子节点可以恢复到正常的工作状态,以对外提供服务。
基于上述实施例,在将待缩容数据节点从分布式数据库中删除之后,可选的还包括:若多个数据节点的标识信息为编号,则对缩容后的分布式数据库中多个数据节点的标识信息进行更新,以使多个数据节点更规整有序。
图3是本发明实施例提供的另一种分布式数据库的缩容方法的流程示意图。本实施例在上述实施例的基础上进行进一步优化。如图3所示,该方法具体包括:
S201,从多个数据节点中确定待缩容数据节点。
S202,根据至少两个数据节点上主数据子节点与副本数据子节点的映射关系,确定具有与所述第一主数据子节点存储相同数据的第二副本数据子节点的数据节点,并将所述数据节点,确定为第一目标迁移节点。
由于管理节点可以获取分布式数据库中每个数据节点上主数据子节点和副本数据子节点之间的映射关系,因此本发明实施例可根据获取到的映射关系,在除待缩容数据节点之外的其它数据节点中,确定第一目标迁移节点。
具体实现时,可首先确定待缩容数据节点包括的第一主数据子节点和第一副本数据子节点,其次根据第一主数据子节点和获取到的映射关系,从除待缩容数据节点之外的其它数据节点中,确定与该第一主数据子节点存储相同数据的副本数据子节点(第二副本数据子节点),最后确定第二副本数据子节点所属的数据节点,并将该数据节点确定为第一目标迁移节点。
举例说明,如图4(a)所示,假设分布式数据库中具有一个管理节点(Master)和10个数据节点,分别为节点1(Node1)、Node2、……、Node9和Node10。其中,10个数据节点上主数据子节点和副本数据子节点之间的映射关系分别为:{(Node1,P1-P4<->M5-M8),(Node2,P5-P8<->M9-M12),(Node3,P9-P12<->M13-M16),(Node4,P13-P16<->M17-M20),(Node5,P17-P20<->M1-M4)},{(Node6,P21-P24<->M25-M28),(Node7,P25-P28<->M29-M32),(Node8,P29-P32<->M33-M36),(Node9,P33-P36<->M37-M40),(Node10,P37-P40<->M21-M24)}。
若Master根据缩容指令确定Node5为待缩容数据节点,则根据映射关系,确定Node5上主数据子节点为:P17-P20;第一副本数据子节点为:M1-M4。再根据映射关系,确定与P17-P20存储相同数据的第二副本数据子节点为:M17-M20,且M17-M20所属的数据节点为:Node4,那么可将Node4确定为待缩容数据节点Node5上M1-M4的第一目标迁移节点。
S203,根据负载量、网络距离和/或硬件状态数据,在除待缩容数据节点之外的其它数据节点中,确定所述第一目标迁移节点上第二副本数据子节点待迁至的第二目标迁移节点。
其中,第二目标迁移节点的数量大于等于1,且小于等于第二副本数据子节点的数量。
由于S202中确定的第一目标迁移节点上原本也存储有副本数据节点(第二副本数据节点),因此本发明实施例还可为第一目标迁移节点上的第二副本数据子节点,确定第二目标迁移节点,以避免将待缩容数据节点上第一副本数据子节点直接迁移至第一目标迁移节点,而导致第一目标迁移节点上副本数据子节点数量突增,使得分布式数据库中各数据节点上存储的数据量出现不均衡现象。
可选的,可利用前K小算法,根据负载量、网络距离和/或硬件状态数据,在除待缩容数据节点之外的其它数据节点中,确定所述第一目标迁移节点上第二副本数据子节点的第二目标迁移节点。在本发明实施例中,前K大或者前K小(TOPK)算法,是一种处理海量数据时高效获取数据的某一维度信息排名前K的算法,K可以是任意正整数。常见的应用场景有在海量数据中找出出现频次最高的前K个元素或找出大小排名前K大的元素集合等。
其中,负载量为每个数据节点上运行主数据子节点和副本数据子节点的数量总和;网络距离为每个数据节点部署于机架之间的距离,例如数据节点1和数据节点5部署于同一机架,说明数据节点1和数据节点5的网络距离近;硬件状态数据是指数据节点的硬件水准,其中硬件状态数据包括以下至少一种:硬盘容量、内存大小和CPU性能等。
具体实现时,管理节点可根据第一目标迁移节点上第二副本数据子节点的数量W,从除待缩容数据节点之外的其它数据节点中,确定负载量前W小的数据节点;若负载量前W小的数据节点的数量小于或等于W,则将负载量前W小的数据节点确定为第二副本数据子节点的第二目标迁移节点;若负载量前W小的数据节点的数量大于W,则从负载量前W小的数据节点中,确定网络距离前W小的数据节点;若网络距离前W小的数据节点的数量小于或者等于W,则将网络距离前W小的数据节点确定为第二副本数据子节点的第二目标迁移节点;若网络距离前W小的数据节点大于W,则从网络距离前W小的数据节点中,确定硬件状态数据前W大的数据节点;若硬件状态数据前W大的数据节点的数量小于或等于W,则将硬件状态数据前W大的数据节点确定为第二副本数据子节点的第二目标迁移节点,否则控制W+1,并返回确定负载量前W小的数据节点步骤。
需要说明的是,本实施例中负载量、网络距离和/或硬件状态数据,是指负载量;或者,是指负载量和网络距离;或者,是指负载量、网络距离和硬件状态数据等,此处对其不作具体限定。
继续以上述图4(a)为例进行举例说明,当第一目标迁移节点为:Node4时,Master根据映射关系,可确定Node4上第二副本数据子节点为:M17-M20,且总数量为4。由于分布式数据库中除了待缩容数据节点Node5之外,还有9个其它数据节点,此时Master可首先依据前4小算法,从9个其它数据节点中选择出负载量前4小的数据节点。若负载量前4小的数据节点为:Node1、Node2、Node3、Node4和Node7,其中Node2和Node3的负载量一样,则说明有5个数据节点满足负载量前4小的数据节点,即负载量前4小的数据节点的数量大于第二副本数据子节点数量。对此Master可依据前4小算法,从上述5个数据节点中选择网络距离前4小的数据节点。若网络距离前4小的数据节点为:Node1、Node2、Node3和Node4,且网络距离前4小的数据节点的数量等于第二副本数据子节点数量,那么可将Node1、Node2、Node3和Node4,随机确定为任一第二副本数据子节点的第二目标迁移节点。
值得注意的是,本实施例在确定出第一目标迁移节点上第二副本数据子节点待迁至的第二目标迁移节点之后,除了按照随机方式为每个第二副本数据子节点确定对应的第二目标迁移节点之外,还可按照第二目标迁移节点的顺序,依次为每个第二副本数据子节点确定对应的第二目标迁移节点;或者,还可以按照其他预设方式,为每个第二副本数据子节点确定对应的第二目标迁移节点等等,此处对其不作具体限定。
在本发明的一个实施例中,由于根据负载量、网络距离和/或硬件状态数据,确定的第二目标迁移节点的数量可能会小于第二副本数据子节点的数量,此时需要在任意第二目标迁移节点中迁移至少两个第二副本数据子节点。
具体的,可采用如下方式,从确定的第二目标迁移节点中,为至少两个第二副本数据子节点,确定对应目标迁移节点。示例性的,确定第一目标迁移节点上第二副本数据子节点的第二目标迁移节点之后,可选的还包括:若所述第二目标迁移节点的数量小于所述第二副本数据子节点的数量,则从第二目标迁移节点中,选择负载量小,且硬件状态数据优的数据节点,并将该数据节点作为所述第一目标迁移节点上至少两个第二副本数据子节点的目标迁移节点。
例如,第二目标迁移节点包括:Node1、Node2和Node3,第二副本数据子节点的数量为4,此时可从Node1、Node2和Node3中选择负载量小,且硬件状态数据优的数据节点。若选择的数据节点为Node2,则将Node2确定为任意两个副本数据子节点的目标迁移节点。即,本实施例可向Node1迁移一个第二副本数据子节点,向Node2迁移两个第二副本数据子节点,以及向Node3迁移一个第二副本数据子节点。
S204,分别迁移所述第一副本数据子节点至所述第一目标迁移节点,和所述第二副本数据子节点至所述第二目标迁移节点。
也就是说,确定出待缩容数据节点上第一副本数据子节点待迁至的第一目标迁移节点,以及第一目标迁移节点上第二副本数据子节点待迁至的第二目标迁移节点之后,管理节点即可控制待缩容数据节点,将第一副本数据子节点迁移至第一目标迁移节点中,以及控制第一目标迁移节点将第二副本数据子节点迁移至第二目标迁移节点。其中,控制第一目标迁移节点将第二副本数据子节点迁移至第二目标迁移节点,包括:若所述第二目标迁移节点的数量等于所述第二副本数据子节点的数量,则将所述第二副本数据子节点分别迁至对应的第二目标迁移节点上。
继续以上述图4(a)为例进行说明,确定待缩容数据节点Node5上第一副本数据子节点:M1-M4的第一目标迁移节点为Node4,以及Node4上第二副本数据子节点的第二目标迁移节点分别为:Node1、Node2、Node3和Node4之后,Master可分别控制Node5将第一副本数据子节点M1-M4,以流复制的方式迁移至Node4,以及控制Node4将第二副本数据子节点M17-M20中的每一个第二副本数据子节点,以流复制的方式分别随机迁移至Node1、Node2、Node3或Node4中,以得到如图4(b)所示的结果。
S205,确定所述待缩容数据节点上第一主数据子节点的第三目标迁移节点。
S206,迁移所述第一主数据子节点至所述第三目标迁移节点,并将所述待缩容数据节点从所述分布式数据库中删除。
本发明实施例提供的技术方案,通过一种在线缩容方案,对分布式数据库进行缩容,使得分布式数据库在缩容过程中无需中断服务,保证能够正常提供服务。此外,通过确定第一目标迁移节点上第二副本数据子节点的第二目标迁移节点,并迁移第二副本数据子节点至第二目标迁移节点,能够确保每个数据节点上存储的数据量始终处于均衡状态,使得分布式数据库拥有更高的负载均衡性能。
图5是本发明实施例提供的再一种分布式数据库的缩容方法的流程示意图,本实施例在上述实施例的基础上进行进一步优化。如图5所示,该方法具体包括如下:
S301,从多个数据节点中确定待缩容数据节点,并确定所述待缩容数据节点上第一副本数据子节点待迁至的第一目标迁移节点,以及所述第一目标迁移节点上第二副本数据子节点待迁至的第二目标迁移节点。
S302,分别迁移所述第一副本数据子节点至所述第一目标迁移节点,和所述第二副本数据子节点至所述第二目标迁移节点。
S303,以其它数据节点上主数据子节点,以及与所述主数据子节点存储相同数据的副本数据子节点为树节点,以所述其它数据节点上主数据子节点和所述主数据子节点存储相同数据的副本数据子节点之间的映射关系为边,构建所述分布式数据库的并查集。
S304,根据与所述第一主数据子节点存储相同数据的副本数据子节点,在所述并查集中确定所述第一主数据子节点的第三目标迁移节点。
本发明实施例中,并查集是一种树形的数据结构,用于处理一些不相交集合的合并以及查询问题,在图论算法当中对连通性以及环的判断有着广泛的应用,在数据量极大的情况下可以用较小的空间描述图中点集合与边集合的关系。基于这种数据结构可以大大的降低联通性和带环判断的时间复杂度。如图6(a)所示,若主数据子节点A与副本数据子节点B之间存在映射关系,主数据子节点C与副本数据子节点D之间存在映射关系,那么将主数据子节点C添加到主数据子节点A中后,与C存在映射关系的副本数据子节点D,也属于副本数据子节点B。
具体的,可根据构建的并查集,确定待缩容数据节点上第一主数据子节点的第三目标迁移节点。作为一种可选的实现方式,本实施例根据构建的并查集,确定待缩容数据节点上第一主数据节点的第三目标迁移节点,可包括:从所述并查集中,查找与所述第一主数据子节点存储相同数据的副本数据子节点合并的第三副本数据子节点;根据其他数据节点上主数据子节点与副本数据子节点的映射关系,确定与所述第三副本数据子节点存储相同数据的第二主数据子节点所属的数据节点;将所述第二主数据子节点所属的数据节点,确定为所述待缩容数据节点上第一主数据子节点的第三目标迁移节点。
例如,以上述实施例中图4(b)可知,Node1、Node2、……、Node9和Node10,这10个数据节点上主数据子节点和副本数据子节点之间的映射关系分别为:{(Node1,P1-P4<->M5-M8,M17),(Node2,P5-P8<->M9-M12,M18),(Node3,P9-P12<->M13-M16,M19),(Node4,P13-P16<->M1-M4,M20),(Node5,P17-P20<->)},{(Node6,P21-P24<->M25-M28),(Node7,P25-P28<->M29-M32),(Node8,P29-P32<->M33-M36),(Node9,P33-P36<->M37-M40),(Node10,P37-P40<->M21-M24)}。从而Master根据上述除待缩容数据节点Node5之外的其它数据节点上主数据子节点和副本数据子节点之间的映射关系,和存储相同数据的主数据子节点和副本数据子节点,以其它数据节点上主数据子节点,以及与所述主数据子节点存储相同数据的副本数据子节点为树节点,以其它数据节点上主数据子节点和主数据子节点存储相同数据的副本数据子节点之间的映射关系为边,构建分布式数据库的并查集,具体如图6(b)。
得到分布式数据库的并查集之后,管理节点根据与待缩容数据节点Node5上第一主数据子节点:P17-P20存储相同数据的副本数据子节点:M17-M20,在上述并查集中,确定M17与M5-M8合并,M18与M9-M12合并、M19与M13-M16合并以及M20与M1-M4合并。进而,根据映射关系,确定M17与P17存储有相同数据,以及M5-M8与P5-P8存储有相同数据,即存在映射关系;M18与P18存储有相同数据,以及M9-M12与P9-P12存储有相同数据;M19与P19存储有相同数据,以及M13-M16与P13-P16存储有相同数据;以及M20与P20存储有相同数据,以及M1-M4与P1-P4存储有相同数据。
进一步的,根据图4(b)和图6(b)可知,数据节点Node1上副本数据子节点:M5-M8映射的主数据子节点:P5-P8位于数据节点Node2,即P5-P8所属的数据节点为:Node2,那么可将Node2确定为P17待迁至的第三目标迁移节点;数据节点Node2上副本数据子节点:M9-M12映射的主数据子节点:P9-P12位于数据节点Node3,即P9-P12所属的数据节点为:Node3,那么可将Node3确定为P18待迁至的第三目标迁移节点;数据节点Node3上副本数据子节点:M13-M16映射的主数据子节点:P13-P16位于数据节点Node4,即P13-P16所属的数据节点为:Node4,那么可将Node4确定为P19待迁至的第三目标迁移节点;以及数据节点Node4上副本数据子节点:M1-M4映射的主数据子节点:P1-P4位于数据节点Node1,即P1-P4所属的数据节点为:Node1,那么可将Node1确定为P20待迁至的第三目标迁移节点。
S305,迁移所述第一主数据子节点至所述第三目标迁移节点,并将所述待缩容数据节点从所述分布式数据库中删除。
继续以上述图4(b)为例,在将Node5上第一主数据子节点:P17-P20,以流复制的方式迁移至Node1、Node2、Node3和Node4之后,Node5上没有任何数据子节点,此时管理节点可将Node5从分布式数据库中删除,以达到对分布式数数据库的缩容目的,具体缩容后的分布式数据库可如图6(c)所示。
本发明实施例提供的技术方案,通过一种在线缩容方案,对分布式数据库进行缩容,使得分布式数据库在缩容过程中无需中断服务,保证能够正常提供服务。此外,基于构建的并查集,可以提高待缩容数据节点上主数据子节点的第三目标迁移节点的确定速度和准确性。
图7是本发明实施例提供的一种分布式数据库的缩容装置的结构示意图。其中,所述分布式数据库包括管理节点和多个数据节点,所述每个数据节点包括主数据子节点和副本数据子节点,其中所述主数据子节点和所述副本数据子节点存储不同的数据;该安全预警装置配置于管理节点,可以采用硬件和/或软件的方式实现,并配置于电子设备中。如图7所示,本发明实施例分布式数据库的缩容装置700包括:第一确定模块710、第一控制模块720、第二确定模块730和第二控制模块740。
其中,第一确定模块710,用于从多个数据节点中确定待缩容数据节点,并确定所述待缩容数据节点上第一副本数据子节点待迁至的第一目标迁移节点,以及所述第一目标迁移节点上第二副本数据子节点待迁至的第二目标迁移节点;
第一控制模块720,用于分别迁移所述第一副本数据子节点至所述第一目标迁移节点,和所述第二副本数据子节点至所述第二目标迁移节点;
第二确定模块730,用于确定所述待缩容数据节点上第一主数据子节点待迁至的第三目标迁移节点;
第二控制模块740,用于迁移所述第一主数据子节点至所述第三目标迁移节点,并将所述待缩容数据节点从所述分布式数据库中删除。
作为本发明实施例的一种可选的实现方式,分布式数据库的缩容装置700,还包括:第三控制模块;
其中,第三控制模块,用于将迁移后的所述第二副本数据子节点切换为新的第一主数据子节点;
若与所述第二副本数据子节点存储相同数据的所述第一主数据子节点迁移至所述第三目标迁移节点后,则将所述新的第一主数据子节点恢复为副本数据子节点。
作为本发明实施例的一种可选的实现方式,第一确定模块710具体用于:
根据至少两个数据节点上主数据子节点与副本数据子节点的映射关系,确定具有与所述第一主数据子节点存储相同数据的第二副本数据子节点的数据节点,并将所述数据节点,确定为第一目标迁移节点。
作为本发明实施例的一种可选的实现方式,第一确定模块710具体用于:
根据负载量、网络距离和/或硬件状态数据,在除待缩容数据节点之外的其它数据节点中,确定所述第一目标迁移节点上第二副本数据子节点待迁至的第二目标迁移节点,其中第二目标迁移节点的数量大于等于1,且小于等于第二副本数据子节点的数量。
作为本发明实施例的一种可选的实现方式,分布式数据库的缩容装置700,还包括:第三确定模块;
其中,第三确定模块,用于若所述第二目标迁移节点的数量等于所述第二副本数据子节点的数量,则将所述第二副本数据子节点分别迁至对应的第二目标迁移节点上;
若所述第二目标迁移节点的数量小于所述第二副本数据子节点的数量,则从第二目标迁移节点中,选择负载量小,且硬件状态数据优的数据节点,并将该数据节点作为所述第一目标迁移节点上至少两个第二副本数据子节点的目标迁移节点。
作为本发明实施例的一种可选的实现方式,第二确定模块730具体用于:
以其它数据节点上主数据子节点,以及与所述主数据子节点存储相同数据的副本数据子节点为树节点,以所述其它数据节点上主数据子节点和所述主数据子节点存储相同数据的副本数据子节点之间的映射关系为边,构建所述分布式数据库的并查集;
根据与所述第一主数据子节点存储相同数据的副本数据子节点,在所述并查集中确定所述待缩容数据节点上第一主数据子节点的第三目标迁移节点。
作为本发明实施例的一种可选的实现方式,第二确定模块730还用于:
从所述并查集中,查找与所述第一主数据子节点存储相同数据的副本数据子节点合并的第三副本数据子节点;
根据其他数据节点上主数据子节点与副本数据子节点的映射关系,确定与所述第三副本数据子节点存储相同数据的第二主数据子节点所属的数据节点;
将所述第二主数据子节点所属的数据节点,确定为所述待缩容数据节点上第一主数据子节点的第三目标迁移节点。
需要说明的是,前述对分布式数据库的缩容方法实施例的解释说明也适用于该实施例的分布式数据库的缩容装置,其实现原理类似,此处不再赘述。
本发明实施例提供的技术方案,从多个数据节点中确定待缩容数据节点,并确定待缩容数据节点上第一副本数据子节点待迁至的第一目标迁移节点,以及第一目标迁移节点上第二副本数据子节点待迁至的第二目标迁移节点;分别迁移第一副本数据子节点至第一目标迁移节点,和第二副本数据子节点至第二目标迁移节点;确定待缩容数据节点上第一主数据子节点的第三目标迁移节点,迁移第一主数据子节点至第三目标迁移节点,并将待缩容数据节点从分布式数据库中删除。由此,通过一种在线缩容方案,对分布式数据库进行缩容,使得分布式数据库在缩容过程中无需中断服务,保证能够正常提供服务。
为了实现上述目的,本发明实施例还提出了一种电子设备。
图8是本发明实施例提供的一种电子设备的结构示意图。图8示出了适于用来实现本发明实施方式的示例性电子设备800的框图。图8显示的电子设备800仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:一个或者多个处理器或者处理单元810,系统存储器820,连接不同系统组件(包括系统存储器820和处理单元810)的总线830。
总线830表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备800典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备800访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器820可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)821和/或高速缓存存储器822。电子设备800可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统823可以用于读写不可移动的、非易失性磁介质(图8未显示,通常称为“硬盘驱动器”)。尽管图8中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线830相连。存储器820可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块825的程序/实用工具824,可以存储在例如存储器820中,这样的程序模块825包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块825通常执行本发明所描述的实施例中的功能和/或方法。
电子设备800也可以与一个或多个外部设备840(例如键盘、指向设备、显示器841等)通信,还可与一个或者多个使得用户能与该电子设备800交互的设备通信,和/或与使得该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元810通过运行存储在系统存储器820中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的分布式数据库的缩容方法,所述分布式数据库包括管理节点和多个数据节点,所述每个数据节点包括主数据子节点和副本数据子节点,其中所述主数据子节点和所述副本数据子节点存储不同的数据;所述方法由管理节点执行,所述方法包括:
从多个数据节点中确定待缩容数据节点,并确定所述待缩容数据节点上第一副本数据子节点待迁至的第一目标迁移节点,以及所述第一目标迁移节点上第二副本数据子节点待迁至的第二目标迁移节点;
分别迁移所述第一副本数据子节点至所述第一目标迁移节点,和所述第二副本数据子节点至所述第二目标迁移节点;
确定所述待缩容数据节点上第一主数据子节点待迁至的第三目标迁移节点;
迁移所述第一主数据子节点至所述第三目标迁移节点,并将所述待缩容数据节点从所述分布式数据库中删除。
需要说明的是,前述对分布式数据库的缩容方法实施例的解释说明也适用于该实施例的电子设备,其实现原理类似,此处不再赘述。
本发明实施例提供的技术方案,从多个数据节点中确定待缩容数据节点,并确定待缩容数据节点上第一副本数据子节点待迁至的第一目标迁移节点,以及第一目标迁移节点上第二副本数据子节点待迁至的第二目标迁移节点;分别迁移第一副本数据子节点至第一目标迁移节点,和第二副本数据子节点至第二目标迁移节点;确定待缩容数据节点上第一主数据子节点的第三目标迁移节点,迁移第一主数据子节点至第三目标迁移节点,并将待缩容数据节点从分布式数据库中删除。由此,通过一种在线缩容方案,对分布式数据库进行缩容,使得分布式数据库在缩容过程中无需中断服务,保证能够正常提供服务。
为了实现上述目的,本发明还提出了一种计算机可读存储介质。
本发明实施例提供的计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所述的分布式数据库的缩容方法,所述分布式数据库包括管理节点和多个数据节点,所述每个数据节点包括主数据子节点和副本数据子节点,其中所述主数据子节点和所述副本数据子节点存储不同的数据;所述方法由管理节点执行,所述方法包括:
从多个数据节点中确定待缩容数据节点,并确定所述待缩容数据节点上第一副本数据子节点待迁至的第一目标迁移节点,以及所述第一目标迁移节点上第二副本数据子节点待迁至的第二目标迁移节点;
分别迁移所述第一副本数据子节点至所述第一目标迁移节点,和所述第二副本数据子节点至所述第二目标迁移节点;
确定所述待缩容数据节点上第一主数据子节点待迁至的第三目标迁移节点;
迁移所述第一主数据子节点至所述第三目标迁移节点,并将所述待缩容数据节点从所述分布式数据库中删除。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种分布式数据库的缩容方法,其特征在于,所述分布式数据库包括管理节点和多个数据节点,所述每个数据节点包括主数据子节点和副本数据子节点,其中所述主数据子节点和所述副本数据子节点存储不同的数据;所述方法由管理节点执行,所述方法包括:
从多个数据节点中确定待缩容数据节点,并确定所述待缩容数据节点上第一副本数据子节点待迁至的第一目标迁移节点,以及所述第一目标迁移节点上第二副本数据子节点待迁至的第二目标迁移节点;
分别迁移所述第一副本数据子节点至所述第一目标迁移节点,和所述第二副本数据子节点至所述第二目标迁移节点;
确定所述待缩容数据节点上第一主数据子节点待迁至的第三目标迁移节点;
迁移所述第一主数据子节点至所述第三目标迁移节点,并将所述待缩容数据节点从所述分布式数据库中删除。
2.根据权利要求1所述的方法,其特征在于,所述迁移所述第一主数据子节点至所述第三目标迁移节点之前,还包括:
将迁移后的所述第二副本数据子节点切换为新的第一主数据子节点;
若与所述第二副本数据子节点存储相同数据的所述第一主数据子节点迁移至所述第三目标迁移节点后,则将所述新的第一主数据子节点恢复为副本数据子节点。
3.根据权利要求1所述的方法,其特征在于,所述确定所述待缩容数据节点上第一副本数据子节点待迁至的第一目标迁移节点,包括:
根据至少两个数据节点上主数据子节点与副本数据子节点的映射关系,确定具有与所述第一主数据子节点存储相同数据的第二副本数据子节点的数据节点,并将所述数据节点,确定为第一目标迁移节点。
4.根据权利要求1所述的方法,其特征在于,所述确定所述第一目标迁移节点上第二副本数据子节点待迁至的第二目标迁移节点,包括:
根据负载量、网络距离和/或硬件状态数据,在除待缩容数据节点之外的其它数据节点中,确定所述第一目标迁移节点上第二副本数据子节点待迁至的第二目标迁移节点,其中第二目标迁移节点的数量大于等于1,且小于等于第二副本数据子节点的数量。
5.根据权利要求4所述的方法,其特征在于,所述确定所述第一目标迁移节点上第二副本数据子节点待迁至的第二目标迁移节点之后,还包括:
若所述第二目标迁移节点的数量等于所述第二副本数据子节点的数量,则将所述第二副本数据子节点分别迁至对应的第二目标迁移节点上;
若所述第二目标迁移节点的数量小于所述第二副本数据子节点的数量,则从第二目标迁移节点中,选择负载量小,且硬件状态数据优的数据节点,并将该数据节点作为所述第一目标迁移节点上至少两个第二副本数据子节点的目标迁移节点。
6.根据权利要求1所述的方法,其特征在于,所述确定所述待缩容数据节点上第一主数据子节点待迁至的第三目标迁移节点,包括:
以其它数据节点上主数据子节点,以及与所述主数据子节点存储相同数据的副本数据子节点为树节点,以所述其它数据节点上主数据子节点和所述主数据子节点存储相同数据的副本数据子节点之间的映射关系为边,构建所述分布式数据库的并查集;
根据与所述第一主数据子节点存储相同数据的副本数据子节点,在所述并查集中确定所述待缩容数据节点上第一主数据子节点的第三目标迁移节点。
7.根据权利要求6所述的方法,其特征在于,所述在所述并查集中确定所述待缩容数据节点上第一主数据子节点的第三目标迁移节点,包括:
从所述并查集中,查找与所述第一主数据子节点存储相同数据的副本数据子节点合并的第三副本数据子节点;
根据其他数据节点上主数据子节点与副本数据子节点的映射关系,确定与所述第三副本数据子节点存储相同数据的第二主数据子节点所属的数据节点;
将所述第二主数据子节点所属的数据节点,确定为所述待缩容数据节点上第一主数据子节点的第三目标迁移节点。
8.一种分布式数据库的缩容装置,其特征在于,所述分布式数据库包括管理节点和多个数据节点,所述每个数据节点包括主数据子节点和副本数据子节点,其中所述主数据子节点和所述副本数据子节点存储不同的数据;所述装置配置于管理节点,包括:
第一确定模块,用于从多个数据节点中确定待缩容数据节点,并确定所述待缩容数据节点上第一副本数据子节点待迁至的第一目标迁移节点,以及所述第一目标迁移节点上第二副本数据子节点待迁至的第二目标迁移节点;
第一控制模块,用于分别迁移所述第一副本数据子节点至所述第一目标迁移节点,和所述第二副本数据子节点至所述第二目标迁移节点;
第二确定模块,用于确定所述待缩容数据节点上第一主数据子节点待迁至的第三目标迁移节点;
第二控制模块,用于迁移所述第一主数据子节点至所述第三目标迁移节点,并将所述待缩容数据节点从所述分布式数据库中删除。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的分布式数据库的缩容方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的分布式数据库的缩容方法。
CN202011001982.8A 2020-09-22 2020-09-22 分布式数据库的缩容方法、装置、设备和介质 Pending CN114253936A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011001982.8A CN114253936A (zh) 2020-09-22 2020-09-22 分布式数据库的缩容方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011001982.8A CN114253936A (zh) 2020-09-22 2020-09-22 分布式数据库的缩容方法、装置、设备和介质

Publications (1)

Publication Number Publication Date
CN114253936A true CN114253936A (zh) 2022-03-29

Family

ID=80789568

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011001982.8A Pending CN114253936A (zh) 2020-09-22 2020-09-22 分布式数据库的缩容方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN114253936A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114510379A (zh) * 2022-04-21 2022-05-17 山东百盟信息技术有限公司 一种分布式阵列视频数据存储装置
CN115437578A (zh) * 2022-11-04 2022-12-06 苏州浪潮智能科技有限公司 一种磁盘阵列的数据迁移方法、装置、设备和介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114510379A (zh) * 2022-04-21 2022-05-17 山东百盟信息技术有限公司 一种分布式阵列视频数据存储装置
CN115437578A (zh) * 2022-11-04 2022-12-06 苏州浪潮智能科技有限公司 一种磁盘阵列的数据迁移方法、装置、设备和介质
CN115437578B (zh) * 2022-11-04 2023-03-24 苏州浪潮智能科技有限公司 一种磁盘阵列的数据迁移方法、装置、设备和介质
WO2024093479A1 (zh) * 2022-11-04 2024-05-10 苏州元脑智能科技有限公司 一种磁盘阵列的数据迁移方法、装置、设备和介质

Similar Documents

Publication Publication Date Title
US10715460B2 (en) Opportunistic resource migration to optimize resource placement
US9851911B1 (en) Dynamic distribution of replicated data
US8886781B2 (en) Load balancing in cluster storage systems
US8332367B2 (en) Parallel data redundancy removal
CN107368260A (zh) 基于分布式系统的存储空间整理方法、装置及系统
US8768929B2 (en) Clustering streaming graphs
US9507676B2 (en) Cluster creation and management for workload recovery
CN102938784A (zh) 应用于分布式存储系统中的数据存储方法和系统
US10169085B2 (en) Distributed computing of a task utilizing a copy of an original file stored on a recovery site and based on file modification times
US9679007B1 (en) Techniques for managing references to containers
US10303678B2 (en) Application resiliency management using a database driver
CN114253936A (zh) 分布式数据库的缩容方法、装置、设备和介质
CN111124250A (zh) 用于管理存储空间的方法、设备和计算机程序产品
US9436554B2 (en) Information processing apparatus and data repairing method
CN112948279A (zh) 管理存储系统中的访问请求的方法、设备和程序产品
US11128708B2 (en) Managing remote replication in storage systems
CN113760847A (zh) 日志数据处理方法、装置、设备及存储介质
US10019182B2 (en) Management system and management method of computer system
CN105635285B (zh) 一种基于状态感知的vm迁移调度方法
US11134121B2 (en) Method and system for recovering data in distributed computing system
US10594620B1 (en) Bit vector analysis for resource placement in a distributed system
US8788667B2 (en) Computer system and management method
EP2213066A2 (en) Acquisition and expansion of storage area network interoperation relationships
CN115981559A (zh) 分布式数据存储方法、装置、电子设备和可读介质
US11121981B1 (en) Optimistically granting permission to host computing resources

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