CN113934707A - 云原生数据库、数据库扩容方法、数据库缩容方法和装置 - Google Patents

云原生数据库、数据库扩容方法、数据库缩容方法和装置 Download PDF

Info

Publication number
CN113934707A
CN113934707A CN202111176721.4A CN202111176721A CN113934707A CN 113934707 A CN113934707 A CN 113934707A CN 202111176721 A CN202111176721 A CN 202111176721A CN 113934707 A CN113934707 A CN 113934707A
Authority
CN
China
Prior art keywords
node
capacity expansion
database
state
information
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
CN202111176721.4A
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.)
Jingdong Technology Information Technology Co Ltd
Original Assignee
Jingdong Technology Information Technology 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 Jingdong Technology Information Technology Co Ltd filed Critical Jingdong Technology Information Technology Co Ltd
Priority to CN202111176721.4A priority Critical patent/CN113934707A/zh
Publication of CN113934707A publication Critical patent/CN113934707A/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
    • 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)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种云原生数据库、数据库扩容方法、数据库缩容方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:管理系统中存储有配置信息及状态管理目录,所述配置信息中包括:各所述工作节点的拓扑信息及所述共享存储的存储信息,所述状态管理目录中包括:各可用工作节点的节点状态;多个计算节点用于处理数据库的相关计算;各所述计算节点的本地存储有所述计算节点对应的配置文件;各所述计算节点的本地存储有所述计算节点对应的集群状态信息;所述共享存储用于存储数据库数据。该实施方式能够实现针对云原生数据库的灵活管理。

Description

云原生数据库、数据库扩容方法、数据库缩容方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种云原生数据库、数据库扩容方法、数据库缩容方法和装置。
背景技术
利用分布式文件存储技术,云原生数据库能够轻松存储PB甚至EB级的数据,能够在秒级甚至亚秒级快速响应,即便在发生中断或故障时,也能保证可靠的数据复制、备份、以及快速检索。但现有技术中的云原生数据库方案无法实现对数据库的灵活管理。
发明内容
有鉴于此,本发明实施例提供一种云原生数据库、数据库扩容方法、数据库缩容方法和装置,能够实现针对云原生数据库的灵活管理。
第一方面,本发明实施例提供了一种云原生数据库,包括:
管理系统、多个计算节点及共享存储;
所述管理系统中存储配置信息及状态管理目录,所述配置信息中包括:各所述工作节点的拓扑信息,所述状态管理目录中包括:各可用工作节点的节点状态;
所述计算节点用于处理数据库的相关计算;所述计算节点的本地存储所述计算节点对应的配置文件,所述配置文件是根据所述管理系统中的配置信息生成的,所述管理系统利用所述配置文件对所述计算节点进行管理;
所述计算节点的本地存储所述计算节点对应的集群状态信息,所述集群状态信息是根据所述管理系统中的状态管理目录生成的,所述计算节点利用所述集群状态信息提供集群任务服务;
所述共享存储用于存储数据库数据。
可选地,所述管理系统用于:获取各所述工作节点的节点状态;根据所述工作节点的节点信息,更新所述状态管理目录;
所述工作节点用于:获取所述状态管理目录,并利用所述状态管理目录,更新本地的集群状态信息。
第二方面,本发明实施例提供了一种数据库扩容方法,所述方法应用于上述云原生数据库中,所述方法包括:
接收针对所述原生数据库的扩容指令;
响应于所述扩容指令,所述管理系统创建针对扩容节点的节点资源;
所述管理系统生成配置信息;其中,所述配置信息包括:所述扩容节点的拓扑信息及各所述计算节点的拓扑信息;
所述扩容节点获取所述配置信息,并利用所述配置信息,生成所述扩容节点对应的配置文件;其中,所述管理系统利用所述扩容节点对应的配置文件对所述扩容节点进行管理;
在所述扩容节点处于可用状态时,所述管理系统获取所述扩容节点的节点状态,更新状态管理目录;
所述扩容节点获取所述状态管理目录,并利用所述状态管理目录,生成所述扩容节点对应的集群状态信息;其中,所述扩容节点利用所述扩容节点对应的集群状态信息提供集群任务服务。
可选地,所述管理系统生成配置信息之后,还包括:
所述计算节点获取所述配置信息,并利用所述配置信息,生成所述计算节点对应的配置文件;
所述管理系统获取所述扩容节点的节点状态,更新状态管理目录之后,还包括:
所述计算节点获取所述状态管理目录,并利用所述状态管理目录,更新所述计算节点对应的集群状态信息;其中,所述计算节点利用所述计算节点对应的集群状态信息提供集群任务服务。
可选地,所述接收针对所述原生数据库的扩容指令之后,还包括:
响应于所述扩容指令,所述管理系统创建针对目标存储的存储资源;
在所述目标存储上装载数据库数据;
对所述目标存储上的数据库数据进行对齐处理;
所述管理系统生成配置信息;其中,所述配置信息中包含所述目标存储的存储信息。
第三方面,本发明实施例提供了一种数据库缩容方法,所述方法应用于上述云原生数据库中,所述方法包括:
接收针对所述原生数据库的缩容指令;
响应于所述缩容指令,对所述移除节点进行关机处理;
所述管理系统从配置信息中删除所述移除节点的拓扑信息;
所述管理系统从状态管理目录中删除所述移除节点的节点信息。
可选地,所述管理系统从配置信息中删除所述移除节点的拓扑信息之后,还包括:
所述计算节点获取所述状态管理目录,并利用所述状态管理目录,更新所述计算节点对应的集群状态信息;其中,所述计算节点利用所述计算节点对应的集群状态信息提供集群任务服务;
所述管理系统从状态管理目录中删除所述移除节点的节点信息之后,还包括:
所述计算节点获取所述状态管理目录,并利用所述状态管理目录,更新所述计算节点对应的集群状态信息;其中,所述计算节点利用所述计算节点对应的集群状态信息提供集群任务服务。
可选地,所述接收针对所述原生数据库的缩容指令,还包括:
响应于所述缩容指令,确定所述缩容指令对应的目标存储;
所述管理系统从配置信息中删除所述目标存储的存储信息。
第四方面,本发明实施例提供了一种数据库扩容装置,所述装置应用于上述云原生数据库中,所述装置包括:
指令接收模块,用于接收针对所述原生数据库的扩容指令;
资源创建模块,用于响应于所述扩容指令,所述管理系统创建针对扩容节点的节点资源;
第一生成模块,用于所述管理系统生成配置信息;其中,所述配置信息包括:所述扩容节点的拓扑信息及各所述计算节点的拓扑信息;
第二生成模块,用于所述扩容节点获取所述配置信息,并利用所述配置信息,生成所述扩容节点对应的配置文件;其中,所述管理系统利用所述扩容节点对应的配置文件对所述扩容节点进行管理;
目录更新模块,用于在所述扩容节点处于可用状态时,所述管理系统获取所述扩容节点的节点状态,更新状态管理目录;
第三生成模块,用于所述扩容节点获取所述状态管理目录,并利用所述状态管理目录,生成所述扩容节点对应的集群状态信息;其中,所述扩容节点利用所述扩容节点对应的集群状态信息提供集群任务服务。
第五方面,本发明实施例提供了一种数据库缩容装置,所述装置应用于上述云原生数据库中,包括:
指令接收模块,用于接收针对所述原生数据库的缩容指令;
关机模块,用于响应于所述缩容指令,对所述移除节点进行关机处理;
第一删除模块,用于所述管理系统从配置信息中删除所述移除节点的拓扑信息;
第二删除模块,用于所述管理系统从状态管理目录中删除所述移除节点的节点信息。
第六方面,本发明实施例提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实施例所述的方法。
第七方面,本发明实施例提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的方法。
上述发明中的一个实施例具有如下优点或有益效果:利用管理系统中的配置信息,在各计算节点的本地生成配置文件,配置文件中包括各工作节点的拓扑信息。管理系统通过配置文件对各计算节点进行管理。利用管理系统中的状态管理目录,在各计算节点的本地生成集群状态信息,集群状态信息中仅包括可用状态的计算节点。各计算节点通过集群状态信息提供集群服务。因此,管理系统利用管理系统中存储的配置信息及状态管理目录,可实现对云原生数据库的灵活管理。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是本发明的一个实施例提供的一种数据库系统的结构的示意图;
图2是本发明的一个实施例提供的另一种数据库系统的结构的示意图;
图3是本发明的一个实施例提供的一种数据库扩容方法的流程的示意图;
图4是本发明的一个实施例提供的一种数据库缩容方法的流程的示意图;
图5是本发明的一个实施例提供的一种云原生数据库扩缩容的原理的示意图;
图6是本发明的一个实施例提供的一种数据库扩缩容的流程的示意图;
图7是本发明的一个实施例提供的一种数据库扩容装置的结构示意图;
图8是本发明的一个实施例提供的一种数据库缩容装置的结构示意图;
图9是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
云原生数据库技术,采用MPP(大规模并行处理,massively parallelprocessing)的方式,来同时处理多项操作的存储结构。这样既加速了存储和计算资源的扩缩容,又实现了以数据列格式的存储,所带来的更好的压缩和查询特性。此外,与部署在本地的数据仓库相比,云端方案更具有商业智能上的可扩展性,能够加速分析操作,快速上线,提供数据的集成、可观察性,以及整个生态系统。支持按需取用、弹性扩容特性,有效提升数仓的扩展效率,降低扩展成本和运维难度。被广泛应用于实时BI看板、实时用户画像、实时数据分析、实时监控等场景。现有技术中缺少能对云原生数据库进行灵活管控的方案,更无针对云原生数据库的弹性扩缩容方案。
基于此,本发明提供了一种云原生数据库,能够对云原生数据库进行灵活管控。图1是本发明的一个实施例提供的一种数据库系统的结构的示意图。如图1所示,云原生数据库包括:管理系统、多个计算节点及共享存储。所述管理系统中存储有配置信息及状态管理目录,所述配置信息中包括:各所述工作节点的拓扑信息及所述共享存储的存储信息,所述状态管理目录中包括:各可用工作节点的节点状态;
所述计算节点用于处理数据库的相关计算;所述计算节点的本地存储有所述计算节点对应的配置文件,所述配置文件是根据所述管理系统中的配置信息生成的,所述管理系统利用所述配置文件对所述计算节点进行管理;
所述计算节点的本地存储有所述计算节点对应的集群状态信息,所述集群状态信息是根据所述管理系统中的状态管理目录生成的,所述计算节点利用所述集群状态信息提供集群任务服务。所述共享存储用于存储数据库数据。
云原生数据库采用存储计算分离的架构。计算节点用于处理数据库的相关计算,共享存储用于存储数据库数据。存储及计算资源能够按需灵活快速扩缩容。
管理系统用于管理云原生数据库,例如:分配管理计算节点资源、分配管理共享存储资源、管理集群任务服务、负载均衡、容错处理等。可根据需求,自行研发管理系统。管理系统也可采用现有的平台搭建。例如,可将Kubernetes和Zookeeper结合,搭建管理系统。
各计算节点利用管理系统中的配置信息,在计算节点本地生成该计算节点的配置文件,配置文件中包括各工作节点的拓扑信息。拓扑信息可包括:节点标识、主机/主机名称、网络地址、交换机端口号、计算节点数量、上级节点标识、下级节点标识和计算节点拓扑图等信息。管理系统利用配置文件,对计算节点进行管理,包括:对计算节点进行开机、对计算节点进行关机、对计算节点进行重启、为计算节点分配任务、为计算节点分配网络资源等。
在本发明实施例中,各节点利用管理系统上的配置信息,生成配置文件。管理系统利用各节点的配置文件,对各节点的生命周期进行管理。配置文件中包括所有计算节点。各节点利用管理系统上的状态管理目录,生成集群状态信息。计算节点利用集群状态信息,对外提供集群服务。集群状态信息中仅包括可用状态的节点。管理系统通过其上存储的配置信息及状态管理目录,能够实现对数据库的灵活管控。
在本发明的一个实施例中,所述管理系统用于:获取各所述工作节点的节点状态;根据所述工作节点的节点信息,更新所述状态管理目录;所述工作节点用于:获取所述状态管理目录,并利用所述状态管理目录,更新本地存储的集群状态信息。
集群状态信息中仅包括可用状态的节点。因此,管理系统不断获取所有节点的节点信息,并不断更新状态管理目录。具体地,管理系统发现某个原来不可用的工作节点,变成可用的工作节点,则在状态管理目录中添加该工作节点。管理系统发现某个原来可用的工作节点,变成不可用的工作节点,则在状态管理目录中删除该工作节点。
图2是本发明的一个实施例提供的另一种数据库系统的结构的示意图。如图2所示,计算节点和共享存储分离,计算节点可以水平秒级扩缩容,由于采用共享存储,数据无需重分布,并且存储节点即分布式文件存储系统可以无限扩容。该数据库系统中,将Kubernetes和Zookeeper结合,搭建管理系统。所有组件全部部署在Kubernetes上,数据仓库的生命周期由operator来管理,包括弹性扩缩容,failover等,zookeeper用作协调服务节点,提供分布式协调任务服务。
图3是本发明的一个实施例提供的一种数据库扩容方法的流程的示意图。如图3所示,该方法包括:
步骤301:接收针对原生数据库的扩容指令。
步骤302:响应于扩容指令,管理系统创建针对扩容节点的节点资源。
扩容节点作为新添加的计算节点,创建针对扩容节点的节点资源,可包括:为扩容节点确定节点标识、配置扩容节点的域名、为扩容节点分配容器及确定容器角色等。
步骤303:管理系统生成配置信息;其中,配置信息包括:扩容节点的拓扑信息及各计算节点的拓扑信息。
将扩容信息的拓扑信息添加到管理系统中的配置信息中。
步骤304:扩容节点获取配置信息,并利用配置信息,生成扩容节点对应的配置文件;其中,管理系统利用扩容节点对应的配置文件对扩容节点进行管理。
扩容节点利用管理系统中的配置信息,在扩容节点的本地生成扩容节点对应的配置文件。管理系统利用配置文件,对扩容节点进行管理,包括:对扩容节点进行开机、对扩容节点进行关机、对扩容节点进行重启、为扩容节点分配任务、为扩容节点分配网络资源等。
步骤305:在扩容节点处于可用状态时,管理系统获取扩容节点的节点状态,更新状态管理目录。
步骤306:扩容节点获取状态管理目录,并利用状态管理目录,生成扩容节点对应的集群状态信息。
至此,完成将扩容节点添加为新的计算节点的处理流程。扩容节点与集群中原有的计算节点作为一个集群整体提供集群服务。
在本发明的一个实施例中,管理系统生成配置信息之后,还包括:计算节点获取配置信息,并利用配置信息,生成计算节点对应的配置文件;管理系统获取扩容节点的节点状态,更新状态管理目录之后,还包括:计算节点获取状态管理目录,并利用状态管理目录,更新计算节点对应的集群状态信息;其中,计算节点利用该计算节点对应的集群状态信息提供集群任务服务。
上述方法为新增计算节点时,集群中原有计算节点的处理流程。原有计算节点,不断利用管理系统中的配置信息和状态管理目录,更新原有计算节点本地的配置文件和集群状态信息。一方面,保证计算节点本地信息的准确性,方便管理系统对各计算进行管理。另一方面,也保证新添加的扩容节点快速加入集群中,为数据库提供分布式服务,提升数据库的性能。
在本发明的一个实施例中,接收针对原生数据库的扩容指令之后,还包括:响应于扩容指令,管理系统创建针对目标存储的存储资源;在目标存储上装载数据库数据;对目标存储上的数据库数据进行对齐处理;管理系统生成配置信息;其中,配置信息中包含目标存储的存储信息。通过本发明实施例的方法,可快速为数据库新增共享存储,共享存储用于存储数据库数据。通过对目标存储上的数据库数据进行对齐处理,可进一步提升数据库的查询性能。
云原生数据库采用分布式查询设计,可以将查询分散到多个计算节点同时进行,极大的提高了查询的性能。查询性能和计算节点数量成正相关,但是传统数据库不能实时在线扩缩容,水平扩容之后数据不能自动平衡,云原生实时数据仓库使用共享存储,计算存储分离,支持集群水平弹性扩缩容。
图4是本发明的一个实施例提供的一种数据库缩容方法的流程的示意图。如图4所示,该方法包括:
步骤401:接收针对云原生数据库的缩容指令。
步骤402:响应于缩容指令,对移除节点进行关机处理。
移除节点为云原生数据库中的一个工作节点。缩容指令用于将移除节点从云原生数据库中移除,从而使云原生数据库的工作节点数据变小。
步骤403:管理系统从配置信息中删除移除节点的拓扑信息。
步骤404:管理系统从状态管理目录中删除移除节点的节点信息。
管理系统分别从配置信息和状态管理目录中删除移除节点的相关信息。管理系统不再管理移除节点,移除节点也不再为云原生数据库提供服务。至此,云原生数据库中已不包含移除节点,移除节点从云原生数据库中被移除的处理流程完成。
在本发明的一个实施例中,管理系统从配置信息中删除移除节点的拓扑信息之后,还包括:计算节点获取状态管理目录,并利用状态管理目录,更新计算节点对应的集群状态信息;其中,计算节点利用计算节点对应的集群状态信息提供集群任务服务;管理系统从状态管理目录中删除移除节点的节点信息之后,还包括:计算节点获取状态管理目录,并利用状态管理目录,更新计算节点对应的集群状态信息;其中,计算节点利用该计算节点对应的集群状态信息提供集群任务服务。
上述方法为移除计算节点时,集群中原有计算节点的处理流程。原有计算节点不断利用管理系统中的配置信息和状态管理目录,更新原有计算节点本地的配置文件和集群状态信息。一方面,保证计算节点本地信息的准确性,方便管理系统对各计算进行管理。另一方面,也保证移除节点快速从集群中移除,而不影响数据库中其它工作节点的正常工作。
在本发明的一个实施例中,接收针对原生数据库的缩容指令,还包括:响应于缩容指令,确定缩容指令对应的目标存储;管理系统从配置信息中删除目标存储的存储信息。通过本发明实施例的方法,可快速为数据库删除共享存储,共享存储用于存储数据库数据。
云原生数据库采用分布式查询设计,可以将查询分散到多个计算节点同时进行,极大的提高了查询的性能。查询性能和计算节点数量成正相关,但是传统数据库不能实时在线扩缩容,水平扩容之后数据不能自动平衡,云原生实时数据仓库使用共享存储,计算存储分离,支持集群水平弹性扩缩容。
为使本发明实施例的方法更加便于理解,以下通过一个具体实施例的实现方法进行讲解。图5是本发明的一个实施例提供的一种云原生数据库扩缩容的原理的示意图。如图5所示,集群初始化创建通过Kubernetes中的operator控制,扩缩容同样通过operator控制,集群的拓扑信息保存在Kubernetes的configmap中,configMap是一种API对象,用来将非机密性的数据保存到键值对中。由Kubernetes同步到本地的配置文件及共享配置文件中;所有计算节点装载配置文件,数据文件从共享存储中加载,当自身为ready(就绪)状态,将状态注册到zookeeper中,当计算节点crash(损坏)或者不可用,计算节点会自动删除(zookeeper特性);所有计算节点监听zookeeper中集群状态,完成集群的创建或水平扩缩容。
图6是本发明的一个实施例提供的一种数据库扩缩容的流程的示意图。如图6所示,用户输入扩容或缩容指令,扩缩容同样operator控制,集群的拓扑信息保存在Kubernetes的配置信息(config)中。各计算节点加载配置文件获取节点信息,扩容节点为可用状态以后将节点信息注册到Zookeeper中。Zookeeper向各节点返回集群信息,并向返回集群信息及扩/缩容成功的信息。
数据库扩容方法采用operator通过修改配置文件实现集群的扩容。以下为数据库扩容时,新加入节点的流程:
步骤S01:用户发起扩容命令,operator创建新的节点资源,资源由Kubernetes集群分配;
步骤S02:operator配置扩容节点的域名,各计算节点通过域名互相访问;
步骤S03:operator生成新的配置文件到configmap;
步骤S04:Kubernetes将新生成configmap的值映射到节点配置文件中,集群加载新的配置信息clusters(集群)及macros(宏配置)等;
步骤S05:数据库数据采用共享存储,无需进行元数据迁移,可直接从磁盘装载元数据;
步骤S06:原数据装载完之后,如果是replicatedmergetree表引擎数据会从其他节点内存拷贝,数据对齐通过zookeeper上的全量part信息,补齐装载数据时新生成的共享存储数据;
步骤S07:表数据装载完以后,节点为就绪或可用状态之后,如果不存在节点状态管理目录,则进行创建,存在则不创建;该目录是节点状态管理的根目录“db/cluster/status”;
步骤S08:注册自己的节点(Ephemeral类型)状态如db/cluster/status/{replica}:active到zookeeper目录db/cluster/status上;
步骤S09:开启cluster_updating_task任务,该任务主要任务为,watchzookeeper目录db/cluster/status下节点的增加;
步骤S10:当计算节点监控到zookeeper状态管理目录时,更新内存中集群状态信息;
步骤S12:计算节点及扩容节点更新到查询,写入等流程中引用的clusters,查询、写入及其他任务都根据新的集群拓扑来处理;
此时,集群正常服务,完成扩容,无需数据重分布,无需元数据迁移,用户无感知扩容。
以下流程为数据库扩容过程中原有计算节点的处理流程,包括:
步骤S21:operator生成新的配置文件到configmap;
步骤S22:Kubernetes将新生成configmap的值映射到节点配置文件中,集群每2秒加载新的的配置信息clusters(集群);
步骤S23:cluster_updating_task任务watch(监控)到zookeeper目录db/cluster/status下工作节点的增加或缩减;
步骤S24:更新内存中集群状态信息;
步骤S25:更新到查询,写入等流程中引用的clusters,查询、写入及其他任务都根据新的集群拓扑来处理;
此时,集群正常服务,完成扩容。
需要说明的是:如果扩容过程中,节点没有就绪或为可用状态之前,节点又损坏,不会影响内存中集群状态,不会对数据库的操作产生影响,Kubernetes会尝试再次新建,对集群无影响;如果节点就绪或为可以状态之后,节点损坏,则为故障切换流程,相当于对数据库进行缩容处理再进行扩容处理。
数据库缩容方法采用operator通过修改配置文件实现集群的缩容。以下为数据库缩容时,移除节点的处理流程,包括:
步骤S31:operator对将要移除的节点进行关机;
步骤S32:移除节点接收到关机指令,由于采用共享存储,分布式文件存储上的共享数据无需清理,清理残留信息zookeeper的残留文件,关闭zookeeper客户端。此时其他集群watch到集群状态变化;
步骤S33:计算节点关机,在zookeeper上的关机的计算节点的状态,由zookeeper擦除;
步骤S34:Kubernetes回收节点资源。
此时,数据库集群完成缩容。
以下流程为数据库缩容过程中,其它计算节点的处理流程,包括:
步骤S41:用户发起缩容命令,operator生成新的配置文件到configmap;
步骤S42:Kubernetes将新生成configmap的值映射到节点配置文件中,集群每2秒加载新的的配置信息clusters(集群);
步骤S43:cluster_updating_task任务监听到zookeeper目录db/cluster/status下节点的缩减;
步骤S44:更新内存中集群状态信息;
步骤S45:更新到查询,写入等流程中引用的clusters(集群),查询、写入及其他任务都根据新的集群拓扑来处理;
此时,数据库集群正常服务,数据库集群完成缩容。
本发明实施例中,提供了一种云原生数据库弹性扩缩容的方法,实时数仓的显著特征是低频的批量写入和高频的查询。查询的性能是决定一个分析型数据库能否成功的关键。实时数仓采用分布式查询设计,可以将查询分散到多个节点同时进行,极大的提高了查询的性能。查询性能和节点数量成正相关,但是传统数仓不能实时在线扩缩容,水平扩容之后数据不能自动平衡,云原生数据库使用共享存储,计算存储分离,支持集群水平弹性扩缩容。
图7是本发明的一个实施例提供的一种数据库扩容装置的结构示意图。如图7所示,该装置包括:
指令接收模块701,用于接收针对所述原生数据库的扩容指令;
资源创建模块702,用于响应于所述扩容指令,所述管理系统创建针对扩容节点的节点资源;
第一生成模块703,用于所述管理系统生成配置信息;其中,所述配置信息包括:所述扩容节点的拓扑信息及各所述计算节点的拓扑信息;
第二生成模块704,用于所述扩容节点获取所述配置信息,并利用所述配置信息,生成所述扩容节点对应的配置文件;其中,所述管理系统利用所述扩容节点对应的配置文件对所述扩容节点进行管理;
目录更新模块705,用于在所述扩容节点处于可用状态时,所述管理系统获取所述扩容节点的节点状态,更新状态管理目录;
第三生成模块706,用于所述扩容节点获取所述状态管理目录,并利用所述状态管理目录,生成所述扩容节点对应的集群状态信息;其中,所述扩容节点利用所述扩容节点对应的集群状态信息提供集群任务服务。
可选地,第二生成模块704还用于:
所述计算节点获取所述配置信息,并利用所述配置信息,生成所述计算节点对应的配置文件;
第三生成模块706还用于:
所述计算节点获取所述状态管理目录,并利用所述状态管理目录,更新所述计算节点对应的集群状态信息;其中,所述计算节点利用所述计算节点对应的集群状态信息提供集群任务服务。
可选地,该装置还包括:
存储管理模块707,用于响应于所述扩容指令,所述管理系统创建针对目标存储的存储资源;
在所述目标存储上装载数据库数据;
对所述目标存储上的数据库数据进行对齐处理;
所述管理系统生成配置信息;其中,所述配置信息中包含所述目标存储的存储信息。
图8是本发明的一个实施例提供的一种数据库缩容装置的结构示意图。如图8所示,
指令接收模块801,用于接收针对所述原生数据库的缩容指令;
关机模块802,用于响应于所述缩容指令,对所述移除节点进行关机处理;
第一删除模块803,用于所述管理系统从配置信息中删除所述移除节点的拓扑信息;
第二删除模块804,用于所述管理系统从状态管理目录中删除所述移除节点的节点信息。
可选地,该装置还包括:
节点管理模块805,用于所述计算节点获取所述状态管理目录,并利用所述状态管理目录,更新所述计算节点对应的集群状态信息;其中,所述计算节点利用所述计算节点对应的集群状态信息提供集群任务服务;
所述计算节点获取所述状态管理目录,并利用所述状态管理目录,更新所述计算节点对应的集群状态信息;其中,所述计算节点利用所述计算节点对应的集群状态信息提供集群任务服务。
可选地,该装置还包括:
存储管理模块806,用于响应于所述缩容指令,确定所述缩容指令对应的目标存储;
所述管理系统从配置信息中删除所述目标存储的存储信息。
本发明实施例提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现上述任一实施例的方法。
下面参考图9,其示出了适于用来实现本发明实施例的终端设备的计算机系统900的结构示意图。图9示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,计算机系统900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有系统900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:指令接收模块、资源创建模块、第一生成模块、第二生成模块、目录更新模块及第三生成模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,指令接收模块还可以被描述为“接收针对所述原生数据库的扩容指令的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
接收针对所述原生数据库的扩容指令;
响应于所述扩容指令,所述管理系统创建针对扩容节点的节点资源;
所述管理系统生成配置信息;其中,所述配置信息包括:所述扩容节点的拓扑信息;
所述扩容节点获取所述配置信息,并利用所述配置信息,生成所述扩容节点对应的配置文件;
在所述扩容节点处于可用状态时,所述管理系统获取所述扩容节点的节点状态,更新状态管理目录;
所述扩容节点获取所述状态管理目录,并利用所述状态管理目录,生成所述扩容节点对应的集群状态信息。
根据本发明实施例的技术方案,利用管理系统中的配置信息生成扩容节点中的配置文件,通过配置文件实现对扩容节点的管理,以实现云原生数据库的灵活扩容。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (12)

1.一种云原生数据库,其特征在于,所述云原生数据库包括:管理系统、多个计算节点及共享存储;
所述管理系统中存储有配置信息及状态管理目录,所述配置信息中包括:各所述工作节点的拓扑信息及所述共享存储的存储信息,所述状态管理目录中包括:各可用工作节点的节点状态;
所述计算节点用于处理数据库的相关计算;所述计算节点的本地存储有所述计算节点对应的配置文件,所述配置文件是根据所述管理系统中的配置信息生成的,所述管理系统利用所述配置文件对所述计算节点进行管理;
所述计算节点的本地存储有所述计算节点对应的集群状态信息,所述集群状态信息是根据所述管理系统中的状态管理目录生成的,所述计算节点利用所述集群状态信息提供集群任务服务;
所述共享存储用于存储数据库数据。
2.根据权利要求1所述的云原生数据库,其特征在于,所述管理系统用于:获取各所述工作节点的节点状态;根据所述工作节点的节点信息,更新所述状态管理目录;
所述工作节点用于:获取所述状态管理目录,并利用所述状态管理目录,更新本地存储的集群状态信息。
3.一种数据库扩容方法,其特征在于,所述方法应用于如权利要求1或2所述的云原生数据库中,所述方法包括:
接收针对所述云原生数据库的扩容指令;
响应于所述扩容指令,所述管理系统创建针对扩容节点的节点资源;
所述管理系统生成配置信息;其中,所述配置信息包括:所述扩容节点的拓扑信息;
所述扩容节点获取所述配置信息,并利用所述配置信息,生成所述扩容节点对应的配置文件;
在所述扩容节点处于可用状态时,所述管理系统获取所述扩容节点的节点状态,更新状态管理目录;
所述扩容节点获取所述状态管理目录,并利用所述状态管理目录,生成所述扩容节点对应的集群状态信息。
4.根据权利要求3所述的方法,其特征在于,所述管理系统生成配置信息之后,还包括:
所述计算节点获取所述配置信息,并利用所述配置信息,生成所述计算节点对应的配置文件;
所述管理系统获取所述扩容节点的节点状态,更新状态管理目录之后,还包括:
所述计算节点获取所述状态管理目录,并利用所述状态管理目录,更新所述计算节点对应的集群状态信息。
5.根据权利要求3所述的方法,其特征在于,所述接收针对所述原生数据库的扩容指令之后,还包括:
响应于所述扩容指令,所述管理系统创建针对目标存储的存储资源;
在所述目标存储上装载数据库数据;
对所述目标存储上的数据库数据进行对齐处理;
所述管理系统生成配置信息;其中,所述配置信息中包含所述目标存储的存储信息。
6.一种数据库缩容方法,其特征在于,所述方法应用于如权利要求1或2所述的云原生数据库中,所述方法包括:
接收针对所述云原生数据库的缩容指令;
响应于所述缩容指令,对所述移除节点进行关机处理;
所述管理系统从所述配置信息中删除所述移除节点的拓扑信息;
所述管理系统从所述状态管理目录中删除所述移除节点的节点信息。
7.根据权利要求6所述的方法,其特征在于,所述管理系统从所述配置信息中删除所述移除节点的拓扑信息之后,还包括:
所述计算节点获取所述状态管理目录,并利用所述状态管理目录,更新所述计算节点对应的集群状态信息;
所述管理系统从所述状态管理目录中删除所述移除节点的节点信息之后,还包括:
所述计算节点获取所述状态管理目录,并利用所述状态管理目录,更新所述计算节点对应的集群状态信息。
8.根据权利要求6所述的方法,其特征在于,所述接收针对所述原生数据库的缩容指令,还包括:
响应于所述缩容指令,确定所述缩容指令对应的目标存储;
所述管理系统从所述配置信息中删除所述目标存储的存储信息。
9.一种数据库扩容装置,其特征在于,所述装置应用于如权利要求1或2所述的云原生数据库中,所述装置包括:
指令接收模块,用于接收针对所述原生数据库的扩容指令;
资源创建模块,用于响应于所述扩容指令,所述管理系统创建针对扩容节点的节点资源;
第一生成模块,用于所述管理系统生成配置信息;其中,所述配置信息包括:所述扩容节点的拓扑信息;
第二生成模块,用于所述扩容节点获取所述配置信息,并利用所述配置信息,生成所述扩容节点对应的配置文件;
目录更新模块,用于在所述扩容节点处于可用状态时,所述管理系统获取所述扩容节点的节点状态,更新状态管理目录;
第三生成模块,用于所述扩容节点获取所述状态管理目录,并利用所述状态管理目录,生成所述扩容节点对应的集群状态信息。
10.一种数据库缩容装置,其特征在于,所述装置应用于如权利要求1或2所述的云原生数据库中,所述装置包括:
指令接收模块,用于接收针对所述原生数据库的缩容指令;
关机模块,用于响应于所述缩容指令,对所述移除节点进行关机处理;
第一删除模块,用于所述管理系统从配置信息中删除所述移除节点的拓扑信息;
第二删除模块,用于所述管理系统从状态管理目录中删除所述移除节点的节点信息。
11.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求3-5或6-8中任一所述的方法。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求3-5或6-8中任一所述的方法。
CN202111176721.4A 2021-10-09 2021-10-09 云原生数据库、数据库扩容方法、数据库缩容方法和装置 Pending CN113934707A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111176721.4A CN113934707A (zh) 2021-10-09 2021-10-09 云原生数据库、数据库扩容方法、数据库缩容方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111176721.4A CN113934707A (zh) 2021-10-09 2021-10-09 云原生数据库、数据库扩容方法、数据库缩容方法和装置

Publications (1)

Publication Number Publication Date
CN113934707A true CN113934707A (zh) 2022-01-14

Family

ID=79277958

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111176721.4A Pending CN113934707A (zh) 2021-10-09 2021-10-09 云原生数据库、数据库扩容方法、数据库缩容方法和装置

Country Status (1)

Country Link
CN (1) CN113934707A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114489856A (zh) * 2022-01-28 2022-05-13 中国农业银行股份有限公司 应用程序配置文件获取方法、装置和设备
CN114780252A (zh) * 2022-06-15 2022-07-22 阿里云计算有限公司 数据仓库系统的资源管理方法及装置
CN115185774A (zh) * 2022-07-11 2022-10-14 河北平普数政科技有限公司 一种基于开源技术的自动化数据库
CN116132289A (zh) * 2022-09-27 2023-05-16 马上消费金融股份有限公司 信息配置方法、装置、设备和介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150333957A1 (en) * 2015-02-12 2015-11-19 Advanced Micro Devices, Inc. Centralized distribution of configuration parameters for a cluster server
CN106383845A (zh) * 2016-08-31 2017-02-08 天津南大通用数据技术股份有限公司 一种基于共享存储的mpp数据库数据重分布系统
CN107357896A (zh) * 2017-07-13 2017-11-17 北京小度信息科技有限公司 数据库集群的扩容方法、装置、系统和数据库集群系统
CN107391633A (zh) * 2017-06-30 2017-11-24 北京奇虎科技有限公司 数据库集群自动优化处理方法、装置及服务器
US10216770B1 (en) * 2014-10-31 2019-02-26 Amazon Technologies, Inc. Scaling stateful clusters while maintaining access
CN110874384A (zh) * 2018-09-03 2020-03-10 阿里巴巴集团控股有限公司 数据库集群扩缩容的方法、装置和系统
WO2020062131A1 (zh) * 2018-09-29 2020-04-02 北京连云决科技有限公司 一种基于区块链技术的容器云管理系统
CN111343016A (zh) * 2020-02-21 2020-06-26 北京京东尚科信息技术有限公司 云服务器集群管理方法和装置
US20200250150A1 (en) * 2019-01-31 2020-08-06 Rubrik, Inc. Systems and methods to process a topology change in a clustered database
CN111782341A (zh) * 2020-06-30 2020-10-16 北京百度网讯科技有限公司 用于管理集群的方法和装置
CN112199427A (zh) * 2020-09-24 2021-01-08 中国建设银行股份有限公司 一种数据处理方法和系统

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10216770B1 (en) * 2014-10-31 2019-02-26 Amazon Technologies, Inc. Scaling stateful clusters while maintaining access
US20150333957A1 (en) * 2015-02-12 2015-11-19 Advanced Micro Devices, Inc. Centralized distribution of configuration parameters for a cluster server
CN106383845A (zh) * 2016-08-31 2017-02-08 天津南大通用数据技术股份有限公司 一种基于共享存储的mpp数据库数据重分布系统
CN107391633A (zh) * 2017-06-30 2017-11-24 北京奇虎科技有限公司 数据库集群自动优化处理方法、装置及服务器
CN107357896A (zh) * 2017-07-13 2017-11-17 北京小度信息科技有限公司 数据库集群的扩容方法、装置、系统和数据库集群系统
CN110874384A (zh) * 2018-09-03 2020-03-10 阿里巴巴集团控股有限公司 数据库集群扩缩容的方法、装置和系统
WO2020062131A1 (zh) * 2018-09-29 2020-04-02 北京连云决科技有限公司 一种基于区块链技术的容器云管理系统
US20200250150A1 (en) * 2019-01-31 2020-08-06 Rubrik, Inc. Systems and methods to process a topology change in a clustered database
CN111343016A (zh) * 2020-02-21 2020-06-26 北京京东尚科信息技术有限公司 云服务器集群管理方法和装置
CN111782341A (zh) * 2020-06-30 2020-10-16 北京百度网讯科技有限公司 用于管理集群的方法和装置
CN112199427A (zh) * 2020-09-24 2021-01-08 中国建设银行股份有限公司 一种数据处理方法和系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114489856A (zh) * 2022-01-28 2022-05-13 中国农业银行股份有限公司 应用程序配置文件获取方法、装置和设备
CN114780252A (zh) * 2022-06-15 2022-07-22 阿里云计算有限公司 数据仓库系统的资源管理方法及装置
CN115185774A (zh) * 2022-07-11 2022-10-14 河北平普数政科技有限公司 一种基于开源技术的自动化数据库
CN116132289A (zh) * 2022-09-27 2023-05-16 马上消费金融股份有限公司 信息配置方法、装置、设备和介质

Similar Documents

Publication Publication Date Title
CN113934707A (zh) 云原生数据库、数据库扩容方法、数据库缩容方法和装置
CN112099918B (zh) 容器化环境中的集群的实时迁移
US10735345B2 (en) Orchestrating computing resources between different computing environments
US10652119B2 (en) Automatic recovery engine with continuous recovery state machine and remote workflows
CN109144785B (zh) 用于备份数据的方法和装置
CN105872016A (zh) 一种桌面云中虚拟机的运行方法
CN110520844A (zh) 云管理平台、虚拟机管理方法及其系统
CN112083889A (zh) 数据迁移方法、装置、设备及可读存储介质
CN116627721A (zh) 基于混合云的云原生数据库恢复方法、设备及存储介质
CN107818027B (zh) 名字节点主备切换的方法、装置和分布式系统
CN113590304A (zh) 一种业务数据处理方法、装置、计算机设备及存储介质
CN113127430B (zh) 镜像信息处理方法、装置、计算机可读介质及电子设备
CN114595069B (zh) 服务下线方法、装置、电子设备及存储介质
CN113360689B (zh) 图像检索系统、方法、相关装置及计算机程序产品
CN112261097B (zh) 用于分布式存储系统的对象定位方法及电子设备
US20210067402A1 (en) Disaster Recovery of Cloud Resources
CN113590033A (zh) 一种超融合系统的信息同步方法及装置
CN114443057A (zh) 对话模型的部署和对话方法、装置、电子设备及存储介质
CN114615263A (zh) 集群在线迁移方法、装置、设备及存储介质
CN109101253B (zh) 云计算系统中主机的管理方法和装置
CN111858234A (zh) 一种任务执行方法、装置、设备、介质
CN112948348B (zh) 运维管控方法、装置、电子设备及存储介质
CN113765688B (zh) 一种专有云平台管理方法、系统以及专有云平台
CN109542588B (zh) 一种用于在云环境下管理虚拟设备的方法和装置
US11323512B2 (en) Peer to peer infrastructure management architecture

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