CN115665159B - 一种大数据环境下的元数据管理方法及系统 - Google Patents

一种大数据环境下的元数据管理方法及系统 Download PDF

Info

Publication number
CN115665159B
CN115665159B CN202211602445.8A CN202211602445A CN115665159B CN 115665159 B CN115665159 B CN 115665159B CN 202211602445 A CN202211602445 A CN 202211602445A CN 115665159 B CN115665159 B CN 115665159B
Authority
CN
China
Prior art keywords
master node
node
master
slave
metadata
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
CN202211602445.8A
Other languages
English (en)
Other versions
CN115665159A (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.)
Huaneng Real Estate Co ltd
Huaneng Clean Energy Research Institute
Original Assignee
Huaneng Real Estate Co ltd
Huaneng Clean Energy Research Institute
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 Huaneng Real Estate Co ltd, Huaneng Clean Energy Research Institute filed Critical Huaneng Real Estate Co ltd
Priority to CN202211602445.8A priority Critical patent/CN115665159B/zh
Publication of CN115665159A publication Critical patent/CN115665159A/zh
Application granted granted Critical
Publication of CN115665159B publication Critical patent/CN115665159B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及元数据数据存储管理技术领域,具体涉及一种大数据环境下的元数据管理方法及系统,该方法包括基于获取的主节点集群、从节点集群和各主节点的存储容量获得主节点与从节点映射集合和主节点与哈希槽的映射集合;利用心跳机制对所有主节点进行超时判断;获取客户端发送的请求指令,基于请求指令的文件名获得目标哈希槽,结合主节点与哈希槽的映射集合确定目标主节点;若请求指令为读请求则从目标主节点或与目标主节点连接的从节点取出元数据;若请求指令为写请求则向目标主节点写入元数据,利用目标主节点向与目标主节点连接的所有从节点发送日志项进行数据同步。根据本发明方法解决了元数据服务器读写请求的负载均衡和数据的一致性问题。

Description

一种大数据环境下的元数据管理方法及系统
技术领域
本发明涉及元数据数据存储管理技术领域,尤其涉及一种大数据环境下的元数据管理方法及系统。
背景技术
众所周知,在大规模数据存储系统中,元数据量虽然之于整个系统的数据存储量的比重很小,但是却有60%~80%的访问请求属于元数据操作。为了加强对元数据的管理并消除元数据对于数据存储和访问的性能瓶颈,不少存储系统将元数据存储管理与用户数据的存储分离,将元数据存储与管理业务交给独立的元数据服务器(MDS)进行处理,MDS充当用户数据请求与数据文件的映射中介。其中储存和管理元数据的系统包括集中式元数据管理系统和分布式元数据管理系统,分布式元数据管理系统,实际上是集中式元数据管理系统的改进,元数据服务器的角色由一组基于分布式架构进行组织的服务器来承担,使得元数据处理能力、可靠性级别、以及系统可扩展性都有明显提升。集群中的每个元数据服务器是完全对等的,每个都可以独立对外提供元数据服务,然后集群内部进行元数据同步,保持数据一致性。分布式元数据管理系统中的元数据管理和访问是影响系统高性能和可扩展性的关键因素。随着大数据时代的到来,面对TB级乃至EB级的海量数据,单点MDS的分离方案难以应对海量数据存储需求。为此,有必要提供去中心化的、可扩展性强的MDS集群方案,将元数据划分到各个MDS结点,通过负载分享以实现数据访问的高性能和可扩展性,同时解决如何在海量元数据读写请求的情况下,保证元数据服务器读写请求的负载均衡以及保证数据的一致性。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种大数据环境下的元数据管理方法,主要目的在于解决元数据服务器读写请求的负载均衡和数据的一致性的问题。
本发明的第二个目的在于提出一种大数据环境下的元数据管理系统。
本发明的第三个目的在于提出一种大数据环境下的元数据管理设备。
本发明的第四个目的在于提出一种非瞬时计算机可读存储介质。
为达上述目的,本发明第一方面实施例提出了一种大数据环境下的元数据管理方法,应用于元数据服务器集群,所述元数据服务器集群包括多个节点,每个节点存储有元数据,所述节点分为主节点和从节点,每个主节点与至少一个从节点连接,所述管理方法包括:
获取主节点集群、从节点集群和各主节点的存储容量,基于所述主节点集群、从节点集群和各主节点的存储容量获得主节点与从节点映射集合和主节点与哈希槽的映射集合;
利用心跳机制对所述主节点集群中所有主节点进行超时判断,以使任一主节点与其他主节点建立心跳连接;
获取客户端发送的请求指令,基于所述请求指令的文件名获得目标哈希槽,基于所述目标哈希槽和所述主节点与哈希槽的映射集合确定目标主节点;
若所述请求指令为读请求,则从所述目标主节点或与所述目标主节点连接的从节点取出元数据,并将元数据送至客户端;
若所述请求指令为写请求,则向所述目标主节点中写入元数据,并利用目标主节点向与目标主节点连接的所有从节点发送日志项,进行数据同步。
在本发明的一个实施例中,所述基于所述主节点集群、从节点集群和各主节点的存储容量获得主节点与从节点映射集合和主节点与哈希槽的映射集合,包括:基于所述主节点集群和所述从节点集群获得主节点与从节点映射集合;基于所述各主节点的存储容量计算总存储空间;基于所述总存储空间和各主节点的存储容量获得各主节点的哈希槽区间;基于所述主节点集群和所述各主节点的哈希槽区间获得主节点与哈希槽的映射集合。
在本发明的一个实施例中,所述利用心跳机制对所述主节点集群中所有主节点进行超时判断,以使任一主节点与其他主节点建立心跳连接,包括:选择所述主节点集群中任一个主节点,判断该主节点的心跳是否超时;若超时,则计算与该主节点连接的所有从节点的负载指标,选择负载指标最小的从节点作为新的主节点,将该新的主节点更新至所述主节点集群,并与所述主节点集群中的其他主节点建立心跳连接;若不超时,则该主节点与其他主节点存在心跳连接。
在本发明的一个实施例中,所述基于所述请求指令的文件名获得目标哈希槽,包括:对所述请求指令的文件名进行哈希处理获得哈希值;基于所述哈希值的前预设位数获得哈希槽定位;基于所述哈希槽定位和所述各主节点的哈希槽区间获得目标哈希槽。
在本发明的一个实施例中,所述从所述目标主节点或与所述目标主节点连接的从节点取出元数据,并将元数据送至客户端,包括:在所述目标主节点的元数据缓存中查找是否存在与所述请求指令的文件名一致的元数据,若存在,则取出元数据,并将元数据送至客户端;若不存在,则遍历与所述目标主节点连接的从节点,计算与所述目标主节点连接的从节点集合的负载指标,进而选择目标从节点,从目标从节点取出元数据,并将元数据送至客户端。
在本发明的一个实施例中,所述计算与所述目标主节点连接的从节点集合的负载指标,进而选择目标从节点,包括:若与所述目标主节点连接的从节点集合的负载指标大于等于节点集群最小负载阈值,且小于等于节点集群最大负载阈值,则选择负载指标最小的从节点作为目标从节点。
在本发明的一个实施例中,所述利用目标主节点向与目标主节点连接的所有从节点发送日志项,进行数据同步,包括:利用目标主节点向与目标主节点连接的所有从节点发送日志项,并统计从节点向目标主节点发送的成功接收日志项的应答消息数,当应答消息数等于与目标主节点连接的从节点总数时,完成数据同步。
为达上述目的,本发明第二方面实施例提出了一种大数据环境下的元数据管理系统,应用于元数据服务器集群,所述元数据服务器集群包括多个节点,每个节点存储有元数据,所述节点分为主节点和从节点,每个主节点与至少一个从节点连接,所述管理系统包括:
获取模块,用于获取主节点集群、从节点集群和各主节点的存储容量,基于所述主节点集群、从节点集群和各主节点的存储容量获得主节点与从节点映射集合和主节点与哈希槽的映射集合;
心跳判断模块,用于利用心跳机制对所述主节点集群中所有主节点进行超时判断,以使任一主节点与其他主节点建立心跳连接;
指令处理模块,用于获取客户端发送的请求指令,基于所述请求指令的文件名获得目标哈希槽,基于所述目标哈希槽和所述主节点与哈希槽的映射集合确定目标主节点;
控制模块,用于若所述请求指令为读请求,则从所述目标主节点或与所述目标主节点连接的从节点取出元数据,并将元数据送至客户端;还用于若所述请求指令为写请求,则向所述目标主节点中写入元数据,并利用目标主节点向与目标主节点连接的所有从节点发送日志项,进行数据同步。
为达上述目的,本发明第三方面实施例提出了一种大数据环境下的元数据管理设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明第一方面实施例的大数据环境下的元数据管理方法。
为了实现上述目的,本发明第四方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本发明第一方面实施例的大数据环境下的元数据管理方法。
在本发明一个或多个实施例中,应用于元数据服务器集群,元数据服务器集群包括多个节点,每个节点存储有元数据,节点分为主节点和从节点,每个主节点与至少一个从节点连接,管理方法包括:获取主节点集群、从节点集群和各主节点的存储容量,基于主节点集群、从节点集群和各主节点的存储容量获得主节点与从节点映射集合和主节点与哈希槽的映射集合;利用心跳机制对主节点集群中所有主节点进行超时判断,以使任一主节点与其他主节点建立心跳连接;获取客户端发送的请求指令,基于请求指令的文件名获得目标哈希槽,基于目标哈希槽和主节点与哈希槽的映射集合确定目标主节点;若请求指令为读请求,则从目标主节点或与目标主节点连接的从节点取出元数据,并将元数据送至客户端;若请求指令为写请求,则向目标主节点中写入元数据,并利用目标主节点向与目标主节点连接的所有从节点发送日志项,进行数据同步。在这种情况下,将元数据服务器集群分为主节点和从节点,主节点之间通过心跳机制连接在一起,以保证服务器的正常工作,每个主节点与若干从节点连接,当有请求指令时,基于请求指令的文件名获得目标哈希槽,进而确定目标主节点,读请求时从目标主节点或与目标主节点连接的从节点取出元数据,写请求时向目标主节点中写入元数据,并对与目标主节点连接的所有从节点进行数据同步,实现了读请求、写请求处理的分离,保证了集群的负载均衡,另外写请求时对与目标主节点连接的所有从节点的数据同步处理,保障了数据的一致性和安全性。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例所提供的一种大数据环境下的元数据管理方法的流程示意图;
图2为本发明实施例所提供的另一种大数据环境下的元数据管理方法的部分流程示意图;
图3为本发明实施例所提供的请求指令为读请求时的处理流程示意图;
图4为本发明实施例所提供的请求指令为写请求时的处理流程示意图;
图5为本发明实施例所提供的一种大数据环境下的元数据管理系统的框图;
图6为来实现本发明实施例的大数据环境下的元数据管理方法的大数据环境下的元数据管理设备的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明实施例的一些方面相一致的装置和方法的例子。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。还应当理解,本发明中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
本发明提供了一种大数据环境下的元数据管理方法和系统,主要目的在于解决元数据服务器读写请求的负载均衡和数据的一致性的问题。
本发明提供的元数据管理方法,应用于元数据服务器集群,元数据服务器集群包括多个元数据服务器,每个元数据服务器即为一个节点,每个节点存储有元数据,节点分为主节点(也称为主服务器或元数据服务器主节点)和从节点(从服务器或元数据服务器从节点),每个主节点与至少一个从节点连接。
图1为本发明实施例所提供的一种大数据环境下的元数据管理方法的流程示意图。图2为本发明实施例所提供的另一种大数据环境下的元数据管理方法的部分流程示意图。图3为本发明实施例所提供的请求指令为读请求时的处理流程示意图。图4为本发明实施例所提供的请求指令为写请求时的处理流程示意图。
如图1所示,该大数据环境下的元数据管理方法包括以下步骤:
步骤S11,获取主节点集群、从节点集群和各主节点的存储容量,基于主节点集群、从节点集群和各主节点的存储容量获得主节点与从节点映射集合和主节点与哈希槽的映射集合。
在步骤S11中,获取的主节点集群即为元数据服务器主节点集合,元数据服务器主节点集合中包括多个元数据服务器主节点,元数据服务器主节点的数量用符号m表示,则元数据服务器主节点集合Master可以表示为Master={master1,…,masteri,…,masterm}。其中,masteri表示第i个元数据服务器主节点。
在步骤S11中,获取的从节点集群即为元数据服务器从节点集合,元数据服务器从节点集合Slave包括多个元数据服务器从节点,由于每个主节点与至少一个从节点连接,因此可以将元数据服务器从节点集合Slave基于与主节点的连接关系划分为多个从节点子集合,每个从节点子集合中的任一个从节点连接同一个主节点。每个从节点子集合中从节点的数量可以用符号n+1表示,n取自然数,不同从节点子集合的n的取值可以相同也可以不同。以第i个元数据服务器主节点masteri为例,该主节点连接的从节点子集合为Slavei,从节点子集合为Slavei可以表示为Slavei={slavei0,…,slaveij,…,slavein}。其中,slaveij表示与第i个元数据服务器主节点masteri(后续简称主节点masteri)连接的第j个从节点。slavei0~slavein为与第i个元数据服务器主节点masteri连接所有从节点。
在步骤S11中,还可以获取各个主节点的元数据缓存,元数据缓存可以用符号MDHashTable表示。
在步骤S11中,还可以获取从节点集合Slave的最小负载阈值和最大负载阈值,其中,最小负载阈值可以用符号R表示,最大负载阈值可以用符号P表示。
在步骤S11中,还可以获取各个节点对应的存储容量。主节点对应的存储容量可以用符号masterwight表示,则主节点masteri的存储容量用符号masteriwight表示。
在步骤S11中,在获取主节点集群、从节点集群和节点对应存储容量后,还需要构造主节点与哈希槽的映射集合和主节点与从节点映射集合(参见图2)。具体地,基于主节点集群、从节点集群和各主节点的存储容量获得主节点与从节点映射集合和主节点与哈希槽的映射集合,包括:基于主节点集群和从节点集群获得主节点与从节点映射集合;基于各主节点的存储容量计算总存储空间;基于总存储空间和各主节点的存储容量获得各主节点的哈希槽区间;基于主节点集群和各主节点的哈希槽区间获得主节点与哈希槽的映射集合。
在步骤S11中,主节点与从节点映射集合用符号MasterToSlave表示,其可以表示为:
MasterToSlave={(master1,{slave10,…,slave1j,…,slave1n}),…, (masteri,{slavei0,…,slaveij,…,slavein}),…, (masterm,{slavem0,…,slavemj,…,slavemn})} 。
在步骤S11中,主节点与哈希槽的映射集合用符号MasterManager表示。
在步骤S11中,基于各主节点的存储容量计算总存储空间,总存储空间用符号W表示。根据式(1)基于总存储空间和各主节点的存储容量计算各主节点的管理的哈希槽位数,计算哈希槽位数的式(1)满足:
其中,mastericount为主节点masteri的哈希槽位数。
基于各主节点的哈希槽位数可以获得各主节点的哈希槽区间。其中,基于主节点master1的哈希槽位数master1count可以确定主节点master1的哈希槽区间为0~master1count,基于主节点master1的哈希槽位数master1count和主节点master2的哈希槽位数master2count可以确定主节点master2的哈希槽区间为master1count~(master1count+master2count),基于主节点master1的哈希槽位数master1count、主节点master2的哈希槽位数master2count和主节点master3的哈希槽位数master3count可以确定主节点master3的哈希槽区间为(master1count+master2count)~(master1count+master2count++master3count),依次类推可以获得各主节点的哈希槽区间。
为了简化哈希槽区间的表示,用符号a表示主节点的哈希槽区间的左边界,符号b表示主节点的哈希槽区间的右边界,具体地,令a1=0,b1=master1count,则主节点master1的哈希槽区间为[a1,b1),令a2=master1count,b2=master1count+master2count,则主节点master2的哈希槽区间为[a2,b2),令a3=master1count+master2count,b3=master1count+master2count++master3count,则主节点master3的哈希槽区间为[a3,b3),依次类推,主节点masteri的哈希槽区间为[ai,bi),其中,ai=bi-1,bi= master1count+…+mastericount。ai~bi对应主节点masteri的哈希槽区间内的各哈希槽位。主节点masterm的哈希槽区间为[am,bm)。
基于主节点集群和各主节点的哈希槽区间获得主节点与哈希槽的映射集合。主节点与哈希槽的映射集合MasterManager可以表示为:
步骤S12,利用心跳机制对主节点集群中所有主节点进行超时判断,以使任一主节点与其他主节点建立心跳连接。
在步骤S12中,利用心跳机制对主节点集群中所有主节点进行超时判断,以使任一主节点与其他主节点建立心跳连接,包括:选择主节点集群中任一个主节点,判断该主节点的心跳是否超时;若超时,则计算与该主节点连接的所有从节点的负载指标,选择负载指标最小的从节点作为新的主节点,将该新的主节点更新至主节点集群,并与主节点集群中的其他主节点建立心跳连接;若不超时,则该主节点与其他主节点存在心跳连接。
具体地,遍历主节点集群Master,选择主节点集群中任一个主节点进行心跳超时判断,以第i个元数据服务器主节点masteri为例,参见图2,判断主节点masteri心跳是否超时,若主节点masteri心跳超时,则在主节点masteri对应从节点子集合中选取一个从节点作为新的主节点masteri,将其加入主节点集群,并与其他主节点建立心跳连接,若没有超时,说明主节点masteri与其他主节点存在心跳连接,此时判断主节点集群Master是否遍历结束,若否,说明还存在主节点没有进行心跳超时判断,更新i的取值,返回重新判断主节点masteri心跳是否超时,若遍历结束,则进入步骤S13中进行后续处理。
其中,若主节点masteri心跳超时,则在主节点masteri对应从节点子集合中选取一个从节点作为新的主节点masteri,将其加入主节点集群,并与其他主节点建立心跳连接,具体包括:根据元数据服务器主节点与从节点映射集合MasterToSlave获取主节点masteri的从节点子集合Slavei={slavei0,…,slaveij,…,slavein};遍历节点子集合Slavei根据式(2)计算从节点子集合Slavei中所有从节点列表中各项的负载指标。其中从节点子集合Slavei中各从节点包括多项的负载指标,每个从节点包括的负载指标的项数可以用q表示,每个从节点的项数q取值可以相同也可以不同。Tk表示从节点slaveij的第k项负载指标。计算第k项负载指标的式(2)满足:
其中ε12=1,dk是从节点列表项第k项的操作响应延迟,mk是从节点列表项第k项中的inode数目(索引节点inode是存储文件元信息的区域),ε1是操作响应延迟的权重,ε2是inode数目的权重。根据式(3)计算从节点子集合Slavei中从节点slaveij的负载指标Wij,式(3)满足:
从节点子集合Slavei中所有从节点的负载指标中选择最小值,该最小负载指标对应的从节点作为新的主节点masteri,将其加入主节点集群,并与其他主节点建立心跳连接。
步骤S13,获取客户端发送的请求指令,基于请求指令的文件名获得目标哈希槽,基于目标哈希槽和主节点与哈希槽的映射集合确定目标主节点。
在步骤S13中,基于请求指令的文件名获得目标哈希槽,包括:对请求指令的文件名进行哈希处理获得哈希值;基于哈希值的前预设位数获得哈希槽定位;基于哈希槽定位和各主节点的哈希槽区间获得目标哈希槽。
具体地,在步骤S13中,若获取的请求指令用A表示,如图2所示,获取客户端请求A,并获取客户端请求A中的文件名,基于文件名得到哈希槽定位,遍历主节点与哈希槽的映射集合MasterManager,得到满足ap<=position<bp的目标哈希槽,目标哈希槽即为哈希槽区间[ap,bp),并得到目标主节点masterp
其中,文件名可以用符号A.name表示,前预设位数例如为16为,则基于文件名得到哈希槽定位,包括:对文件名A.name进行hash(即哈希处理)获取64位哈希值,并取其前16位,根据公式(4)利用CRC16算法(即循环冗余校验算法)取其结果前16位并对65535取余得到哈希槽定位positon。公式(4)满足:
遍历主节点与哈希槽的映射集合MasterManager,判断哈希槽定位positon所在的区间,从而得到满足ap<=position<bp的哈希槽区间[ap,bp),以及该哈希槽区间对应的目标主节点masterp,p∈[1,m]。
步骤S14,若请求指令为读请求,则从目标主节点或与目标主节点连接的从节点取出元数据,并将元数据送至客户端。
在步骤S14中,从目标主节点或与目标主节点连接的从节点取出元数据,并将元数据送至客户端,包括:在目标主节点的元数据缓存中查找是否存在与请求指令的文件名一致的元数据,若存在,则取出元数据,并将元数据送至客户端;若不存在,则遍历与目标主节点连接的从节点,计算与目标主节点连接的从节点集合的负载指标,进而选择目标从节点,从目标从节点取出元数据,并将元数据送至客户端。
在步骤S14中,计算与目标主节点连接的从节点集合的负载指标,进而选择目标从节点,包括:若与目标主节点连接的从节点集合的负载指标大于等于节点集群最小负载阈值,且小于等于节点集群最大负载阈值,则选择负载指标最小的从节点作为目标从节点。
具体地,若请求指令为读请求时,进入如图3所示的处理过程,该过程包括:判断目标主节点masterp的元数据缓存MDHashTablep是否命中(即在目标主节点的元数据缓存中查找是否存在与请求指令的文件名一致的元数据),若命中(即存在),则从目标主节点masterp的元数据缓存中获取元数据,并将元数据送至客户端,元数据读取流程结束;若没有命中,则到目标主节点相应的从节点中获取出相应的元数据返回给客户端。
其中,到目标主节点相应的从节点中获取出相应的元数据返回给客户端,包括:遍历元数据服务器主节点与从节点映射集合MasterToSlave,获取目标主节点masterp的从节点子集合Slavep={slavep0,…,slavepj,…,slavepn};基于式(2)和式(3)计算得到从节点子集合Slavep中各从节点的负载指标,进而基于式(5)计算得到从节点子集合Slavep的负载指标。式(5)满足:
其中,Ep为目标主节点masterp的从节点子集合Slavep的负载指标,wpj为从节点子集合Slavep的第j个从节点slavepj的负载指标。
若负载指标Ep满足R≤Ep≤P,则从节点子集合Slavep中所有从节点的负载指标中选择最小值,该最小负载指标对应的从节点作为目标从节点,从目标从节点中获取元数据信息返回客户端,元数据信息读取过程结束;若负载指标Ep满足Ep>P,则向从节点子集合Slavep中添加一台服务器,然后返回重新遍历元数据服务器主节点与从节点映射集合计算对应的负载指标,直至负载指标Ep满足R≤Ep≤P,若Ep<R,则删除最小负载指标对应的从节点,然后返回重新遍历元数据服务器主节点与从节点映射集合计算对应的负载指标,直至负载指标Ep满足R≤Ep≤P。
步骤S15,若请求指令为写请求,则向目标主节点中写入元数据,并利用目标主节点向与目标主节点连接的所有从节点发送日志项,进行数据同步。
在步骤S15中,若请求指令为写请求,在向目标主节点中写入元数据之前,需要先确定向目标主节点中写入的元数据所在的目标节点。
具体地,定义向目标主节点中写入的元数据所在的节点为服务节点。服务节点可以是元数据服务器集群中的至少一个节点。获取由服务节点组成的集合为服务节点集合(步骤S11中获取的数据也可以包括服务节点集合),服务节点集合中服务节点的数量为x,服务节点集合S可以表示为S={s1,…,si,…,sx}。还需要获取服务节点的CPU(centralprocessing unit,中央处理器)利用率阈值MAXc, 内存利用率阈值MAXm和网络带宽利用率阈值MAXn、服务节点实时负载比率阈值MAXr(步骤S11中获取的数据也可以包括这四个阈值)。
定义候选服务节点集合Candidate,遍历服务节点集合S={s1,…,si,…,sx},获取各服务节点的CPU 利用率U(Ci)、内存利用率U(Mi)、网络带宽利用率U(Ni)、CPU的平均负载U(Di);如果第i个服务节点si的CPU 利用率U(Ci)、内存利用率U(Mi)、网络带宽利用率U(Ni)满足不等式(6),则将第i个服务节点si加入候选服务节点集合Candidate中。不等式(6)满足:
遍历候选服务节点集合Candidate,获取各候选服务节点cai的CPU处理速度A(Ci)、内存大小A(Mi)、网络吞吐量A(Ni)、磁盘读写速率A(Di)和当前的连接数C(Si),根据公式(7)计算各候选服务节点cai的节点处理能力极值A(Si),根据公式(8)计算各候选服务节点cai的节点实时负载Load(Si),根据公式(9)计算各候选服务节点cai的实时负载比率R(Si)。若候选服务节点cai的实时负载比率R(Si)≥MAXr,则将实时负载比率R(Si)设置为0.9,否则根据式(10)计算出候选服务节点cai的实时权值RW(Si)。基于当前的连接数C(Si)和实时权值RW(Si)相除(即)获得商,从各候选服务节点的商中选择值最小的候选服务节点作为目标节点。其中,式(7)-式(10)满足:
其中,α1234分别为CPU处理速度A(Ci)、内存大小A(Mi)、网络吞吐量A(Ni)、磁盘读写速率A(Di)的权重,β1234分别为CPU 利用率U(Ci)、内存利用率U(Mi)、网络带宽利用率U(Ni)、CPU的平均负载U(Di)的权重。
在步骤S15中,确定目标节点后,从服务节点集合(即服务节点集群)中获取数据存储的物理地址,然后向目标主节点中写入元数据信息(参见图4)。具体地,将元数据信息写入目标主节点的元数据缓存中,并遍历目标主节点masterp的从节点子集合Slavep,获取与目标主节点masterp的连接的从节点数量n。
在步骤S15中,利用目标主节点向与目标主节点连接的所有从节点发送日志项,进行数据同步,包括:利用目标主节点向与目标主节点连接的所有从节点发送日志项,并统计从节点向目标主节点发送的成功接收日志项的应答消息数,当应答消息数等于与目标主节点连接的从节点总数时,完成数据同步。
具体地,如图4所示,向目标主节点masterp的所有的从节点发送日志项log,判断收到的从节点接收成功的消息是否超过半数,若收到超过半数从节点接收成功的消息,则提交日志并向客户端返回成功消息,若没有超过半数,则重新向目标主节点masterp的所有的从节点发送日志项log,另外,在提交日志并向客户端返回成功消息后,为了保证所有从节点的数据一致性,还需要判断是否所有从节点均收到成功消息,若是,说明所有从节点都完成了数据同步,若否,则向未成功接收日志项的从节点重发直至成功接收。
其中,判断收到的从节点接收成功的消息是否超过半数,包括:初始化目标主节点masterp接收其从节点成功接收日志项的应答消息数icount,令icount= 0,判断目标主节点masterp是否收到从节点集群Slavep中所有从节点接收日志项log成功的消息messagepj(0≤j≤n),每接收到一个应答消息则应答消息数加1(即icount++)。若icount<n/2则重新向目标主节点masterp的所有的从节点发送日志项log,若icount≥n/2,则提交日志并将元数据信息以及成功消息返回客户端。
其中,判断是否所有从节点均收到成功消息,包括:判断icount是否等于n,若不等于则继续向未成功同步日志的从节点重发日志项log,每接收到一个从节点的应答消息则加1(即icount++),然后重新判断icount是否等于n,若等于,则元数据信息写入过程结束。
本实施例的大数据环境下的元数据管理方法中,应用于元数据服务器集群,元数据服务器集群包括多个节点,每个节点存储有元数据,节点分为主节点和从节点,每个主节点与至少一个从节点连接,管理方法包括:获取主节点集群、从节点集群和各主节点的存储容量,基于主节点集群、从节点集群和各主节点的存储容量获得主节点与从节点映射集合和主节点与哈希槽的映射集合;利用心跳机制对主节点集群中所有主节点进行超时判断,以使任一主节点与其他主节点建立心跳连接;获取客户端发送的请求指令,基于请求指令的文件名获得目标哈希槽,基于目标哈希槽和主节点与哈希槽的映射集合确定目标主节点;若请求指令为读请求,则从目标主节点或与目标主节点连接的从节点取出元数据,并将元数据送至客户端;若请求指令为写请求,则向目标主节点中写入元数据,并利用目标主节点向与目标主节点连接的所有从节点发送日志项,进行数据同步。在这种情况下,将元数据服务器集群分为主节点和从节点,主节点之间通过心跳机制连接在一起,以保证服务器的正常工作,每个主节点与若干从节点连接,当有请求指令时,基于请求指令的文件名获得目标哈希槽,进而确定目标主节点,读请求时从目标主节点或与目标主节点连接的从节点取出元数据,写请求时向目标主节点中写入元数据,并对与目标主节点连接的所有从节点进行数据同步,实现了读请求、写请求处理的分离,保证了集群的负载均衡,另外写请求时对与目标主节点连接的所有从节点的数据同步处理,保障了数据的一致性和安全性。另外,较目前主流的元数据管理方法,本发明的方法基于主节点的元数据缓存架构,通过日志同步策略完成元数据的更新操作,针对分布式操作,设计并实现了基于两阶段提交的方式来提高元数据读写的效率并保证元数据之间的一致性。具体地,基于分片集群的架构,将元数据服务器分为主服务器和从服务器,若干主服务器之间通过心跳机制连接在一起,保证了服务器的正常工作。每一个主服务器与若干从服务器连接,当有请求连接时,通过该策略将写请求派发给相应的主服务器,将读请求派发给相应的从服务器,实现了读请求、写请求处理的分离,解决了单一元数据服务器的工作压力,采用分片集群的架构,保证了整个元数据服务器集群的负载均衡,解决了元数据服务器集群在高并发场景下的负载均衡问题。写请求完成时,主服务器会向相应的从服务器启动日志同步,保障了数据的一致性和安全性。当读请求发生时首先查询缓存,缓存未命中才移交从服务器处理,一定程度上减少了I/O操作,使用缓存提高了读请求查询效率。并在写请求完成时,开启日志同步工作,保证了集群数据的一致性。在负载较低时,主动关闭一些元数据服务器,达到整体节能的目的。随着负载的增加,再逐步打开元数据服务器对外提供服务。良好设计的动态元数据管理策略保证了服务器加入和退出时的平滑扩展。
下述为本发明系统实施例,可以用于执行本发明方法实施例。对于本发明系统实施例中未披露的细节,请参照本发明方法实施例。
本发明涉及的大数据环境下的元数据管理系统应用于元数据服务器集群,元数据服务器集群包括多个节点,每个节点存储有元数据,节点分为主节点和从节点,每个主节点与至少一个从节点连接。基于本发明的大数据环境下的元数据管理系统能够保证元数据服务器集群的负载均衡和数据的一致性。
请参见图5,图5为本发明实施例所提供的一种大数据环境下的元数据管理系统的框图。该大数据环境下的元数据管理系统10包括获取模块11、心跳判断模块12、指令处理模块13和控制模块14,其中:
获取模块11,用于获取主节点集群、从节点集群和各主节点的存储容量,基于主节点集群、从节点集群和各主节点的存储容量获得主节点与从节点映射集合和主节点与哈希槽的映射集合;
心跳判断模块12,用于利用心跳机制对主节点集群中所有主节点进行超时判断,以使任一主节点与其他主节点建立心跳连接;
指令处理模块13,用于获取客户端发送的请求指令,基于请求指令的文件名获得目标哈希槽,基于目标哈希槽和主节点与哈希槽的映射集合确定目标主节点;
控制模块14,用于若请求指令为读请求,则从目标主节点或与目标主节点连接的从节点取出元数据,并将元数据送至客户端;还用于若请求指令为写请求,则向目标主节点中写入元数据,并利用目标主节点向与目标主节点连接的所有从节点发送日志项,进行数据同步。
可选地,获取模块11,具体用于:基于主节点集群、从节点集群和各主节点的存储容量获得主节点与从节点映射集合和主节点与哈希槽的映射集合,包括:基于主节点集群和从节点集群获得主节点与从节点映射集合;基于各主节点的存储容量计算总存储空间;基于总存储空间和各主节点的存储容量获得各主节点的哈希槽区间;基于主节点集群和各主节点的哈希槽区间获得主节点与哈希槽的映射集合。
可选地,心跳判断模块12,具体用于:利用心跳机制对主节点集群中所有主节点进行超时判断,以使任一主节点与其他主节点建立心跳连接,包括:选择主节点集群中任一个主节点,判断该主节点的心跳是否超时;若超时,则计算与该主节点连接的所有从节点的负载指标,选择负载指标最小的从节点作为新的主节点,将该新的主节点更新至主节点集群,并与主节点集群中的其他主节点建立心跳连接;若不超时,则该主节点与其他主节点存在心跳连接。
可选地,指令处理模块13,具体用于:基于请求指令的文件名获得目标哈希槽,包括:对请求指令的文件名进行哈希处理获得哈希值;基于哈希值的前预设位数获得哈希槽定位;基于哈希槽定位和各主节点的哈希槽区间获得目标哈希槽。
可选地,控制模块14,具体用于:从目标主节点或与目标主节点连接的从节点取出元数据,并将元数据送至客户端,包括:在目标主节点的元数据缓存中查找是否存在与请求指令的文件名一致的元数据,若存在,则取出元数据,并将元数据送至客户端;若不存在,则遍历与目标主节点连接的从节点,计算与目标主节点连接的从节点集合的负载指标,进而选择目标从节点,从目标从节点取出元数据,并将元数据送至客户端。
可选地,控制模块14,具体用于:计算与目标主节点连接的从节点集合的负载指标,进而选择目标从节点,包括:若与目标主节点连接的从节点集合的负载指标大于等于节点集群最小负载阈值,且小于等于节点集群最大负载阈值,则选择负载指标最小的从节点作为目标从节点。
可选地,控制模块14,具体用于:利用目标主节点向与目标主节点连接的所有从节点发送日志项,进行数据同步,包括:利用目标主节点向与目标主节点连接的所有从节点发送日志项,并统计从节点向目标主节点发送的成功接收日志项的应答消息数,当应答消息数等于与目标主节点连接的从节点总数时,完成数据同步。
需要说明的是,前述对大数据环境下的元数据管理方法实施例的解释说明也适用于该实施例的大数据环境下的元数据管理系统,此处不再赘述。
在本发明实施例的大数据环境下的元数据管理系统中,获取模块用于获取主节点集群、从节点集群和各主节点的存储容量,基于主节点集群、从节点集群和各主节点的存储容量获得主节点与从节点映射集合和主节点与哈希槽的映射集合;心跳判断模块用于利用心跳机制对主节点集群中所有主节点进行超时判断,以使任一主节点与其他主节点建立心跳连接;指令处理模块用于获取客户端发送的请求指令,基于请求指令的文件名获得目标哈希槽,基于目标哈希槽和主节点与哈希槽的映射集合确定目标主节点;控制模块用于若请求指令为读请求,则从目标主节点或与目标主节点连接的从节点取出元数据,并将元数据送至客户端;还用于若请求指令为写请求,则向目标主节点中写入元数据,并利用目标主节点向与目标主节点连接的所有从节点发送日志项,进行数据同步。在这种情况下,将元数据服务器集群分为主节点和从节点,主节点之间通过心跳机制连接在一起,以保证服务器的正常工作,每个主节点与若干从节点连接,当有请求指令时,基于请求指令的文件名获得目标哈希槽,进而确定目标主节点,读请求时从目标主节点或与目标主节点连接的从节点取出元数据,写请求时向目标主节点中写入元数据,并对与目标主节点连接的所有从节点进行数据同步,实现了读请求、写请求处理的分离,保证了集群的负载均衡,另外写请求时对与目标主节点连接的所有从节点的数据同步处理,保障了数据的一致性和安全性。另外,较目前主流的元数据管理系统,本发明的系统基于主节点的元数据缓存架构,通过日志同步策略完成元数据的更新操作,针对分布式操作,设计并实现了基于两阶段提交的方式来提高元数据读写的效率并保证元数据之间的一致性。具体地,基于分片集群的架构,将元数据服务器分为主服务器和从服务器,若干主服务器之间通过心跳机制连接在一起,保证了服务器的正常工作。每一个主服务器与若干从服务器连接,当有请求连接时,通过该策略将写请求派发给相应的主服务器,将读请求派发给相应的从服务器,实现了读请求、写请求处理的分离,解决了单一元数据服务器的工作压力,采用分片集群的架构,保证了整个元数据服务器集群的负载均衡,解决了元数据服务器集群在高并发场景下的负载均衡问题。写请求完成时,主服务器会向相应的从服务器启动日志同步,保障了数据的一致性和安全性。当读请求发生时首先查询缓存,缓存未命中才移交从服务器处理,一定程度上减少了I/O操作,使用缓存提高了读请求查询效率。并在写请求完成时,开启日志同步工作,保证了集群数据的一致性。在负载较低时,主动关闭一些元数据服务器,达到整体节能的目的。随着负载的增加,再逐步打开元数据服务器对外提供服务。良好设计的动态元数据管理策略保证了服务器加入和退出时的平滑扩展。
根据本发明的实施例,本发明还提供了一种大数据环境下的元数据管理设备、一种可读存储介质和一种计算机程序产品。
图6为来实现本发明实施例的大数据环境下的元数据管理方法的大数据环境下的元数据管理设备的框图。大数据环境下的元数据管理设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。大数据环境下的元数据管理设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴电子设备和其它类似的计算装置。本发明所示的部件、部件的连接和关系、以及部件的功能仅仅作为示例,并且不意在限制本发明中描述的和/或者要求的本发明的实现。
如图6所示,大数据环境下的元数据管理设备20包括计算单元21,其可以根据存储在只读存储器(ROM)22中的计算机程序或者从存储单元28加载到随机访问存储器(RAM)23中的计算机程序,来执行各种适当的动作和处理。在RAM 23中,还可存储大数据环境下的元数据管理设备20操作所需的各种程序和数据。计算单元21、ROM 22以及RAM 23通过总线24彼此相连。输入/输出(I/O)接口25也连接至总线24。
大数据环境下的元数据管理设备20中的多个部件连接至I/O接口25,包括:输入单元26,例如键盘、鼠标等;输出单元27,例如各种类型的显示器、扬声器等;存储单元28,例如磁盘、光盘等,存储单元28与计算单元21通信连接;以及通信单元29,例如网卡、调制解调器、无线通信收发机等。通信单元29允许大数据环境下的元数据管理设备20通过诸如因特网的计算机网络和/或各种电信网络与其他大数据环境下的元数据管理设备交换信息/数据。
计算单元21可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元21的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元21执行上述所描述的各个方法和处理,例如大数据环境下的元数据管理方法。例如,在一些实施例中,大数据环境下的元数据管理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元28。在一些实施例中,计算机程序的部分或者全部可以经由ROM 22和/或通信单元29而被载入和/或安装到大数据环境下的元数据管理设备20上。当计算机程序加载到RAM 23并由计算单元21执行时,可以执行上述描述的大数据环境下的元数据管理方法的一个或多个步骤。备选地,在其他实施例中,计算单元21可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行大数据环境下的元数据管理方法。
本发明中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑电子设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或大数据环境下的元数据管理设备使用或与指令执行系统、装置或大数据环境下的元数据管理设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或大数据环境下的元数据管理设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存电子设备、磁储存电子设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称 "VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明公开的技术方案所期望的结果,本发明在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种大数据环境下的元数据管理方法,其特征在于,应用于元数据服务器集群,所述元数据服务器集群包括多个节点,每个节点存储有元数据,所述节点分为主节点和从节点,每个主节点与至少一个从节点连接,所述管理方法包括:
获取主节点集群、从节点集群和各主节点的存储容量,基于所述主节点集群、从节点集群和各主节点的存储容量获得主节点与从节点映射集合和主节点与哈希槽的映射集合;
利用心跳机制对所述主节点集群中所有主节点进行超时判断,以使任一主节点与其他主节点建立心跳连接;
获取客户端发送的请求指令,基于所述请求指令的文件名获得目标哈希槽,基于所述目标哈希槽和所述主节点与哈希槽的映射集合确定目标主节点;
若所述请求指令为读请求,则从所述目标主节点或与所述目标主节点连接的从节点取出元数据,并将元数据送至客户端;
若所述请求指令为写请求,则向所述目标主节点中写入元数据,并利用目标主节点向与目标主节点连接的所有从节点发送日志项,进行数据同步。
2.根据权利要求1所述的大数据环境下的元数据管理方法,其特征在于,所述基于所述主节点集群、从节点集群和各主节点的存储容量获得主节点与从节点映射集合和主节点与哈希槽的映射集合,包括:
基于所述主节点集群和所述从节点集群获得主节点与从节点映射集合;
基于所述各主节点的存储容量计算总存储空间;基于所述总存储空间和各主节点的存储容量获得各主节点的哈希槽区间;基于所述主节点集群和所述各主节点的哈希槽区间获得主节点与哈希槽的映射集合。
3.根据权利要求2所述的大数据环境下的元数据管理方法,其特征在于,所述利用心跳机制对所述主节点集群中所有主节点进行超时判断,以使任一主节点与其他主节点建立心跳连接,包括:
选择所述主节点集群中任一个主节点,判断该主节点的心跳是否超时;
若超时,则计算与该主节点连接的所有从节点的负载指标,选择负载指标最小的从节点作为新的主节点,将该新的主节点更新至所述主节点集群,并与所述主节点集群中的其他主节点建立心跳连接;
若不超时,则该主节点与其他主节点存在心跳连接。
4.根据权利要求3所述的大数据环境下的元数据管理方法,其特征在于,所述基于所述请求指令的文件名获得目标哈希槽,包括:
对所述请求指令的文件名进行哈希处理获得哈希值;
基于所述哈希值的前预设位数获得哈希槽定位;
基于所述哈希槽定位和所述各主节点的哈希槽区间获得目标哈希槽。
5.根据权利要求4所述的大数据环境下的元数据管理方法,其特征在于,所述从所述目标主节点或与所述目标主节点连接的从节点取出元数据,并将元数据送至客户端,包括:
在所述目标主节点的元数据缓存中查找是否存在与所述请求指令的文件名一致的元数据,若存在,则取出元数据,并将元数据送至客户端;
若不存在,则遍历与所述目标主节点连接的从节点,计算与所述目标主节点连接的从节点集合的负载指标,进而选择目标从节点,从目标从节点取出元数据,并将元数据送至客户端。
6.根据权利要求5所述的大数据环境下的元数据管理方法,其特征在于,所述计算与所述目标主节点连接的从节点集合的负载指标,进而选择目标从节点,包括:
若与所述目标主节点连接的从节点集合的负载指标大于等于节点集群最小负载阈值,且小于等于节点集群最大负载阈值,则选择负载指标最小的从节点作为目标从节点。
7.根据权利要求6所述的大数据环境下的元数据管理方法,其特征在于,所述利用目标主节点向与目标主节点连接的所有从节点发送日志项,进行数据同步,包括:
利用目标主节点向与目标主节点连接的所有从节点发送日志项,并统计从节点向目标主节点发送的成功接收日志项的应答消息数,当应答消息数等于与目标主节点连接的从节点总数时,完成数据同步。
8.一种大数据环境下的元数据管理系统,其特征在于,应用于元数据服务器集群,所述元数据服务器集群包括多个节点,每个节点存储有元数据,所述节点分为主节点和从节点,每个主节点与至少一个从节点连接,所述管理系统包括:
获取模块,用于获取主节点集群、从节点集群和各主节点的存储容量,基于所述主节点集群、从节点集群和各主节点的存储容量获得主节点与从节点映射集合和主节点与哈希槽的映射集合;
心跳判断模块,用于利用心跳机制对所述主节点集群中所有主节点进行超时判断,以使任一主节点与其他主节点建立心跳连接;
指令处理模块,用于获取客户端发送的请求指令,基于所述请求指令的文件名获得目标哈希槽,基于所述目标哈希槽和所述主节点与哈希槽的映射集合确定目标主节点;
控制模块,用于若所述请求指令为读请求,则从所述目标主节点或与所述目标主节点连接的从节点取出元数据,并将元数据送至客户端;还用于若所述请求指令为写请求,则向所述目标主节点中写入元数据,并利用目标主节点向与目标主节点连接的所有从节点发送日志项,进行数据同步。
9.一种大数据环境下的元数据管理设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的大数据环境下的元数据管理方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行根据权利要求1-7中任一项所述的大数据环境下的元数据管理方法。
CN202211602445.8A 2022-12-14 2022-12-14 一种大数据环境下的元数据管理方法及系统 Active CN115665159B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211602445.8A CN115665159B (zh) 2022-12-14 2022-12-14 一种大数据环境下的元数据管理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211602445.8A CN115665159B (zh) 2022-12-14 2022-12-14 一种大数据环境下的元数据管理方法及系统

Publications (2)

Publication Number Publication Date
CN115665159A CN115665159A (zh) 2023-01-31
CN115665159B true CN115665159B (zh) 2023-04-28

Family

ID=85023390

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211602445.8A Active CN115665159B (zh) 2022-12-14 2022-12-14 一种大数据环境下的元数据管理方法及系统

Country Status (1)

Country Link
CN (1) CN115665159B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115858419B (zh) * 2023-02-16 2023-07-14 苏州浪潮智能科技有限公司 元数据管理方法、装置、设备、服务器及可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105187517A (zh) * 2015-08-20 2015-12-23 浪潮(北京)电子信息产业有限公司 一种实现元数据集群的方法及元数据集群
CN105426439A (zh) * 2015-11-05 2016-03-23 腾讯科技(深圳)有限公司 一种元数据的处理方法和装置
WO2018036148A1 (zh) * 2016-08-23 2018-03-01 东方网力科技股份有限公司 一种服务器集群系统
CN108206779A (zh) * 2016-12-16 2018-06-26 北京金山云网络技术有限公司 一种集群访问系统、方法及装置
CN108509540A (zh) * 2018-03-16 2018-09-07 中国银行股份有限公司 基于redis集群的多键值命令处理方法及系统
CN110351313A (zh) * 2018-04-02 2019-10-18 武汉斗鱼网络科技有限公司 数据缓存方法、装置、设备及存储介质
US10901819B1 (en) * 2019-08-11 2021-01-26 Paypal, Inc. Distributed queueing over a Redis cluster

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105187517A (zh) * 2015-08-20 2015-12-23 浪潮(北京)电子信息产业有限公司 一种实现元数据集群的方法及元数据集群
CN105426439A (zh) * 2015-11-05 2016-03-23 腾讯科技(深圳)有限公司 一种元数据的处理方法和装置
WO2018036148A1 (zh) * 2016-08-23 2018-03-01 东方网力科技股份有限公司 一种服务器集群系统
CN108206779A (zh) * 2016-12-16 2018-06-26 北京金山云网络技术有限公司 一种集群访问系统、方法及装置
CN108509540A (zh) * 2018-03-16 2018-09-07 中国银行股份有限公司 基于redis集群的多键值命令处理方法及系统
CN110351313A (zh) * 2018-04-02 2019-10-18 武汉斗鱼网络科技有限公司 数据缓存方法、装置、设备及存储介质
US10901819B1 (en) * 2019-08-11 2021-01-26 Paypal, Inc. Distributed queueing over a Redis cluster

Also Published As

Publication number Publication date
CN115665159A (zh) 2023-01-31

Similar Documents

Publication Publication Date Title
US10719253B2 (en) Efficient compression of data in storage systems through offloading computation to storage devices
US8793227B2 (en) Storage system for eliminating duplicated data
CN106066896B (zh) 一种应用感知的大数据重复删除存储系统及方法
US10831735B2 (en) Processing device configured for efficient generation of a direct mapped hash table persisted to non-volatile block memory
US9052824B2 (en) Content addressable stores based on sibling groups
US9767138B2 (en) In-database sharded queue for a shared-disk database
US9875259B2 (en) Distribution of an object in volatile memory across a multi-node cluster
US20160350302A1 (en) Dynamically splitting a range of a node in a distributed hash table
JP2015528603A (ja) 集約/グループ化動作:ハッシュテーブル法のハードウェア実装
CN110908589B (zh) 数据文件的处理方法、装置、系统和存储介质
US20210263664A1 (en) Disk array enclosure with metadata journal
US20170344546A1 (en) Code dispersion hash table-based map-reduce system and method
US9647905B1 (en) System and method for optimized management of statistics counters, supporting lock-free updates, and queries for any to-the-present time interval
WO2022063059A1 (zh) 键值存储系统的数据管理方法及其装置
CN115665159B (zh) 一种大数据环境下的元数据管理方法及系统
CN110069431A (zh) 基于RDMA和HTM的弹性Key-Value键值对数据存储方法
US9232000B1 (en) Method and system for balancing load across target endpoints on a server and initiator endpoints accessing the server
WO2019127021A1 (zh) 存储系统中存储设备的管理方法及装置
US20200065249A1 (en) System and method for adaptive cache
US8549274B2 (en) Distributive cache accessing device and method for accelerating to boot remote diskless computers
EP3507699B1 (en) Method and systems for master establishment using service-based statistics
CN114281989A (zh) 基于文本相似度的数据去重方法、装置及存储介质和服务器
CN113867627A (zh) 一种存储系统性能优化方法及系统
US8566521B2 (en) Implementing cache offloading
US11256628B2 (en) Volatile read cache in a content addressable storage system

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