本发明涉及元数据在分布式系统中的管理方法,包含使用改进的一致性hash算法对元数据进行映射,并利用前缀树的方式对元数据进行存储以减少内存空间。
背景技术:
1、元数据是用来描述数据的一种特殊数据,如在文件系统中,元数据是描述文件属性的数据,其包括文件目录内容,文件大小以及文件指针,元数据包含了从文件名到记录数据的位置情况。
2、随着互联网的发展和多方面的数字化转型,大量的应用都产生了海量的数据,如图片数据和系统日志数据,这些海量数据需要大量的存储资源来存储和管理数据。为了更好的对这些数据进行管理,将这些图片资源和日志数据进行压缩存储在文件系统中,并由操作系统去组织这些文件,最后将资源元数据存储到一些结构化的数据库当中,由数据库充当文件到资源的映射工具。因此,海量元数据的管理成为了以文件系统为存储介质的系统的一大难点。
3、分布式元数据管理常用的方法有:静态子树分区方法,适用于元数据查找较为频繁的场景,当元数据动态增加时会使得分布式元数据服务器(metadata server)之间的负载不均衡。动态子树分区方法,子树动态调正策略使得mds之间通信会大大增加,系统性能会有一定的影响。hash映射方法:数据特征相似时,存在数据“倾斜”现象,导致mds之间负载不均匀问题。
4、为了应对单体数据库面对海量数据的访问压力,采用多数据库的集群方式,减轻单体数据库的访问,但是这样的做法虽然减少了每个数据库访问的压力,但是也导致了数据的冗余,在根本上没有解决海量数据对于数据库性能的影响。因此为了从根本解决海量数据给数据库造成的影响,就需要减少单个数据库的数据量才能改善性能,所以采用了数据分片存储,海量的数据分片存储在数据库集群当中,减少单体数据库的数据量,数据分片针对的是不同的元数据之间采用分片存储而不是元数据之间分片,这样的做法从而缓解了数据库的压力,进而提升元数据查询效率,但是也导致了系统的复杂性大大提升,需要解决分片数据所带来的分布式事务的问题,数据采用何种分片策略和数据分片后的复杂定位等问题。
技术实现思路
1、本发明根据现有技术的不足,针对应用生成的海量元数据,提出了一种基于内存与前缀树相结合的高效分布式元数据管理方法,为海量的元数据提供高效的存储和查询方案。
2、本发明包括以下两个阶段:
3、第一个阶段:通过改进的一致性hash来定位元数据所在的分布式元数据服务器mds;所述的改进的一致性hash包含:mds对象集合、hash环和每个mds所指向的元数据标识桶集合key bucket。
4、第二个阶段:从定位到的分布式元数据服务器mds中获取相对应的元数据,通过前缀树来共享所有元数据key相同的部分,将元数据所在的地址存储到相对应的前缀树的节点上。
5、与现有的技术相比,本发明的优势在于:
6、1.通过基于内存的形式,其操作的效率会远高于传统的io方式,并且查找和添加都使用了二分查找,在查找和添加的性能方面大大提升。
7、2.通过mds节点的平衡因子,来解决元数据分布的均匀性,使得元数据能尽可能的均匀分布在各个mds节点,不会过多的导致某个mds节点的负载过高产生倾斜问题,提升了元数据管理的性能。
8、3.以高效的前缀树去存储实际的元数据索引,通过索引去直接从磁盘中获取该元数据,利用了小量的空间换取了效率。
1.一种内存与前缀树相结合的高效分布式元数据管理方法,其特征在于:
2.根据权利要求1所述的一种内存与前缀树相结合的高效分布式元数据管理方法,其特征在于:所述的元数据标识桶集合key bucket包含8字节的元数据key的hash code,1字节的校验码和1字节的mds序号。
3.根据权利要求2所述的一种内存与前缀树相结合的高效分布式元数据管理方法,其特征在于:所述的元数据标识桶集合 key bucket采用二分查找的方式进行数据的定位。
4.根据权利要求1所述的一种内存与前缀树相结合的高效分布式元数据管理方法,其特征在于:在第一阶段前还包括当读请求到达后,通过压缩布隆过滤器对元数据key进行初步的判断:
5.根据权利要求4所述的一种内存与前缀树相结合的高效分布式元数据管理方法,其特征在于:所述压缩布隆过滤器实现方式为:
6.根据权利要求4所述的一种内存与前缀树相结合的高效分布式元数据管理方法,其特征在于:在初步认定存在上述元数据key所对应的元数据之后,则通过改进的一致性hash检索上述元数据key所在的分布式元数据服务器mds。
7.根据权利要求1所述的一种内存与前缀树相结合的高效分布式元数据管理方法,其特征在于:
8.根据权利要求4所述的一种内存与前缀树相结合的高效分布式元数据管理方法,其特征在于:
9.根据权利要求7所述的一种内存与前缀树相结合的高效分布式元数据管理方法,其特征在于: