CN104484470B - 一种数据库集群元数据管理方法 - Google Patents
一种数据库集群元数据管理方法 Download PDFInfo
- Publication number
- CN104484470B CN104484470B CN201410847871.7A CN201410847871A CN104484470B CN 104484470 B CN104484470 B CN 104484470B CN 201410847871 A CN201410847871 A CN 201410847871A CN 104484470 B CN104484470 B CN 104484470B
- Authority
- CN
- China
- Prior art keywords
- metadata
- management
- request
- cluster
- clustered node
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/21—Design, administration or maintenance of databases
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)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据库集群元数据管理方法,将元数据管理命令序列化,通过在数据库集群中增加一个实体,在进行集群元数据的统一管理,该实体与组成集群的每个集群节点连接,专门用于元数据管理,对集群的元数据变更进行统一管理。采用本发明中的方法,可以保证数据库集群中集群元数据的一致性,解决集群失效节点重新加入集群时集群元数据不一致问题,以及扩容集群时在新增节点上重建集群元数据信息,进而提高数据库集群的高可用性。
Description
技术领域
本发明涉及数据库集群的元数据管理技术,尤其涉及一种数据库集群元数据管理方法。
背景技术
随着信息化技术的快速发展,一个企业的用户数量、数据量均呈现爆炸式增长,在业务量提高的同时,数据库的访问量和数据量快速增长对数据库处理能力和计算强度也相应增大,使得单一节点数据库根本无法承担。在这样一个背景下,大型分布式数据库集群产生了,所谓数据库集群,是指利用两台或多台数据库服务,构成一个虚拟单一数据库逻辑映像,像单数据库那样,向客户端提供透明的数据服务。
在数据库系统中,数据库的表(Table)、索引(Index)、视图(View)等数据库对象的定义称之为数据库元数据。对于单数据库,数据库元数据只有一份,保存在数据库服务中,由数据库自身管理,所有链接到数据库的客户端访问同一份数据库元数据,并依据元数据访问数据库中的数据。对于数据库集群,将数据库元数据称为集群元数据,根据架构的不同,集群元数据存放的位置也有所不同。目前,有两种主流的数据库集群架构,带中心节点的集群架构和不带中心节点的MPP架构。带中心节点的集群架构,集群元数据只有一份,由中心节点统一负责管理,应用客户端统一从中心节点接入数据库集群,并获得集群元数据和数据库集群提供的服务;不带中心节点的MPP架构,集群元数据有多份,每个集群节点一份,且完全相同,由各个集群节点自身维护,应用客户端可以从任意集群节点接入数据库集群,并获得一致的集群元数据和数据库集群提供的服务。
不带中心节点的MPP架构的数据库集群如图1所示,由多个集群节点组成,每个集群节点运行一个独立的数据库,为满足数据库集群向客户端提供透明的数据服务需求——即无论客户端从哪个集群节点接入数据库集群都和接入单一数据库一样,数据库集群的每个集群节点所存储的集群元数据必须完全相同,由此,当连接到集群节点1的客户端发起一个管理元数据的请求(例如创建表Table1)时,该元数据变更需要在集群节点1、集群节点2和集群节点3上均实现才能够保证每个集群节点所存储的集群元数据是相同的,集群元数据管理流程参考图2所示。
在上述数据库集群中,现有集群元数据管理方法在处理单个客户端发起的多个管理元数据请求或者多个客户端发起不同的管理元数据请求时,可以保证每个集群节点所存储的数集群元数据是相同的。但是,在高并发场景下,如果从不同集群节点接入的客户端同时发起相同的管理元数据请求,例如:接入集群节点1的客户端请求建表Table2(id int,name char(20)),接入集群节点2的客户端请求建表Table2(id int)时,会导致同时失败或者部分成功,即在某些节点上创建为Table2(id int,name char(20)),某些节点上创建为Table2(id int),从而导致集群元数据不一致现象。此外,如果集群中某个集群节点失效,会导致在该失效集群节点无法进行管理元数据的操作,则在该集群节点恢复正常状态之前,集群无法管理元数据信息。综上所述,集群元数据管理方法亟待改进。
发明内容
本发明要解决的问题是一种数据库集群元数据管理方法,对现有技术体制进行完善,从而解决数据库集群元数据管理过程中可能出现的集群元数据不一致问题,提高数据库集群的高可用性,为应用系统提供更高质量的服务。
为解决上述技术问题,本发明采用的技术方案是:一种数据库集群元数据管理方法,包括如下步骤:
1)某个集群节点接收到客户端的管理元数据请求以后,进行有效性检查,然后将管理元数据请求发送到元数据管理实体;
2)元数据管理实体接收到管理元数据请求,将该管理元数据请求序列化,赋予唯一的管理元数据请求ID,并将该请求交于集群中每个集群节点执行;如果集群中某个集群节点失效并脱离集群时,则元数据管理实体不发送管理元数据请求到该集群节点,同时,记录该集群节点有哪些管理元数据请求未执行,当该集群节点恢复时,首先从元数据管理实体获取其未执行的管理元数据请求,执行这些请求完成元数据更新,使本集群节点的集群元数据与集群完全一致,然后该集群节点重新加入集群正式提供服务;
3)元数据管理实体接收到每个集群节点的响应以后,发送管理元数据响应给该管理元数据请求的发起者,即步骤1中描述的集群节点;
4)步骤1中描述的集群节点接收到元数据管理实体发送的管理元数据响应后,发送管理元数据响应给发起该请求的客户端,客户端接收到集群节点的管理元数据响应,本次元数据管理完成。
进一步的,所述步骤1中需要对元数据请求进行有效性检查,还包含以下步骤:
a1.检查管理元数据请求的语法有效性——管理元数据请求的语法不符合数据库集群的语法规范,则直接返回管理元数据失败消息给客户端;
a2.检查管理元数据请求的可执行性——判断管理元数据请求的内容与数据库集群元数据冲突,则直接返回管理元数据失败消息给客户端。
进一步的,所述步骤2中,还包含以下步骤:
b1.元数据管理实体接收到集群节点发送的管理元数据请求以后,检查消息管理队列中是否有该请求,如果在队列中有该请求,则直接返回失败响应给该请求的发起集群节点;
b2.元数据管理实体生成全局唯一的管理元数据请求ID,与该请求建立映射关系,并将该请求加入元数据管理实体的消息队列中;
b3.元数据管理实体从消息队列中获取管理元数据请求,将该请求同步给集群中的每个集群节点执行。
进一步的,所述步骤3中,还包含以下步骤:
c1.元数据管理实体接收每个集群节点执行管理元数据请求的响应,对于同一个ID的请求,如果某个集群节点或多个集群节点执行失败,则发送管理元数据失败响应给该请求的发起集群节点;
c2.如果每个集群节点均执行成功,则元数据管理实体发送管理元数据成功响应给该请求的发起集群节点;
c3.元数据管理实体保存该管理元数据请求信息到集群元数据管理日志中。
进一步的,所述步骤3中,进一步包含以下步骤:当元数据管理实体将一个管理元数据请求发送到每个集群节点执行,如果一个集群节点执行失败,其他集群节点均执行成功时,元数据管理实体生成一个该请求的逆操作请求,将逆操作请求发送到成功执行该请求的集群节点执行,从而保证集群节点的集群元数据一致。
进一步的,所述元数据管理实体与数据库集群的每个集群节点连接方式为TCP/IP或者UDP/IP连接。
本发明具有的优点和积极效果是:
1.保证集群元数据一致:使用元数据管理实体统一管理集群元数据,通过序列化,使得每个管理元数据请求在集群中每个集群节点均正确执行,确保了集群元数据的一致性,每个集群节点的元数据都是相同的,进而实现向应用客户端提供透明的数据服务,应用客户端可以从任意集群节点接入数据库集群,并获得一致的数据库服务;
2.提高集群高可用性:采用多个元数据管理实体时,允许某个元数据管理实体失效,但不影响集群向客户端提供集群元数据管理功能;允许集群中某个集群节点失效时,集群仍然可以提供正常的集群元数据管理功能;
3.集群元数据回放:集群中某个集群节点失效脱离集群以后,当恢复该集群节点时,该集群节点可依赖元数据管理实体提供的机制,获取该节点脱离集群阶段未执行的全部管理元数据请求,实现在本集群节点回放,使本集群节点的集群元数据与集群完全一致,然后将本集群节点重新加入到集群,为应用客户端提供透明的数据服务;
4.集群元数据重建:当集群需要扩容时,新增的集群节点可以从元数据管理实体获取集群元数据管理日志,实现在新增集群节点重建集群元数据,使新增集群节点的集群元数据与集群完全一致,能够将新增集群节点加入到集群,为应用客户端提供透明的数据服务。
附图说明
图1是数据库集群现状组成图的示意图;
图2是数据库集群现状元数据管理流程说明图的示意图;
图3是增加元数据管理实体的数据库集群组成图的示意图;
图4是增加元数据管理实体的数据库集群元数据管理流程说明图。
具体实施方式
图3给出了本发明增加一个元数据管理实体的数据库集群组成图示例,实际应用可根据具体需要扩展为多个集群节点或扩展为多个元数据管理实体。
图4给出了本发明集群元数据管理方法的实施示意流程说明,该流程基于图3所示增加元数据管理实体的数据库集群组成图,具体包括以下步骤:
201:客户端接入集群节点1,发送管理元数据请求。
202:集群节点1接收到客户端的管理元数据请求,进行有效性检查,将该管理元数据请求发送到元数据管理实体。
检查管理元数据的有效性包括检查管理元数据请求的语法有效性和可执行性,如果管理元数据请求的语法不符合数据库集群的语法规范或管理元数据请求的内容与数据库集群元数据冲突,则直接返回元管理数据失败消息给客户端。
203:元数据管理实体接收到集群节点1的管理元数据请求,将该管理元数据请求序列化,赋予唯一的管理元数据请求ID,并将该请求交于集群节点1、集群节点2和集群节点3执行。
元数据管理实体接收到集群节点发送的管理元数据请求以后,检查消息管理队列中是否有该请求,如果在队列中有该请求,则直接返回失败响应给该请求的发起集群节点,元数据管理实体生成全局唯一的管理元数据请求ID,与该请求建立映射关系,并将该请求加入元数据管理实体的消息队列中,元数据管理实体从消息队列中获取管理元数据请求,将该请求同步给集群中的每个集群节点执行。如果集群中某个集群节点失效并脱离集群时,则元数据管理实体不发送管理元数据请求到该集群节点,同时,记录该集群节点有哪些管理元数据请求未执行。当该集群节点恢复时,首先从元数据管理实体获取其未执行的管理元数据请求,执行这些请求完成元数据更新,使本集群节点的集群元数据与集群完全一致,然后该集群节点重新加入集群正式提供服务。
204:集群节点1、集群节点2和集群节点3执行该请求操作,该请求操作成功,通知元数据管理实体。
205:元数据管理实体向集群节点1发送管理元数据响应。
元数据管理实体接收每个集群节点执行管理元数据请求的响应,对于同一个ID的请求,如果某个集群节点或多个集群节点执行失败,则发送管理元数据失败响应给该请求的发起集群节点,如果每个集群节点均执行成功,则元数据管理实体发送管理元数据成功响应给该请求的发起集群节点,元数据管理实体保存该管理元数据请求信息到集群元数据管理日志中。当元数据管理实体将一个管理元数据请求发送到每个集群节点执行,如果一个集群节点执行失败,其他集群节点均执行成功时,元数据管理实体生成一个该请求的逆操作请求,将逆操作请求发送到成功执行该请求的集群节点执行,从而保证集群节点的集群元数据一致。
206:集群节点1接收到元数据管理实体发送的管理元数据响应后,向客户端发送管理元数据响应;
207:客户端接收到集群节点1的管理元数据响应,本次元数据管理完成。
以上对本发明的实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明范围所作的均等变化与改进等,均应仍归属于本专利涵盖范围之内。
Claims (6)
1.一种数据库集群元数据管理方法,包括如下步骤:
1)某个集群节点接收到客户端的管理元数据请求以后,进行有效性检查,然后将管理元数据请求发送到元数据管理实体;
2)元数据管理实体接收到管理元数据请求,将该管理元数据请求序列化,赋予唯一的管理元数据请求ID,并将该请求交于集群中每个集群节点执行;如果集群中某个集群节点失效并脱离集群时,则元数据管理实体不发送管理元数据请求到该集群节点,同时,记录该集群节点有哪些管理元数据请求未执行,当该集群节点恢复时,首先从元数据管理实体获取其未执行的管理元数据请求,执行这些请求完成元数据更新,使本集群节点的集群元数据与集群完全一致,然后该集群节点重新加入集群正式提供服务;
3)元数据管理实体接收到每个集群节点的响应以后,发送管理元数据响应给该管理元数据请求的发起者,即步骤1中描述的集群节点;
4)步骤1中描述的集群节点接收到元数据管理实体发送的管理元数据响应后,发送管理元数据响应给发起该请求的客户端,客户端接收到集群节点的管理元数据响应,本次元数据管理完成。
2.根据权利要求1所述的一种数据库集群元数据管理方法,其特征在于:所述步骤1中需要对元数据请求进行有效性检查,还包含以下步骤:
a1.检查管理元数据请求的语法有效性——管理元数据请求的语法不符合数据库集群的语法规范,则直接返回管理元数据失败消息给客户端;
a2.检查管理元数据请求的可执行性——判断管理元数据请求的内容与数据库集群元数据冲突,则直接返回管理元数据失败消息给客户端。
3.根据权利要求1所述的一种数据库集群元数据管理方法,其特征在于:所述步骤2中,还包含以下步骤:
b1.元数据管理实体接收到集群节点发送的管理元数据请求以后,检查消息管理队列中是否有该请求,如果在队列中有该请求,则直接返回失败响应给该请求的发起集群节点;
b2.元数据管理实体生成全局唯一的管理元数据请求ID,与该请求建立映射关系,并将该请求加入元数据管理实体的消息队列中;
b3.元数据管理实体从消息队列中获取管理元数据请求,将该请求同步给集群中的每个集群节点执行。
4.根据权利要求1所述的一种数据库集群元数据管理方法,其特征在于:所述步骤3中,还包含以下步骤:
c1.元数据管理实体接收每个集群节点执行管理元数据请求的响应,对于同一个ID的请求,如果某个集群节点或多个集群节点执行失败,则发送管理元数据失败响应给该请求的发起集群节点;
c2.如果每个集群节点均执行成功,则元数据管理实体发送管理元数据成功响应给该请求的发起集群节点;
c3.元数据管理实体保存该管理元数据请求信息到集群元数据管理日志中。
5.根据权利要求1所述的一种数据库集群元数据管理方法,其特征在于:所述步骤3中,还包含以下步骤:当元数据管理实体将一个管理元数据请求发送到每个集群节点执行,如果一个集群节点执行失败,其他集群节点均执行成功时,元数据管理实体生成一个该请求的逆操作请求,将逆操作请求发送到成功执行该请求的集群节点执行,从而保证集群节点的集群元数据一致。
6.根据权利要求1所述的一种数据库集群元数据管理方法,其特征在于:所述元数据管理实体与数据库集群的每个集群节点连接方式为TCP/IP或者UDP/IP连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410847871.7A CN104484470B (zh) | 2014-12-31 | 2014-12-31 | 一种数据库集群元数据管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410847871.7A CN104484470B (zh) | 2014-12-31 | 2014-12-31 | 一种数据库集群元数据管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104484470A CN104484470A (zh) | 2015-04-01 |
CN104484470B true CN104484470B (zh) | 2018-06-08 |
Family
ID=52759011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410847871.7A Active CN104484470B (zh) | 2014-12-31 | 2014-12-31 | 一种数据库集群元数据管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104484470B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105389368A (zh) * | 2015-11-16 | 2016-03-09 | 天津南大通用数据技术股份有限公司 | 一种mpp架构数据库集群元数据管理方法 |
CN105426469A (zh) * | 2015-11-16 | 2016-03-23 | 天津南大通用数据技术股份有限公司 | 一种数据库集群元数据管理方法及系统 |
CN106815251B (zh) * | 2015-11-30 | 2019-09-03 | 成都华为技术有限公司 | 分布式数据库系统、数据库访问方法及装置 |
CN105488215A (zh) * | 2015-12-12 | 2016-04-13 | 天津南大通用数据技术股份有限公司 | Mpp架构数据库集群序列系统及序列管理方法 |
CN105447183A (zh) * | 2015-12-12 | 2016-03-30 | 天津南大通用数据技术股份有限公司 | Mpp架构数据库集群序列系统及序列管理方法 |
CN107920131A (zh) * | 2017-12-08 | 2018-04-17 | 郑州云海信息技术有限公司 | 一种hdfs存储系统的元数据管理方法及装置 |
CN110300009A (zh) * | 2018-03-23 | 2019-10-01 | 华为技术有限公司 | 报文的生成方法及相关设备 |
CN109582686B (zh) * | 2018-12-13 | 2021-01-15 | 中山大学 | 分布式元数据管理一致性保证方法、装置、系统及应用 |
CN112214466B (zh) * | 2019-07-12 | 2024-05-14 | 海能达通信股份有限公司 | 分布式集群系统及数据写入方法、电子设备、存储装置 |
CN111324668B (zh) * | 2020-02-18 | 2023-11-21 | 中国联合网络通信集团有限公司 | 数据库数据同步处理方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005111788A3 (en) * | 2004-05-07 | 2008-04-03 | Asempra Technologies Inc | Moving real-time data events across devices in a network |
CN101697526A (zh) * | 2009-10-10 | 2010-04-21 | 中国科学技术大学 | 分布式文件系统中元数据管理的负载均衡方法及其系统 |
CN104104739A (zh) * | 2014-08-08 | 2014-10-15 | 成都致云科技有限公司 | 一种云存储系统元数据服务集群的数据同步方法 |
-
2014
- 2014-12-31 CN CN201410847871.7A patent/CN104484470B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005111788A3 (en) * | 2004-05-07 | 2008-04-03 | Asempra Technologies Inc | Moving real-time data events across devices in a network |
CN101697526A (zh) * | 2009-10-10 | 2010-04-21 | 中国科学技术大学 | 分布式文件系统中元数据管理的负载均衡方法及其系统 |
CN104104739A (zh) * | 2014-08-08 | 2014-10-15 | 成都致云科技有限公司 | 一种云存储系统元数据服务集群的数据同步方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104484470A (zh) | 2015-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104484470B (zh) | 一种数据库集群元数据管理方法 | |
US20200257593A1 (en) | Storage cluster configuration change method, storage cluster, and computer system | |
US10747714B2 (en) | Scalable distributed data store | |
Schram et al. | MySQL to NoSQL: data modeling challenges in supporting scalability | |
US9589041B2 (en) | Client and server integration for replicating data | |
EP3407205B1 (en) | Data operation method and data management server | |
US20150120645A1 (en) | System and Method for Creating a Distributed Transaction Manager Supporting Repeatable Read Isolation level in a MPP Database | |
WO2018094909A1 (zh) | 节点连接方法及分布式计算系统 | |
WO2019001017A1 (zh) | 集群间数据迁移方法、系统、服务器及计算机存储介质 | |
JP6086463B2 (ja) | ピアツーピアデータ複製用の方法、デバイス、およびシステム、ならびにマスタノード切替え用の方法、デバイス、およびシステム | |
CN103345502B (zh) | 分布式数据库的事务处理方法和系统 | |
CN107423390B (zh) | 一种基于oltp-olap混合关系型数据库系统内部的数据实时同步方法 | |
US20220382484A1 (en) | Gransets for managing consistency groups of dispersed storage items | |
CN103116643A (zh) | 基于Hadoop的智慧医疗数据管理方法 | |
CN105069160A (zh) | 一种基于自主可控数据库的高可用性方法及构架 | |
CN106446126A (zh) | 一种海量空间信息数据存储管理方法及存储管理系统 | |
CN106993064A (zh) | 一种基于Openstack云平台实现海量数据可伸缩性存储的系统及其构建方法与应用 | |
US10852985B2 (en) | Persistent hole reservation | |
CN107368369B (zh) | 分布式容器管理方法及系统 | |
US11086551B2 (en) | Freeing and utilizing unused inodes | |
CN105426469A (zh) | 一种数据库集群元数据管理方法及系统 | |
CN108427728A (zh) | 元数据的管理方法、设备及计算机可读介质 | |
CN105740248B (zh) | 一种数据同步方法、装置及系统 | |
CN106713391A (zh) | 一种session信息的共享方法和共享系统 | |
CN106126583A (zh) | 一种分布式图数据库的集群强一致性处理方法及系统 |
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 |