CN105550371A - 一种面向大数据环境的元数据组织方法和系统 - Google Patents
一种面向大数据环境的元数据组织方法和系统 Download PDFInfo
- Publication number
- CN105550371A CN105550371A CN201610056156.0A CN201610056156A CN105550371A CN 105550371 A CN105550371 A CN 105550371A CN 201610056156 A CN201610056156 A CN 201610056156A CN 105550371 A CN105550371 A CN 105550371A
- Authority
- CN
- China
- Prior art keywords
- file
- distributed code
- global
- directory
- 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.)
- Pending
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种面向大数据环境的元数据组织方法,包括:客户端接收来自用户的文件创建请求,将该文件创建请求发送到索引服务器,索引服务器根据创建文件请求中待创建文件的绝对路径获取对应文件的父目录的全局ID和分布编码列表,根据父目录的全局ID和待创建文件的文件名得到键值对的键,根据该键保存待创建文件的文件索引信息,并获得用来存储元数据信息的分布编码,其中如果分布编码为新增的或者父目录分布编码列表中存在超过一个分布编码,则使用布隆过滤器和文件的全局ID更新分布编码的位图。本发明能够解决现有方法中为保证元数据的访问局部性造成的大目录元数据集中存储的负载不均衡的技术问题。
Description
技术领域
本发明属于分布式文件系统技术领域,更具体地,涉及一种面向大数据环境的元数据组织方法和系统。
背景技术
随着大数据时代的到来,数据的规模和数量都在不断增长,现有的分布式文件系统管理的元数据规模和复杂性也在不断的增大。最近的研究显示,分布式文件系统管理的元数据将超过十亿,而且元数据操作占整个系统的操作比例的50%-80%。此外,系统中目录包含的文件数量并不均匀,其中90%的目录中包含少于128个文件,而少数目录拥有超过百万的文件。这些特征给大数据环境下的元数据管理带来很大的挑战。
现有的分布文件系统采用了不同的元数据管理方法,例如,NFS,HDFS2采用了静态子树划分的元数据管理方法,Ceph采用动态子树划分的元数据管理方法,Lustre采用了基于目录划分的哈希方法,GIGA+采用可扩展哈希算法对目录进行分片的方法。综上所述,静态子树划分方法不能适应负载变化,容易出现访问热点的问题,动态子树划分方法由于其适应性和扩展性存在着滞后因素,因而当系统出现访问热点时,其负载比较集中,从而会影响性能。而基于目录划分的可扩展哈希方法则能够以更小的粒度来组织和分布元数据,从而更好的适应系统规模的扩展,但该方法存在重命名操作时会导致元数据的迁移,以及大目录元数据集中存储造成的负载不均衡等问题。GIGA+利用位图缓存文件的索引和映射信息,避免同步开销,提高了元数据的并发访问性能,适合于单目录下大量文件的访问,但该方法每次对目录划分时都会造成原有一半的元数据被迁移,对系统性能造成影响。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种面向大数据环境的元数据组织方法和系统,其目的在于,通过提出一种新的元数据索引构建方法,解决现有方法因重命名操作带来的元数据迁移问题,同时能够快速确定元数据在后端存储集群中位置,并减少索引占用的内存空间;此外,本方法通过提出一种新的元数据分布方法,即保证了元数据的访问局部性,又解决了现有方法中大目录中元数据集中存储造成的负载不均衡的问题,提高了系统的可扩展性。
为实现上述目的,按照本发明的一个方面,提供了一种面向大数据环境的元数据组织方法,包括以下步骤:
(1)客户端接收来自用户的元数据请求,并判断该元数据请求的类型,是文件创建请求,文件查询请求,目录创建请求,目录查询请求,还是文件和目录重命名请求,如果是文件创建请求,则客户端将该文件创建请求发送到索引服务器,并进入步骤(2),如果是文件查询请求,则客户端将该文件查询请求发送到索引服务器,进入步骤(5),如果是目录创建请求,则转入步骤(9),如果是列表目录元数据请求,则转入步骤(12),如果是文件和目录重命名请求,则转入步骤(15);
(2)索引服务器根据创建文件请求中待创建文件的绝对路径获取对应文件的父目录的全局ID和分布编码列表,根据父目录的全局ID和待创建文件的文件名得到键值对的键,根据该键保存待创建文件的文件索引信息,并获得用来存储元数据信息的分布编码,其中如果分布编码为新增的或者父目录分布编码列表中存在超过一个分布编码,则使用布隆过滤器和文件的全局ID更新分布编码的位图,将分布编码和分布编码对应的后端存储节点的IP地址和端口号,以及待创建文件的全局ID发送给客户端;
(3)客户端将待创建文件的全局ID、分布编码、以及待创建文件的元数据信息发送到该IP地址和端口号对应的后端存储节点;
(4)后端存储节点根据待创建文件的全局ID以键值对形式保存待创建文件的元数据信息,再将此键值对加入到桶号为分布编码的哈希桶中,并向客户端返回文件元数据创建成功的通知;
(5)索引服务器根据查询文件请求中待查询文件的绝对路径获取对应文件的全局ID,以及对应文件的父目录的分布编码列表,获取存储文件元数据时可能使用的分布编码,再根据可能使用的分布编码和后端存储节点名空间表计算得到对应的后端存储节点IP地址和端口号,并将所有后端存储节点IP地址和端口号信息列表、以及待查询文件的全局ID发送到客户端;
(6)客户端根据返回的IP地址和端口号列表依次将待查询文件的全局ID发送给后端存储节点;
(7)后端存储节点根据待查询文件的全局ID为键查找是否存在元数据信息,如果存在,则返回元数据信息给客户端,然后转入步骤(8),否则返回未找到元数据的提示信息给客户端;
(8)客户端判断返回的元数据信息是否是元数据,如果是,则过程结束,否则根据剩下的IP地址和端口号将待查询文件的全局ID发送给后端存储节点,并重复执行步骤(7),直至找到元数据为止。
(9)索引服务器根据创建目录请求中待创建目录的绝对路径获取对应目录的父目录的全局ID和分布编码列表,根据父目录的全局ID和待创建目录的目录名得到键值对的键,根据该键保存待创建目录的目录索引信息,并获得用来存储目录元数据信息的分布编码,其中如果分布编码为新增的或者父目录分布编码列表中存在超过一个分布编码,则使用布隆过滤器和目录全局ID更新分布编码的位图,将分布编码和分布编码对应的后端存储节点的IP地址和端口号,以及待创建目录的全局ID发送给客户端;
(10)客户端将待创建目录的全局ID、分布编码、以及待创建目录的元数据信息发送到该IP地址和端口号对应的后端存储节点;
(11)后端存储节点根据待创建目录的全局ID以键值对形式保存待创建目录的元数据信息,再将此键值对加入到桶号为分布编码的哈希桶中,并向客户端返回目录元数据创建成功的通知。
(12)索引服务器根据待列表目录请求中目录的绝对路径获取待列表目录的分布编码列表,根据分布编码列表和后端存储名空间表计算出所有分布编码对应的后端存储节点IP地址和端口号,并将分布编码列表及分布编码对应的后端存储节点IP地址和端口号信息发送到客户端;
(13)客户端根据返回的IP地址和端口号列表依次将对应的分布编码发送给后端存储节点;
(14)后端存储节点通过分布编码找到对应桶号的哈希桶,并将哈希桶内的所有元数据信息返回给客户端;
(15)索引服务器根据重命名文件或目录的请求中的待重命名的文件或目录的绝对路径和新名称得到待重命名文件或目录的全局ID和对应的父目录的分布编码列表,并用新名称重新保存文件或目录索引节点信息,获得存储文件或目录的分布编码,将分布编码对应的后端节点IP地址和端口号,新文件或目录名,以及新文件或目录的全局ID返回给客户端;
(16)客户端根据返回的IP地址和端口号列表依次将待重命名目录的全局ID和新目录名发送给后端存储节点;
(17)后端存储节点以目录的全局ID为键找到目录的元数据信息,如果找到,则使用新名称更新目录元数据中的旧名称,并向客户端返回重命名目录成功的通知,然后转入步骤(18),否则返回未找到元数据的提示信息给客户端,并转入步骤(18);
(18)客户端判断重命名是否成功,如果成功,则重命名过程结束,否则根据剩下的IP地址和端口号将待重命名目录的全局ID和新目录名发送给后端存储节点,并重复执行步骤(17),直至重命名元数据成功为止。
优选地,步骤(2)包括以下子步骤:
(2-1)根据待创建文件的绝对路径获取对应文件的父目录的全局ID和分布编码列表;
(2-2)根据父目录的全局ID和待创建文件的文件名得到键值对的键,根据该键保存待创建文件的文件索引信息;
(2-3)获取用于存储文件元数据信息的分布编码,计算父目录的分布编码列表中最后一个分布编码在后端存储节点名空间表中对应的后端存储节点信息,并判断该后端存储节点是否具有继续存储元数据的能力,如果有,转入步骤(2-4),否则转入步骤(2-5);
(2-4)查看父目录分布编码列表的长度是否超过1,如果超过,则获得最后一位分布编码对应的位图,如图4所示,表示了分布编码和位图的对应关系,并使用布隆过滤器和待创建文件的全局ID更新位图,转入步骤(2-6);如果未超过,转入步骤(2-6);
(2-5)为父目录创建新的分布编码,并将其插入分布编码列表中,并为新的分布编码创建位图,并使用布隆过滤器和待创建文件的全局ID更新位图;
(2-6)将使用的分布编码和分布编码对应的后端存储节点的IP地址和端口号,以及待创建文件的全局ID发送给客户端。
优选地,步骤(5)包括以下子步骤;
(5-1)根据待查询文件的绝对路径获取对应文件的全局ID;
(5-2)根据待查询文件的绝对路径获取对应文件父目录的分布编码;
(5-3)根据父目录的分布编码列表获取存储文件元数据时可能使用的分布编码,并判断父目录的分布编码列表长度是否超过1,如果超过则获取分布编码列表中分布编码对应的位图,根据布隆过滤器和待查询文件的全局ID计算的结果与所有分布编码的位图对比,并筛选出创建文件时可能使用的分布编码,然后转入步骤(5-4);否则转入步骤(5-4);
(5-4)根据筛选后的分布编码列表获得分布编码对应的后端存储节点的IP地址和端口号列表,转入步骤(5-5);
(5-5)将后端存储节点IP地址和端口号列表,以及待查询文件的全局ID发送到客户端。
优选地,步骤(9)包括以下子步骤;
(9-1)根据待创建目录的绝对路径获取对应目录的父目录的全局ID和分布编码列表;
(9-2)根据父目录的全局ID和待创建目录的目录名得到键值对的键,根据该键保存待创建目录的目录索引信息;
(9-3)获取用于存储目录元数据信息的分布编码,计算父目录的分布编码列表中最后一个分布编码在后端存储节点名空间表中对应的后端存储节点信息,判断该后端存储节点是否具有继续存储元数据的能力,如果有,则转入步骤(9-4),否则转入步骤(9-5);
(9-4)查看父目录分布编码列表的长度是否超过1,如果超过,则需获得最后一位分布编码对应的位图,并使用布隆过滤器和待创建文件的全局ID更新位图,然后转入步骤(9-6);如果未超过,则转入步骤(9-6);
(9-5)为父目录创建新的分布编码,并将其插入分布编码列表中,并为新的分布编码创建位图,并使用布隆过滤器和待创建文件的全局ID更新位图;
(9-6)将使用的分布编码和分布编码对应的后端存储节点的IP地址和端口号,以及待创建目录的全局ID发送给客户端。
优选地,步骤(12)包括以下子步骤;
(12-1)根据待列表目录的绝对路径获取对应目录的分布编码列表;
(12-2)根据分布编码列表和后端存储名空间表计算出所有分布编码对应的后端存储节点IP地址和端口号。
优选地,步骤(15)包括以下子步骤:
(15-1)根据待重命名目录的绝对路径得到此目录的全局ID;
(15-2)根据待重命名目录的绝对路径获取对应目录的父目录的全局ID和分布编码列表;
(15-3)根据父目录的全局ID和新目录名组合成新键,重新保存待重命名目录索引节点信息,并删除旧目录名对应的目录索引节点信息;
(15-4)获取用于存储目录元数据信息的分布编码,根据父目录的分布编码列表获取存储文件元数据时可能使用的分布编码,并判断父目录的分布编码列表长度是否超过1,如果是则需获取分布编码列表中分布编码对应的位图,根据布隆过滤器和待查询文件的全局ID计算的结果与所有分布编码的位图对比,并筛选出创建文件时可能使用的分布编码,然后转入步骤(15-5);如果未超过,则转入步骤(15-5);
(15-5)根据筛选后的分布编码列表获得分布编码对应的后端存储节点的IP地址和端口号列表,转入步骤(15-6);
(15-6)将分布编码对应的后端节点IP地址和端口号,新目录名,以及待重命名目录的全局ID返回给客户端。
按照本发明的另一方面,提供了一种面向大数据环境的元数据组织系统,包括:
第一模块,其设置于客户端中,用于接收来自用户的元数据请求,并判断该元数据请求的类型,是文件创建请求,文件查询请求,目录创建请求,目录查询请求,还是文件和目录重命名请求,如果是文件创建请求,则客户端将该文件创建请求发送到索引服务器,并进入第二模块,如果是文件查询请求,则客户端将该文件查询请求发送到索引服务器,进入第五模块,如果是目录创建请求,则转入第九模块,如果是列表目录元数据请求,则转入第十二模块,如果是文件和目录重命名请求,则转入第十五模块;
第二模块,其设置于索引服务器中,用于根据创建文件请求中待创建文件的绝对路径获取对应文件的父目录的全局ID和分布编码列表,根据父目录的全局ID和待创建文件的文件名得到键值对的键,根据该键保存待创建文件的文件索引信息,并获得用来存储元数据信息的分布编码,其中如果分布编码为新增的或者父目录分布编码列表中存在超过一个分布编码,则使用布隆过滤器和文件的全局ID更新分布编码的位图,将分布编码和分布编码对应的后端存储节点的IP地址和端口号,以及待创建文件的全局ID发送给客户端;
第三模块,其设置于客户端中,用于将待创建文件的全局ID、分布编码、以及待创建文件的元数据信息发送到该IP地址和端口号对应的后端存储节点;
第四模块,其设置于后端存储节点中,用于根据待创建文件的全局ID以键值对形式保存待创建文件的元数据信息,再将此键值对加入到桶号为分布编码的哈希桶中,并向客户端返回文件元数据创建成功的通知;
第五模块,其设置于索引服务器中,用于根据查询文件请求中待查询文件的绝对路径获取对应文件的全局ID,以及对应文件的父目录的分布编码列表,获取存储文件元数据时可能使用的分布编码,再根据可能使用的分布编码和后端存储节点名空间表计算得到对应的后端存储节点IP地址和端口号,并将所有后端存储节点IP地址和端口号信息列表、以及待查询文件的全局ID发送到客户端;
第六模块,其设置于客户端中,用于根据返回的IP地址和端口号列表依次将待查询文件的全局ID发送给后端存储节点;
第七模块,其设置于后端存储节点中,用于根据待查询文件的全局ID为键查找是否存在元数据信息,如果存在,则返回元数据信息给客户端,然后转入第八模块,否则返回未找到元数据的提示信息给客户端;
第八模块,其设置于客户端中,用于判断返回的元数据信息是否是元数据,如果是,则过程结束,否则根据剩下的IP地址和端口号将待查询文件的全局ID发送给后端存储节点,并重复执行第七模块,直至找到元数据为止。
第九模块,其设置于索引服务器中,用于根据创建目录请求中待创建目录的绝对路径获取对应目录的父目录的全局ID和分布编码列表,根据父目录的全局ID和待创建目录的目录名得到键值对的键,根据该键保存待创建目录的目录索引信息,并获得用来存储目录元数据信息的分布编码,其中如果分布编码为新增的或者父目录分布编码列表中存在超过一个分布编码,则使用布隆过滤器和目录全局ID更新分布编码的位图,将分布编码和分布编码对应的后端存储节点的IP地址和端口号,以及待创建目录的全局ID发送给客户端;
第十模块,其设置于客户端中,用于将待创建目录的全局ID、分布编码、以及待创建目录的元数据信息发送到该IP地址和端口号对应的后端存储节点;
第十一模块,其设置于后端存储节点中,用于根据待创建目录的全局ID以键值对形式保存待创建目录的元数据信息,再将此键值对加入到桶号为分布编码的哈希桶中,并向客户端返回目录元数据创建成功的通知。
第十二模块,其设置于索引服务器中,用于根据待列表目录请求中目录的绝对路径获取待列表目录的分布编码列表,根据分布编码列表和后端存储名空间表计算出所有分布编码对应的后端存储节点IP地址和端口号,并将分布编码列表及分布编码对应的后端存储节点IP地址和端口号信息发送到客户端;
第十三模块,其设置于客户端中,用于根据返回的IP地址和端口号列表依次将对应的分布编码发送给后端存储节点;
第十四模快,其设置于后端存储节点中,用于通过分布编码找到对应桶号的哈希桶,并将哈希桶内的所有元数据信息返回给客户端;
第十五模块,其设置于索引服务器中,用于根据重命名文件或目录的请求中的待重命名的文件或目录的绝对路径和新名称得到待重命名文件或目录的全局ID和对应的父目录的分布编码列表,并用新名称重新保存文件或目录索引节点信息,获得存储文件或目录的分布编码,将分布编码对应的后端节点IP地址和端口号,新文件或目录名,以及新文件或目录的全局ID返回给客户端;
第十六模块,其设置于客户端中,用于根据返回的IP地址和端口号列表依次将待重命名目录的全局ID和新目录名发送给后端存储节点;
第十七模块,其设置于后端存储节点中,用于以目录的全局ID为键找到目录的元数据信息,如果找到,则使用新名称更新目录元数据中的旧名称,并向客户端返回重命名目录成功的通知,然后转入第十八模块,否则返回未找到元数据的提示信息给客户端,并转入第十八模块;
第十八模块,其设置于客户端中,用于判断重命名是否成功,如果成功,则重命名过程结束,否则根据剩下的IP地址和端口号将待重命名目录的全局ID和新目录名发送给后端存储节点,并重复执行第十七模块,直至重命名元数据成功为止。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)本发明能够解决现有方法中为保证元数据的访问局部性造成的大目录元数据集中存储的负载不均衡的技术问题:由于采用了步骤(2-3)、步骤(4)、步骤(9-3)和步骤(11),文件及目录的元数据根据一致性哈希算法和父目录的分布编码列表保存到后端存储节点,当目录较小时目录下的文件和子目录的元数据保存在同一后端存储节点上,访问时具有较好的访问局部性,当目录很大时,通过向父目录的分布编码列表中添加分布编码避免大目录下的元数据集中存储在同一后端存储节点造成的负载不均衡问题,同时每个存储节点上的元数据依然具有较好的访问局部性。因此,本发明能够解决现有方法中为保证元数据的访问局部性造成的大目录元数据集中存储的负载不均衡的技术问题。
(2)本发明能够解决现有方法中重命名操作带来的元数据迁移问题:由于采用了步骤(2-2)、步骤(9-2)和步骤(15),文件及目录元数据的分布只与对应文件及目录的父目录的分布编码列表和对应文件及目录的全局ID有关,在重命名文件或目录时,只要更新元数据索引和存储在后端存储节点上元数据的名称,不需改变文件及目录的全局ID,不会导致元数据的迁移,因此,本发明能够解决现有方法中重命名操作带来的元数据迁移问题。
(3)本发明能够解决现有方法中构建元数据索引占用大量空间的技术问题,采用步骤(2-1)、步骤(2-2)、步骤(9-1)和步骤(9-2),以键值对的形式构建和保存每个文件和目录的索引,其中键是文件或目录的父目录的全局编码和文件或目录的名称组合,值为元数据的索引信息,每个文件和目录只需一个键值对保存信息,同一目录不会出现多次,避免内存空间的重复占用,此外,本方法还具有检索速度快的优点,只需常数级的时间复杂度即可检索到对应文件或目录的索引信息,因此,本发明能够解决现有方法中构建元数据索引占用大量空间的技术问题。
附图说明
图1是本发明面向大数据环境的元数据组织方法的流程图。
图2文件元数据索引结构图。
图3目录元数据索引结构图。
图4分布编码对应的位图结构图。
图5后端存储节点存储的哈希桶结构图。
图6后端存储节点空间图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
以下首先就本发明的技术术语进行解释和说明:
分布编码:全局唯一的32位无符号整型数字,其用于根据一致性哈希算法计算对应的后端服务器集群中的服务器节点。
分布编码列表:父目录下的文件和子目录的元数据根据父目录的分布编码列表中的分布编码保存到后端服务集群中。
目录标识位:是一个布尔型值,文件的目录标识位为false,目录的目录标识位为true。
文件索引信息:包含文件的全局ID和目录标识位。
目录索引信息:包含目录的全局ID、目录标识位和分布编码列表。
后端存储节点名空间表:表中记录每个后端存储节点在一致性哈希环空间上映射的范围,IP地址和端口号,以及节点的能否继续存储元数据的标识。
如图1所示,本发明面向大数据环境的元数据组织方法包括以下步骤:
(1)客户端接收来自用户的元数据请求,并判断该元数据请求的类型,是文件创建请求,文件查询请求,目录创建请求,目录查询请求,还是文件和目录重命名请求,如果是文件创建请求,则客户端将该文件创建请求发送到索引服务器,并进入步骤(2),如果是文件查询请求,则客户端将该文件查询请求发送到索引服务器,进入步骤(5),如果是目录创建请求,则转入步骤(9),如果是列表目录元数据请求,则转入步骤(12),如果是文件和目录重命名请求,则转入步骤(15);
(2)索引服务器根据创建文件请求中待创建文件的绝对路径获取对应文件的父目录的全局ID和分布编码列表,根据父目录的全局ID和待创建文件的文件名得到键值对的键,根据该键保存待创建文件的文件索引信息,并获得用来存储元数据信息的分布编码,其中如果分布编码为新增的或者父目录分布编码列表中存在超过一个分布编码,则使用布隆过滤器和文件的全局ID更新分布编码的位图(BitMap),将分布编码和分布编码对应的后端存储节点的IP地址和端口号,以及待创建文件的全局ID发送给客户端;本步骤包括以下子步骤:
(2-1)根据待创建文件的绝对路径获取对应文件的父目录的全局ID和分布编码列表;具体而言,如图2所示,描述了文件元数据的索引结构,如图3所示,描述了目录元数据的索引结构,首先将文件的绝对路径按目录分隔符分成从根目录名到待创建文件名的字符串数组,从字符串数组中取出第一个字符串,第一个字符串一定是根目录名,然后组合字符串“0”和根目录名成为键,查找根目录的目录索引信息,并获得索引信息中的全局ID,默认根目录名是与字符串“0”组合成键,再根据根目录全局ID组合字符串数组中下一个字符串成为新的键,查找并得到此键对应的目录索引信息中的全局ID,以此类推,直至找到字符串数组中倒数第二个字符串,即得到待创建文件父目录的目录索引信息,目录索引信息中包含了待创建文件父目录的全局ID和分布编码列表;转入步骤(2-2);此过程中出现未找到目录索引信息的情况,创建过程都将直接结束,返回客户端创建文件失败信息;
(2-2)根据父目录的全局ID和待创建文件的文件名得到键值对的键,根据该键保存待创建文件的文件索引信息;具体而言,先为待创建文件建立文件索引信息,包括生成文件的全局ID,将目录标识位设为false,其中文件的全局ID为随机生成的数字,再根据待创建文件父目录的全局ID和待创建文件的文件名组合成的键保存待创建文件的文件索引信息,转入步骤(2-3);
(2-3)获取用于存储文件元数据信息的分布编码,计算父目录的分布编码列表中最后一个分布编码在后端存储节点名空间表中对应的后端存储节点信息,并判断该后端存储节点是否具有继续存储元数据的能力,如果有,转入步骤(2-4),否则转入步骤(2-5);具体而言,例如最后一个分布编码为4000,后端存储节点名空间表如图6所示,分布编码4000在编号01的记录的哈希范围内,01记录的节点负载能力为true表示能继续存储元数据,若分布编码在编号02记录的哈希范围内,而02记录的解析负载能力为false表示不能继续存储元数据;
(2-4)查看父目录分布编码列表的长度是否超过1,如果超过,则获得最后一位分布编码对应的位图,如图4所示,表示了分布编码和位图的对应关系,并使用布隆过滤器和待创建文件的全局ID更新位图,转入步骤(2-6);如果未超过,转入步骤(2-6);
(2-5)为父目录创建新的分布编码,并将其插入分布编码列表中,并为新的分布编码创建位图,并使用布隆过滤器和待创建文件的全局ID更新位图,转入步骤(2-6);具体而言,创建的新分布编码是从后端存储节点名空间表中找到负载能力为true的记录,再从记录的哈希范围内选择的一个尚未使用的数字;
(2-6)将使用的分布编码和分布编码对应的后端存储节点的IP地址和端口号,以及待创建文件的全局ID发送给客户端,转入步骤(3);具体而言,例如,最后一个分布编码为4000,后端存储节点名空间表如图6所示,分布编码4000在编号01的记录的哈希范围内,分布编码对应的后端存储节点的IP地址为192.168.0.10,端口号为8008;
(3)客户端将待创建文件的全局ID、分布编码、以及待创建文件的元数据信息发送到该IP地址和端口号对应的后端存储节点,转入步骤(4);
(4)后端存储节点根据待创建文件的全局ID以键值对形式保存待创建文件的元数据信息,再将此键值对加入到桶号为分布编码的哈希桶中,如图5所示,描述了哈希桶的结构(如果哈希桶不存在,则创建桶号为分布编码的哈希桶后再将键值对加入哈希桶中),并向客户端返回文件元数据创建成功的通知。
(5)索引服务器根据查询文件请求中待查询文件的绝对路径获取对应文件的全局ID,以及对应文件的父目录的分布编码列表,获取存储文件元数据时可能使用的分布编码,再根据可能使用的分布编码和后端存储节点名空间表计算得到对应的后端存储节点IP地址和端口号,并将所有后端存储节点IP地址和端口号信息列表、以及待查询文件的全局ID发送到客户端,本步骤包括以下子步骤;
(5-1)根据待查询文件的绝对路径获取对应文件的全局ID;具体而言,首先将文件的绝对路径按目录分隔符分成从根目录名到待创建文件名的字符串数组,从字符串数组中取出第一个字符串,第一个字符串一定是根目录名,然后组合字符串“0”和根目录名成为键,查找根目录的目录索引信息,并获得索引信息中的全局ID,默认根目录名是与字符串“0”组合成键,再根据根目录全局ID组合字符串数组中下一个字符串成为新的键,查找并得到此键对应的目录索引信息中的全局ID,以此类推,直至找到字符串数组中最后一个字符串为止,得到待创建文件的索引信息,索引信息中包含了文件的全局ID;转入步骤(5-2);若此过程中出现未找到目录或文件索引信息的情况,查找过程将直接结束,并返回客户端查询文件失败信息;
(5-2)根据待查询文件的绝对路径获取对应文件父目录的分布编码;具体而言,需要获得父目录的目录索引信息,获得过程与步骤(2-1)相同,再从目录索引信息中得到分布编码列表,转入步骤(5-3);此过程中出现未找到目录索引信息的情况,查找过程都将直接结束,返回客户端查询文件失败信息;
(5-3)根据父目录的分布编码列表获取存储文件元数据时可能使用的分布编码,并判断父目录的分布编码列表长度是否超过1,如果超过则获取分布编码列表中分布编码对应的位图,根据布隆过滤器和待查询文件的全局ID计算的结果与所有分布编码的位图对比,并筛选出创建文件时可能使用的分布编码,然后转入步骤(5-4);否则转入步骤(5-4);
(5-4)根据筛选后的分布编码列表获得分布编码对应的后端存储节点的IP地址和端口号列表,转入步骤(5-5);具体而言,例如,最后一个分布编码为4000,后端存储节点名空间表如图6所示,图中包含两个后端存储节点的信息,分布编码4000在编号01的记录的哈希范围内,分布编码对应的后端存储节点的IP地址为192.168.0.10,端口号为8008;
(5-5)将后端存储节点IP地址和端口号列表,以及待查询文件的全局ID发送到客户端;
(6)客户端根据返回的IP地址和端口号列表依次将待查询文件的全局ID发送给后端存储节点,转入步骤(7);
(7)后端存储节点根据待查询文件的全局ID为键查找是否存在元数据信息,如果存在,则返回元数据信息给客户端,然后转入步骤(8),否则返回未找到元数据的提示信息给客户端,转入步骤(8);
(8)客户端判断返回的元数据信息是否是元数据,如果是,则过程结束,否则根据剩下的IP地址和端口号将待查询文件的全局ID发送给后端存储节点,并重复执行步骤(7),直至找到元数据为止。
(9)索引服务器根据创建目录请求中待创建目录的绝对路径获取对应目录的父目录的全局ID和分布编码列表,根据父目录的全局ID和待创建目录的目录名得到键值对的键,根据该键保存待创建目录的目录索引信息,并获得用来存储目录元数据信息的分布编码,其中如果分布编码为新增的或者父目录分布编码列表中存在超过一个分布编码,则使用布隆过滤器和目录全局ID更新分布编码的位图(BitMap),将分布编码和分布编码对应的后端存储节点的IP地址和端口号,以及待创建目录的全局ID发送给客户端;本步骤包括以下子步骤:
(9-1)根据待创建目录的绝对路径获取对应目录的父目录的全局ID和分布编码列表;具体而言,本步骤中获取的过程与步骤(2-1)相同,若此过程中出现未找到目录索引信息的情况,则创建过程将直接结束,并返回客户端创建目录失败信息;
(9-2)根据父目录的全局ID和待创建目录的目录名得到键值对的键,根据该键保存待创建目录的目录索引信息;具体而言,首先为待创建目录建立目录索引信息,包括生成目录的全局ID,设置目录标识位为true,生成分布编码并插入分布编码列表,目录的全局ID为随机生成的数字,生成的分布编码通过后端存储节点名空间表可以映射到有继续存储元数据能力的后端服务器,再根据待创建目录父目录的全局ID和待创建目录的目录名组合成的键保存待创建目录的目录索引信息,转入步骤(9-3);
(9-3)获取用于存储目录元数据信息的分布编码,计算父目录的分布编码列表中最后一个分布编码在后端存储节点名空间表中对应的后端存储节点信息,判断该后端存储节点是否具有继续存储元数据的能力,如果有,则转入步骤(9-4),否则转入步骤(9-5);具体而言,例如最后一个分布编码为4000,后端存储节点名空间表如图6所示,分布编码4000在编号01的记录的哈希范围内,01记录的节点负载能力为true表示能继续存储元数据,若分布编码在编号02记录的哈希范围内,而02记录的解析负载能力为false表示不能继续存储元数据;
(9-4)查看父目录分布编码列表的长度是否超过1,如果超过,则需获得最后一位分布编码对应的位图,并使用布隆过滤器和待创建文件的全局ID更新位图,然后转入步骤(9-6);如果未超过,则转入步骤(9-6);
(9-5)为父目录创建新的分布编码,并将其插入分布编码列表中,并为新的分布编码创建位图,并使用布隆过滤器和待创建文件的全局ID更新位图,转入步骤(9-6);具体而言,创建的新分布编码是从后端存储节点名空间表中找到负载能力为true的记录,再从记录的哈希范围内选择的一个尚未使用的数字;
(9-6)将使用的分布编码和分布编码对应的后端存储节点的IP地址和端口号,以及待创建目录的全局ID发送给客户端,转入步骤(10);例如,最后一个分布编码为4000,后端存储节点名空间表如图6所示,分布编码4000在编号01的记录的哈希范围内,分布编码对应的后端存储节点的IP地址为192.168.0.10,端口号为8008;
(10)客户端将待创建目录的全局ID、分布编码、以及待创建目录的元数据信息发送到该IP地址和端口号对应的后端存储节点,转入步骤(11);
(11)后端存储节点根据待创建目录的全局ID以键值对形式保存待创建目录的元数据信息,再将此键值对加入到桶号为分布编码的哈希桶中,(如果哈希桶不存在,则创建桶号为分布编码的哈希桶后再将键值对加入哈希桶中),并向客户端返回目录元数据创建成功的通知。
(12)索引服务器根据待列表目录请求中目录的绝对路径获取待列表目录的分布编码列表,根据分布编码列表和后端存储名空间表计算出所有分布编码对应的后端存储节点IP地址和端口号,并将分布编码列表及分布编码对应的后端存储节点IP地址和端口号信息发送到客户端;本步骤包括以下子步骤;
(12-1)根据待列表目录的绝对路径获取对应目录的分布编码列表;具体而言,首先将目录的绝对路径按目录分隔符分成从根目录名到待列表目录的字符串数组,从字符串数组中取出第一个字符串,第一个字符串一定是根目录名,然后组合字符串“0”和根目录名成为键,查找根目录的目录索引信息,并获得索引信息中的全局ID,默认根目录名是与字符串“0”组合成键,再根据根目录全局ID组合字符串数组中下一个字符串成为新的键,查找并得到此键对应的目录索引信息中的全局ID,以此类推,直至找到字符串数组中最后一个字符串,即得到待列表目录的目录索引信息,目录索引信息中包含了待列表目录的分布编码列表,转入步骤(12-2);若此过程中出现未找到目录索引信息的情况,列表过程将直接结束,并返回客户端列表目录失败信息;
(12-2)根据分布编码列表和后端存储名空间表计算出所有分布编码对应的后端存储节点IP地址和端口号,转入步骤(13);具体而言,例如,分布编码列表为[4000,222222],后端存储节点名空间表如图6所示,分布编码4000在编号01的记录的哈希范围内,对应的后端存储节点的IP地址为192.168.0.10,端口号为8008;分布编码222222在编号02的记录的哈希范围内,分布编码对应的后端存储节点的IP地址为192.168.0.11,端口号为8008;
(13)客户端根据返回的IP地址和端口号列表依次将对应的分布编码发送给后端存储节点,转入步骤(14);
(14)后端存储节点通过分布编码找到对应桶号的哈希桶,并将哈希桶内的所有元数据信息返回给客户端。
(15)索引服务器根据重命名文件或目录的请求中的待重命名的文件或目录的绝对路径和新名称得到待重命名文件或目录的全局ID和对应的父目录的分布编码列表,并用新名称重新保存文件或目录索引节点信息,获得存储文件或目录的分布编码,将分布编码对应的后端节点IP地址和端口号,新文件或目录名,以及新文件或目录的全局ID返回给客户端;本步骤包括以下子步骤(因为重命名文件和目录的操作是一致的,下面描述了重命名目录的过程):
(15-1)根据待重命名目录的绝对路径得到此目录的全局ID;具体而言,首先将目录的绝对路径按目录分隔符分成从根目录名到待创建文件名的字符串数组,从字符串数组中取出第一个字符串,第一个字符串一定是根目录名,然后组合字符串“0”和根目录名成为键,查找根目录的目录索引信息,并获得索引信息中的全局ID,默认根目录名是与字符串“0”组合成键,再根据根目录全局ID组合字符串数组中下一个字符串成为新的键,查找并得到此键对应的目录索引信息中的全局ID,以此类推,直至找到字符串数组中最后一个字符串为止,得到待重命名目录的索引信息,索引信息中包含了目录的全局ID;转入步骤(15-2);此过程中出现未找到目录或文件索引信息的情况,重命名过程将直接结束,并返回客户端重命名失败信息;
(15-2)根据待重命名目录的绝对路径获取对应目录的父目录的全局ID和分布编码列表;具体而言,获取的过程与步骤(2-1)相同,得到了父目录的目录索引信息后取得其中的分布编码列表,转入步骤(15-3);此过程中出现未找到目录或文件索引信息的情况,重命名过程都将直接结束,返回客户端重命名失败信息;
(15-3)根据父目录的全局ID和新目录名组合成新键,重新保存待重命名目录索引节点信息,并删除旧目录名对应的目录索引节点信息,转入步骤(15-4);
(15-4)获取用于存储目录元数据信息的分布编码,根据父目录的分布编码列表获取存储文件元数据时可能使用的分布编码,并判断父目录的分布编码列表长度是否超过1,如果是则需获取分布编码列表中分布编码对应的位图,根据布隆过滤器和待查询文件的全局ID计算的结果与所有分布编码的位图对比,并筛选出创建文件时可能使用的分布编码,然后转入步骤(15-5);如果未超过,则转入步骤(15-5);
(15-5)根据筛选后的分布编码列表获得分布编码对应的后端存储节点的IP地址和端口号列表,转入步骤(15-6);
(15-6)将分布编码对应的后端节点IP地址和端口号,新目录名,以及待重命名目录的全局ID返回给客户端;
(16)客户端根据返回的IP地址和端口号列表依次将待重命名目录的全局ID和新目录名发送给后端存储节点;
(17)后端存储节点以目录的全局ID为键找到目录的元数据信息,如果找到,则使用新名称更新目录元数据中的旧名称,并向客户端返回重命名目录成功的通知,然后转入步骤(18);否则返回未找到元数据的提示信息给客户端,并转入步骤(18);
(18)客户端判断重命名是否成功,如果成功,则重命名过程结束,否则根据剩下的IP地址和端口号将待重命名目录的全局ID和新目录名发送给后端存储节点,并重复执行步骤(17),直至重命名元数据成功为止。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种面向大数据环境的元数据组织方法,其特征在于,包括以下步骤:
(1)客户端接收来自用户的元数据请求,并判断该元数据请求的类型,是文件创建请求,文件查询请求,目录创建请求,目录查询请求,还是文件和目录重命名请求,如果是文件创建请求,则客户端将该文件创建请求发送到索引服务器,并进入步骤(2),如果是文件查询请求,则客户端将该文件查询请求发送到索引服务器,进入步骤(5),如果是目录创建请求,则转入步骤(9),如果是列表目录元数据请求,则转入步骤(12),如果是文件和目录重命名请求,则转入步骤(15);
(2)索引服务器根据创建文件请求中待创建文件的绝对路径获取对应文件的父目录的全局ID和分布编码列表,根据父目录的全局ID和待创建文件的文件名得到键值对的键,根据该键保存待创建文件的文件索引信息,并获得用来存储元数据信息的分布编码,其中如果分布编码为新增的或者父目录分布编码列表中存在超过一个分布编码,则使用布隆过滤器和文件的全局ID更新分布编码的位图,将分布编码和分布编码对应的后端存储节点的IP地址和端口号,以及待创建文件的全局ID发送给客户端;
(3)客户端将待创建文件的全局ID、分布编码、以及待创建文件的元数据信息发送到该IP地址和端口号对应的后端存储节点;
(4)后端存储节点根据待创建文件的全局ID以键值对形式保存待创建文件的元数据信息,再将此键值对加入到桶号为分布编码的哈希桶中,并向客户端返回文件元数据创建成功的通知;
(5)索引服务器根据查询文件请求中待查询文件的绝对路径获取对应文件的全局ID,以及对应文件的父目录的分布编码列表,获取存储文件元数据时可能使用的分布编码,再根据可能使用的分布编码和后端存储节点名空间表计算得到对应的后端存储节点IP地址和端口号,并将所有后端存储节点IP地址和端口号信息列表、以及待查询文件的全局ID发送到客户端;
(6)客户端根据返回的IP地址和端口号列表依次将待查询文件的全局ID发送给后端存储节点;
(7)后端存储节点根据待查询文件的全局ID为键查找是否存在元数据信息,如果存在,则返回元数据信息给客户端,然后转入步骤(8),否则返回未找到元数据的提示信息给客户端;
(8)客户端判断返回的元数据信息是否是元数据,如果是,则过程结束,否则根据剩下的IP地址和端口号将待查询文件的全局ID发送给后端存储节点,并重复执行步骤(7),直至找到元数据为止。
(9)索引服务器根据创建目录请求中待创建目录的绝对路径获取对应目录的父目录的全局ID和分布编码列表,根据父目录的全局ID和待创建目录的目录名得到键值对的键,根据该键保存待创建目录的目录索引信息,并获得用来存储目录元数据信息的分布编码,其中如果分布编码为新增的或者父目录分布编码列表中存在超过一个分布编码,则使用布隆过滤器和目录全局ID更新分布编码的位图,将分布编码和分布编码对应的后端存储节点的IP地址和端口号,以及待创建目录的全局ID发送给客户端;
(10)客户端将待创建目录的全局ID、分布编码、以及待创建目录的元数据信息发送到该IP地址和端口号对应的后端存储节点;
(11)后端存储节点根据待创建目录的全局ID以键值对形式保存待创建目录的元数据信息,再将此键值对加入到桶号为分布编码的哈希桶中,并向客户端返回目录元数据创建成功的通知。
(12)索引服务器根据待列表目录请求中目录的绝对路径获取待列表目录的分布编码列表,根据分布编码列表和后端存储名空间表计算出所有分布编码对应的后端存储节点IP地址和端口号,并将分布编码列表及分布编码对应的后端存储节点IP地址和端口号信息发送到客户端;
(13)客户端根据返回的IP地址和端口号列表依次将对应的分布编码发送给后端存储节点;
(14)后端存储节点通过分布编码找到对应桶号的哈希桶,并将哈希桶内的所有元数据信息返回给客户端;
(15)索引服务器根据重命名文件或目录的请求中的待重命名的文件或目录的绝对路径和新名称得到待重命名文件或目录的全局ID和对应的父目录的分布编码列表,并用新名称重新保存文件或目录索引节点信息,获得存储文件或目录的分布编码,将分布编码对应的后端节点IP地址和端口号,新文件或目录名,以及新文件或目录的全局ID返回给客户端;
(16)客户端根据返回的IP地址和端口号列表依次将待重命名目录的全局ID和新目录名发送给后端存储节点;
(17)后端存储节点以目录的全局ID为键找到目录的元数据信息,如果找到,则使用新名称更新目录元数据中的旧名称,并向客户端返回重命名目录成功的通知,然后转入步骤(18),否则返回未找到元数据的提示信息给客户端,并转入步骤(18);
(18)客户端判断重命名是否成功,如果成功,则重命名过程结束,否则根据剩下的IP地址和端口号将待重命名目录的全局ID和新目录名发送给后端存储节点,并重复执行步骤(17),直至重命名元数据成功为止。
2.根据权利要求1所述的元数据组织方法,其特征在于,步骤(2)包括以下子步骤:
(2-1)根据待创建文件的绝对路径获取对应文件的父目录的全局ID和分布编码列表;
(2-2)根据父目录的全局ID和待创建文件的文件名得到键值对的键,根据该键保存待创建文件的文件索引信息;
(2-3)获取用于存储文件元数据信息的分布编码,计算父目录的分布编码列表中最后一个分布编码在后端存储节点名空间表中对应的后端存储节点信息,并判断该后端存储节点是否具有继续存储元数据的能力,如果有,转入步骤(2-4),否则转入步骤(2-5);
(2-4)查看父目录分布编码列表的长度是否超过1,如果超过,则获得最后一位分布编码对应的位图,如图4所示,表示了分布编码和位图的对应关系,并使用布隆过滤器和待创建文件的全局ID更新位图,转入步骤(2-6);如果未超过,转入步骤(2-6);
(2-5)为父目录创建新的分布编码,并将其插入分布编码列表中,并为新的分布编码创建位图,并使用布隆过滤器和待创建文件的全局ID更新位图;
(2-6)将使用的分布编码和分布编码对应的后端存储节点的IP地址和端口号,以及待创建文件的全局ID发送给客户端。
3.根据权利要求2所述的元数据组织方法,其特征在于,步骤(5)包括以下子步骤;
(5-1)根据待查询文件的绝对路径获取对应文件的全局ID;
(5-2)根据待查询文件的绝对路径获取对应文件父目录的分布编码;
(5-3)根据父目录的分布编码列表获取存储文件元数据时可能使用的分布编码,并判断父目录的分布编码列表长度是否超过1,如果超过则获取分布编码列表中分布编码对应的位图,根据布隆过滤器和待查询文件的全局ID计算的结果与所有分布编码的位图对比,并筛选出创建文件时可能使用的分布编码,然后转入步骤(5-4);否则转入步骤(5-4);
(5-4)根据筛选后的分布编码列表获得分布编码对应的后端存储节点的IP地址和端口号列表,转入步骤(5-5);
(5-5)将后端存储节点IP地址和端口号列表,以及待查询文件的全局ID发送到客户端。
4.根据权利要求3所述的元数据组织方法,其特征在于,步骤(9)包括以下子步骤;
(9-1)根据待创建目录的绝对路径获取对应目录的父目录的全局ID和分布编码列表;
(9-2)根据父目录的全局ID和待创建目录的目录名得到键值对的键,根据该键保存待创建目录的目录索引信息;
(9-3)获取用于存储目录元数据信息的分布编码,计算父目录的分布编码列表中最后一个分布编码在后端存储节点名空间表中对应的后端存储节点信息,判断该后端存储节点是否具有继续存储元数据的能力,如果有,则转入步骤(9-4),否则转入步骤(9-5);
(9-4)查看父目录分布编码列表的长度是否超过1,如果超过,则需获得最后一位分布编码对应的位图,并使用布隆过滤器和待创建文件的全局ID更新位图,然后转入步骤(9-6);如果未超过,则转入步骤(9-6);
(9-5)为父目录创建新的分布编码,并将其插入分布编码列表中,并为新的分布编码创建位图,并使用布隆过滤器和待创建文件的全局ID更新位图;
(9-6)将使用的分布编码和分布编码对应的后端存储节点的IP地址和端口号,以及待创建目录的全局ID发送给客户端。
5.根据权利要求4所述的元数据组织方法,其特征在于,步骤(12)包括以下子步骤;
(12-1)根据待列表目录的绝对路径获取对应目录的分布编码列表;
(12-2)根据分布编码列表和后端存储名空间表计算出所有分布编码对应的后端存储节点IP地址和端口号。
6.根据权利要求5所述的元数据组织方法,其特征在于,步骤(15)包括以下子步骤:
(15-1)根据待重命名目录的绝对路径得到此目录的全局ID;
(15-2)根据待重命名目录的绝对路径获取对应目录的父目录的全局ID和分布编码列表;
(15-3)根据父目录的全局ID和新目录名组合成新键,重新保存待重命名目录索引节点信息,并删除旧目录名对应的目录索引节点信息;
(15-4)获取用于存储目录元数据信息的分布编码,根据父目录的分布编码列表获取存储文件元数据时可能使用的分布编码,并判断父目录的分布编码列表长度是否超过1,如果是则需获取分布编码列表中分布编码对应的位图,根据布隆过滤器和待查询文件的全局ID计算的结果与所有分布编码的位图对比,并筛选出创建文件时可能使用的分布编码,然后转入步骤(15-5);如果未超过,则转入步骤(15-5);
(15-5)根据筛选后的分布编码列表获得分布编码对应的后端存储节点的IP地址和端口号列表,转入步骤(15-6);
(15-6)将分布编码对应的后端节点IP地址和端口号,新目录名,以及待重命名目录的全局ID返回给客户端。
7.一种面向大数据环境的元数据组织系统,其特征在于,包括:
第一模块,其设置于客户端中,用于接收来自用户的元数据请求,并判断该元数据请求的类型,是文件创建请求,文件查询请求,目录创建请求,目录查询请求,还是文件和目录重命名请求,如果是文件创建请求,则客户端将该文件创建请求发送到索引服务器,并进入第二模块,如果是文件查询请求,则客户端将该文件查询请求发送到索引服务器,进入第五模块,如果是目录创建请求,则转入第九模块,如果是列表目录元数据请求,则转入第十二模块,如果是文件和目录重命名请求,则转入第十五模块;
第二模块,其设置于索引服务器中,用于根据创建文件请求中待创建文件的绝对路径获取对应文件的父目录的全局ID和分布编码列表,根据父目录的全局ID和待创建文件的文件名得到键值对的键,根据该键保存待创建文件的文件索引信息,并获得用来存储元数据信息的分布编码,其中如果分布编码为新增的或者父目录分布编码列表中存在超过一个分布编码,则使用布隆过滤器和文件的全局ID更新分布编码的位图,将分布编码和分布编码对应的后端存储节点的IP地址和端口号,以及待创建文件的全局ID发送给客户端;
第三模块,其设置于客户端中,用于将待创建文件的全局ID、分布编码、以及待创建文件的元数据信息发送到该IP地址和端口号对应的后端存储节点;
第四模块,其设置于后端存储节点中,用于根据待创建文件的全局ID以键值对形式保存待创建文件的元数据信息,再将此键值对加入到桶号为分布编码的哈希桶中,并向客户端返回文件元数据创建成功的通知;
第五模块,其设置于索引服务器中,用于根据查询文件请求中待查询文件的绝对路径获取对应文件的全局ID,以及对应文件的父目录的分布编码列表,获取存储文件元数据时可能使用的分布编码,再根据可能使用的分布编码和后端存储节点名空间表计算得到对应的后端存储节点IP地址和端口号,并将所有后端存储节点IP地址和端口号信息列表、以及待查询文件的全局ID发送到客户端;
第六模块,其设置于客户端中,用于根据返回的IP地址和端口号列表依次将待查询文件的全局ID发送给后端存储节点;
第七模块,其设置于后端存储节点中,用于根据待查询文件的全局ID为键查找是否存在元数据信息,如果存在,则返回元数据信息给客户端,然后转入第八模块,否则返回未找到元数据的提示信息给客户端;
第八模块,其设置于客户端中,用于判断返回的元数据信息是否是元数据,如果是,则过程结束,否则根据剩下的IP地址和端口号将待查询文件的全局ID发送给后端存储节点,并重复执行第七模块,直至找到元数据为止。
第九模块,其设置于索引服务器中,用于根据创建目录请求中待创建目录的绝对路径获取对应目录的父目录的全局ID和分布编码列表,根据父目录的全局ID和待创建目录的目录名得到键值对的键,根据该键保存待创建目录的目录索引信息,并获得用来存储目录元数据信息的分布编码,其中如果分布编码为新增的或者父目录分布编码列表中存在超过一个分布编码,则使用布隆过滤器和目录全局ID更新分布编码的位图,将分布编码和分布编码对应的后端存储节点的IP地址和端口号,以及待创建目录的全局ID发送给客户端;
第十模块,其设置于客户端中,用于将待创建目录的全局ID、分布编码、以及待创建目录的元数据信息发送到该IP地址和端口号对应的后端存储节点;
第十一模块,其设置于后端存储节点中,用于根据待创建目录的全局ID以键值对形式保存待创建目录的元数据信息,再将此键值对加入到桶号为分布编码的哈希桶中,并向客户端返回目录元数据创建成功的通知。
第十二模块,其设置于索引服务器中,用于根据待列表目录请求中目录的绝对路径获取待列表目录的分布编码列表,根据分布编码列表和后端存储名空间表计算出所有分布编码对应的后端存储节点IP地址和端口号,并将分布编码列表及分布编码对应的后端存储节点IP地址和端口号信息发送到客户端;
第十三模块,其设置于客户端中,用于根据返回的IP地址和端口号列表依次将对应的分布编码发送给后端存储节点;
第十四模快,其设置于后端存储节点中,用于通过分布编码找到对应桶号的哈希桶,并将哈希桶内的所有元数据信息返回给客户端;
第十五模块,其设置于索引服务器中,用于根据重命名文件或目录的请求中的待重命名的文件或目录的绝对路径和新名称得到待重命名文件或目录的全局ID和对应的父目录的分布编码列表,并用新名称重新保存文件或目录索引节点信息,获得存储文件或目录的分布编码,将分布编码对应的后端节点IP地址和端口号,新文件或目录名,以及新文件或目录的全局ID返回给客户端;
第十六模块,其设置于客户端中,用于根据返回的IP地址和端口号列表依次将待重命名目录的全局ID和新目录名发送给后端存储节点;
第十七模块,其设置于后端存储节点中,用于以目录的全局ID为键找到目录的元数据信息,如果找到,则使用新名称更新目录元数据中的旧名称,并向客户端返回重命名目录成功的通知,然后转入第十八模块,否则返回未找到元数据的提示信息给客户端,并转入第十八模块;
第十八模块,其设置于客户端中,用于判断重命名是否成功,如果成功,则重命名过程结束,否则根据剩下的IP地址和端口号将待重命名目录的全局ID和新目录名发送给后端存储节点,并重复执行第十七模块,直至重命名元数据成功为止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610056156.0A CN105550371A (zh) | 2016-01-27 | 2016-01-27 | 一种面向大数据环境的元数据组织方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610056156.0A CN105550371A (zh) | 2016-01-27 | 2016-01-27 | 一种面向大数据环境的元数据组织方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105550371A true CN105550371A (zh) | 2016-05-04 |
Family
ID=55829560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610056156.0A Pending CN105550371A (zh) | 2016-01-27 | 2016-01-27 | 一种面向大数据环境的元数据组织方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105550371A (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106446197A (zh) * | 2016-09-30 | 2017-02-22 | 华为数字技术(成都)有限公司 | 一种数据存储方法、装置及系统 |
CN106599102A (zh) * | 2016-11-29 | 2017-04-26 | 郑州云海信息技术有限公司 | 一种基于目录切分机制的元数据性能提升方法 |
CN106844584A (zh) * | 2017-01-10 | 2017-06-13 | 清华大学 | 元数据结构和基于其的操作方法、定位方法、切分方法 |
CN106874481A (zh) * | 2017-02-20 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种分布式文件系统元数据信息读取方法及系统 |
CN107092530A (zh) * | 2017-03-01 | 2017-08-25 | 广州银禾网络通信有限公司 | 一种基于分布式内存的信令数据处理方法及系统 |
CN107729535A (zh) * | 2017-11-17 | 2018-02-23 | 中国科学技术大学 | 一种键值数据库内布隆过滤器的配置方法 |
CN108256076A (zh) * | 2018-01-18 | 2018-07-06 | 广州大学 | 分布式海量数据处理方法及装置 |
CN108616403A (zh) * | 2018-05-09 | 2018-10-02 | 马鞍山优途网络科技有限公司 | 一种基于云计算的资源管理系统 |
CN108664481A (zh) * | 2017-03-27 | 2018-10-16 | 中国移动通信集团内蒙古有限公司 | 一种数据检索方法及服务器 |
CN110399397A (zh) * | 2018-04-19 | 2019-11-01 | 北京京东尚科信息技术有限公司 | 一种数据查询方法和系统 |
CN111191094A (zh) * | 2019-12-31 | 2020-05-22 | 深圳创新科技术有限公司 | 一种ceph存储对象搜索方法、装置及存储设备 |
CN111711788A (zh) * | 2020-05-26 | 2020-09-25 | 视联动力信息技术股份有限公司 | 一种编码分配方法和装置 |
CN111949823A (zh) * | 2020-06-30 | 2020-11-17 | 视联动力信息技术股份有限公司 | 一种目录的展示方法、装置和存储介质 |
CN112559521A (zh) * | 2020-12-11 | 2021-03-26 | 广州海量数据库技术有限公司 | 话单查找方法及系统 |
WO2021196957A1 (zh) * | 2020-03-28 | 2021-10-07 | 华为技术有限公司 | 一种存储管理方法、装置及存储系统 |
US11451629B2 (en) * | 2020-05-14 | 2022-09-20 | Hangzhou Juicedata Technology Limited | Distributed metadata management method for distributed file system |
CN116756096A (zh) * | 2023-08-23 | 2023-09-15 | 苏州浪潮智能科技有限公司 | 元数据处理方法、装置、电子设备及存储介质 |
CN117149708A (zh) * | 2023-08-31 | 2023-12-01 | 中电云计算技术有限公司 | 一种文件访问方法、装置、设备及存储介质 |
CN118427161A (zh) * | 2024-07-04 | 2024-08-02 | 深圳市杉岩数据技术有限公司 | 一种分布式文件系统与目录操作方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101196929A (zh) * | 2007-12-29 | 2008-06-11 | 中国科学院计算技术研究所 | 一种拆分名字空间的元数据管理方法 |
CN101692239A (zh) * | 2009-10-19 | 2010-04-07 | 浙江大学 | 一种分布式文件系统元数据分配方法 |
CN102855284A (zh) * | 2012-08-03 | 2013-01-02 | 北京联创信安科技有限公司 | 一种集群存储系统的数据管理方法及系统 |
CN103150394A (zh) * | 2013-03-25 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 面向高性能计算的分布式文件系统元数据管理方法 |
US20150142779A1 (en) * | 2013-11-21 | 2015-05-21 | Adobe Systems Incorported | Method and apparatus for saving search query as metadata with an image |
US20150205807A1 (en) * | 2012-08-13 | 2015-07-23 | Commvault Systems, Inc | Lightweight mounting of a secondary copy of file system data |
US20150356094A1 (en) * | 2014-06-04 | 2015-12-10 | Waterline Data Science, Inc. | Systems and methods for management of data platforms |
-
2016
- 2016-01-27 CN CN201610056156.0A patent/CN105550371A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101196929A (zh) * | 2007-12-29 | 2008-06-11 | 中国科学院计算技术研究所 | 一种拆分名字空间的元数据管理方法 |
CN101692239A (zh) * | 2009-10-19 | 2010-04-07 | 浙江大学 | 一种分布式文件系统元数据分配方法 |
CN102855284A (zh) * | 2012-08-03 | 2013-01-02 | 北京联创信安科技有限公司 | 一种集群存储系统的数据管理方法及系统 |
US20150205807A1 (en) * | 2012-08-13 | 2015-07-23 | Commvault Systems, Inc | Lightweight mounting of a secondary copy of file system data |
CN103150394A (zh) * | 2013-03-25 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 面向高性能计算的分布式文件系统元数据管理方法 |
US20150142779A1 (en) * | 2013-11-21 | 2015-05-21 | Adobe Systems Incorported | Method and apparatus for saving search query as metadata with an image |
US20150356094A1 (en) * | 2014-06-04 | 2015-12-10 | Waterline Data Science, Inc. | Systems and methods for management of data platforms |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106446197B (zh) * | 2016-09-30 | 2019-11-19 | 华为数字技术(成都)有限公司 | 一种数据存储方法、装置及系统 |
CN106446197A (zh) * | 2016-09-30 | 2017-02-22 | 华为数字技术(成都)有限公司 | 一种数据存储方法、装置及系统 |
CN106599102A (zh) * | 2016-11-29 | 2017-04-26 | 郑州云海信息技术有限公司 | 一种基于目录切分机制的元数据性能提升方法 |
CN106844584A (zh) * | 2017-01-10 | 2017-06-13 | 清华大学 | 元数据结构和基于其的操作方法、定位方法、切分方法 |
CN106844584B (zh) * | 2017-01-10 | 2019-12-17 | 清华大学 | 元数据结构和基于其的操作方法、定位方法、切分方法 |
CN106874481A (zh) * | 2017-02-20 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种分布式文件系统元数据信息读取方法及系统 |
CN106874481B (zh) * | 2017-02-20 | 2020-02-07 | 郑州云海信息技术有限公司 | 一种分布式文件系统元数据信息读取方法及系统 |
CN107092530A (zh) * | 2017-03-01 | 2017-08-25 | 广州银禾网络通信有限公司 | 一种基于分布式内存的信令数据处理方法及系统 |
CN107092530B (zh) * | 2017-03-01 | 2021-01-05 | 广州银禾网络通信有限公司 | 一种基于分布式内存的信令数据处理方法及系统 |
CN108664481A (zh) * | 2017-03-27 | 2018-10-16 | 中国移动通信集团内蒙古有限公司 | 一种数据检索方法及服务器 |
CN108664481B (zh) * | 2017-03-27 | 2021-03-23 | 中国移动通信集团内蒙古有限公司 | 一种数据检索方法及服务器 |
CN107729535B (zh) * | 2017-11-17 | 2020-01-03 | 中国科学技术大学 | 一种键值数据库内布隆过滤器的配置方法 |
CN107729535A (zh) * | 2017-11-17 | 2018-02-23 | 中国科学技术大学 | 一种键值数据库内布隆过滤器的配置方法 |
CN108256076A (zh) * | 2018-01-18 | 2018-07-06 | 广州大学 | 分布式海量数据处理方法及装置 |
CN108256076B (zh) * | 2018-01-18 | 2022-04-01 | 广州大学 | 分布式海量数据处理方法及装置 |
CN110399397A (zh) * | 2018-04-19 | 2019-11-01 | 北京京东尚科信息技术有限公司 | 一种数据查询方法和系统 |
CN108616403A (zh) * | 2018-05-09 | 2018-10-02 | 马鞍山优途网络科技有限公司 | 一种基于云计算的资源管理系统 |
CN111191094A (zh) * | 2019-12-31 | 2020-05-22 | 深圳创新科技术有限公司 | 一种ceph存储对象搜索方法、装置及存储设备 |
WO2021196957A1 (zh) * | 2020-03-28 | 2021-10-07 | 华为技术有限公司 | 一种存储管理方法、装置及存储系统 |
US11451629B2 (en) * | 2020-05-14 | 2022-09-20 | Hangzhou Juicedata Technology Limited | Distributed metadata management method for distributed file system |
CN111711788B (zh) * | 2020-05-26 | 2024-03-15 | 视联动力信息技术股份有限公司 | 一种编码分配方法和装置 |
CN111711788A (zh) * | 2020-05-26 | 2020-09-25 | 视联动力信息技术股份有限公司 | 一种编码分配方法和装置 |
CN111949823A (zh) * | 2020-06-30 | 2020-11-17 | 视联动力信息技术股份有限公司 | 一种目录的展示方法、装置和存储介质 |
CN112559521A (zh) * | 2020-12-11 | 2021-03-26 | 广州海量数据库技术有限公司 | 话单查找方法及系统 |
CN116756096A (zh) * | 2023-08-23 | 2023-09-15 | 苏州浪潮智能科技有限公司 | 元数据处理方法、装置、电子设备及存储介质 |
CN116756096B (zh) * | 2023-08-23 | 2024-01-16 | 苏州浪潮智能科技有限公司 | 元数据处理方法、装置、电子设备及存储介质 |
CN117149708A (zh) * | 2023-08-31 | 2023-12-01 | 中电云计算技术有限公司 | 一种文件访问方法、装置、设备及存储介质 |
CN117149708B (zh) * | 2023-08-31 | 2024-06-04 | 中电云计算技术有限公司 | 一种文件访问方法、装置、设备及存储介质 |
CN118427161A (zh) * | 2024-07-04 | 2024-08-02 | 深圳市杉岩数据技术有限公司 | 一种分布式文件系统与目录操作方法 |
CN118427161B (zh) * | 2024-07-04 | 2024-10-01 | 深圳市杉岩数据技术有限公司 | 一种分布式文件系统与目录操作方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105550371A (zh) | 一种面向大数据环境的元数据组织方法和系统 | |
US20110320532A1 (en) | Data operating method, system, client, and data server | |
CN104202384A (zh) | 一种分布式文件系统的文件上传及查找方法 | |
CN102971732B (zh) | 键/值存储器的集成分级查询处理的系统结构 | |
CN102122285B (zh) | 一种数据缓存系统中的数据查询系统和数据查询方法 | |
CN106066896B (zh) | 一种应用感知的大数据重复删除存储系统及方法 | |
CN101354726B (zh) | 一种机群文件系统的内存元数据管理方法 | |
US8719237B2 (en) | Method and apparatus for deleting duplicate data | |
US8099421B2 (en) | File system, and method for storing and searching for file by the same | |
CN104077423A (zh) | 一种基于一致性散列的结构化数据存储、查询和迁移方法 | |
US20110153606A1 (en) | Apparatus and method of managing metadata in asymmetric distributed file system | |
US9547706B2 (en) | Using colocation hints to facilitate accessing a distributed data storage system | |
CN108021717B (zh) | 一种轻量级嵌入式文件系统的实现方法 | |
CN106201771A (zh) | 数据存储系统和数据读写方法 | |
CN103294785B (zh) | 一种基于分组的元数据服务器集群管理方法 | |
CN109446160A (zh) | 一种文件读取方法、系统、装置及计算机可读存储介质 | |
CN104408111A (zh) | 一种删除重复数据的方法及装置 | |
CN109522283A (zh) | 一种重复数据删除方法及系统 | |
CN105447166A (zh) | 一种基于关键字查找信息的方法及系统 | |
CN112148680B (zh) | 一种基于分布式图数据库的文件系统元数据管理方法 | |
US20150169623A1 (en) | Distributed File System, File Access Method and Client Device | |
CN107291876A (zh) | 一种分布式数据管理方法 | |
US11275717B2 (en) | Web-scale distributed deduplication | |
CN109002260A (zh) | 一种缓存数据的处理方法和处理系统 | |
JP2001142752A (ja) | データベース管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160504 |
|
RJ01 | Rejection of invention patent application after publication |