CN102024019B - 一种分布式文件系统中基于后缀树的目录组织方法 - Google Patents

一种分布式文件系统中基于后缀树的目录组织方法 Download PDF

Info

Publication number
CN102024019B
CN102024019B CN 201010536535 CN201010536535A CN102024019B CN 102024019 B CN102024019 B CN 102024019B CN 201010536535 CN201010536535 CN 201010536535 CN 201010536535 A CN201010536535 A CN 201010536535A CN 102024019 B CN102024019 B CN 102024019B
Authority
CN
China
Prior art keywords
node
suffix tree
directory entry
suffix
file
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
CN 201010536535
Other languages
English (en)
Other versions
CN102024019A (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.)
Dawning Information Industry Beijing Co Ltd
Dawning Information Industry Co Ltd
Original Assignee
Dawning Information Industry Beijing 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 Dawning Information Industry Beijing Co Ltd filed Critical Dawning Information Industry Beijing Co Ltd
Priority to CN 201010536535 priority Critical patent/CN102024019B/zh
Publication of CN102024019A publication Critical patent/CN102024019A/zh
Application granted granted Critical
Publication of CN102024019B publication Critical patent/CN102024019B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供了一种分布式文件系统中基于后缀树的目录组织方法。首先将目录项按照名称分组,不同的组存储在存储服务器上不同的磁盘上,对于不同组的目录项,采用后缀树的方法组织起来并进行存储。

Description

一种分布式文件系统中基于后缀树的目录组织方法
技术领域
本发明涉及分布式文件系统中文件管理,具体涉及一种分布式文件系统中基于后缀树的目录组织方法。
背景技术
随着计算机技术的快速发展,网络、科学计算等领域对存储的要求越来越高,于是分布式文件系统渐渐被引入到这些领域,以满足这些领域的存储需要。
互联网等领域的应用有比较鲜明的特点,其中之一就是单个目录往往会存放百万甚至上亿个文件,如存放mp3文件和图片文件等,这些文件的特性是,通常以数字或字母组成文件名,如1.mp3、abc.jpg等。当目录中的目录项数目较多时,如果采用传统的似ext3的文件系统的目录组织方式,则目录项搜索的时间复杂度为O(n),效率较低;如果采用B+树的目录组织方式,则一方面实现比较复杂,另一方面,由于各个目录项的相似度较大,因而需要在插入时频繁地进行树的平衡调整,在效率上同样不具有优势。
发明内容
本发明目的是提供一种分布式文件系统中目录的组织方法,首先将目录项按照名称分组,不同的组存储在存储服务器上不同的磁盘上,对于不同组的目录项,采用后缀树的方法组织起来并进行存储。
一种分布式文件系统中基于后缀树的目录组织方法,包含以下步骤:
A、将目录项分成若干组,分别存储在不同的磁盘上。分组的方式采用简单的字符串哈希的方式,给定字符串S以及总的组数N,则S所处的组序号n为:n=hash(S)%N;
B、根据应用中后缀相同的目录项,建立后缀树;
C、目录的内容分为两个部分:第一部分是后缀树的节点,该节点长度不定,包含该节点到其父节点的边所对应的字符串,父节点在其所处层的序号,以及该节点对应的目录项号;第二部分是目录项,该目录项定长,包含除了目录项名称以外的其他信息,该其他信息包括目录项所代表的文件或目录的索引节点号;存储时,将后缀树从根节点开始,采用广度优先的方法,将树节点按照层次顺序存储到同一个文件;然后将目录项信息存储在另一个文件中去。
D、需要访问目录时,先将后缀树节点分层从文件读入内存,然后根据节点中记录的父节点在其所处层次中的序号,找到其父节点后,挂入父节点的孩子队列,如此处理,直到节点文件处理完毕;
需要访问具体目录项时,根据后缀树节点中记录的目录项索引号,在目录项信息文件中寻址到该项后读出;
E、为后缀树设定一个节点数目限制,当后缀树的节点数目超过该节点数目限制时,需要对后缀树进行分裂;分裂时,将树根节点的所有子节点按照后缀的首字母分为两组,分别构建出一棵新的后缀树;记录下分布在每个子节点到根节点的边对应的字符串首字母,存储起来;当后缀树分裂后,每棵后缀树需要单独存储;随着时间的推移,针对那些长时间没有被访问的后缀树,将其回收以释放内存。
附图说明
图1是根据给定的一组文件名建立的后缀树示意图
图2是后缀树及索引节点存储示意图
具体实施方案
(1)分布式文件系统的元数据服务器通常是功能较强的服务器,配备有多块磁盘。根据磁盘控制器的特性可知,不同的磁盘位于磁盘控制器的不同通道,因而在操作控制上是相互独立的。因此,元数据服务器上的多块磁盘实际上是相互独立,可以并行访问的。为了加速对超大目录的访问速度,本发明中将目录项分成若干组,分别存储在不同的磁盘上。分组的方式采用简单的字符串哈希的方式,给定字符串S以及总的组数N,则S所处的组序号n为:n=hash(S)%N
(2)将目录项分组之后,每一组都是一个目录的集合。由于应用中目录项名称具有特殊性,即后缀相同,而且名称是由一组字符集合有规律的组合而成的,这正好符合后缀树的应用场景。假定有0.jpg,110.jpg,1.jpg、11.jpg、101.jpg、111.jpg几个目录项,则建立起的后缀树结构见图1:
由图1所示,这些目录项具有较多共同的后缀,如.jpg等,因此在存储时,这些共同的后缀可以只存储一份,不需要为每个目录项都存储一份,这样可以节省存储空间,减少磁盘IO操作。采用后缀树的另一个优点是,在搜索目录项时,可以直接根据目录项名在后缀树中进行搜索,其时间复杂度为O(n),其中n为目录项名的长度;而采用线性或B+树对目录项进行组织,其检索效率均比不上后缀树。
(3)在本实施方案中,目录的内容分为两个部分:第一部分是后缀树的节点,该项长度不定,包含该节点到其父节点的边所对应的字符串(如图1所标示),父节点在其所处层的序号,以及该节点对应的目录项号(为了查找目录项);第二部分是目录项,该项定长,包含除了目录项名称以外的其他信息,如目录项所代表的文件或目录的索引节点号等。
存储时,将后缀树从根节点开始,采用广度优先的方法,将树节点按照层次顺序存储到同一个文件;然后将目录项信息存储在另一个文件中去。后缀树节点和索引节点存储布局及关系见图2。
(4)选用以上的存储方式,主要是为了提高重建后缀树的速度。当需要访问目录时,先将后缀树节点分层从文件读入内存,然后根据节点中记录的父节点在其所处层次中的序号,找到其父节点后,挂入父节点的孩子队列。如此处理,直到节点文件处理完毕。
当需要访问具体目录项时,根据后缀树节点中记录的目录项索引序号,在目录项信息文件中寻址到该项后读出。由于目录项信息是定长的,所以最多只需要一次IO操作。
(5)当后缀树建好以后,查找一个目录或文件时,需要首先根据第(1)步中给出的hash函数计算该目录或文件落在哪个组,然后在组内通过后缀树进行查找。当需要在组内添加新的目录项时,首先为其分配一个唯一的目录项序号,将目录项的名称字串插入后缀树,更新用于存储后缀树节点和目录项的文件相应区域即可;类似,当需要删除一个目录项时,先在后缀树中查找到对应的节点,删除后,更新用于存储后缀树节点和目录项的文件相应区域。
(6)当后缀树中的节点较多时,为了避免由于节点文件较大而导致占用内存较多,本发明为后缀树设定一个节点数目限制,当后缀树的节点数目超过该门限时,需要对后缀树进行分裂。分裂时,将树根节点的所有子节点按照后缀的首字母大小顺序分为两组,分别构建出一棵新的后缀树;记录下分布在每个子节点到根节点的边对应的字符串首字母,存储起来,以供以后查找、添加、删除等操作时来定位目标目录项位于哪一棵后缀树。当后缀树分裂后,每棵后缀树需要单独存储,这样就可以减少对内存的占用,因为一个目录项只可能位于某一棵后缀树中,这样只要初始化这棵后缀树即可,其他的后缀树等到访问到时再进行初始化。同时,给每一棵后缀树设置一个最近访问时间,随着时间的推移,那些长时间没有被访问的后缀树,可以进行回收以释放内存。

Claims (1)

1.一种分布式文件系统中基于后缀树的目录组织方法,其特征在于:包含以下步骤:
A、将目录项分成若干组,分别存储在不同的磁盘上;分组的方式采用简单的字符串哈希的方式,给定字符串S以及总的组数N,则S所处的组序号n为:n=hash(S)%N;
B、根据应用中后缀相同的目录项,建立后缀树;
C、目录的内容分为两个部分:第一部分是后缀树的节点,该节点长度不定,包含该节点到其父节点的边所对应的字符串,父节点在其所处层的序号,以及该节点对应的目录项号;第二部分是目录项,该目录项定长,包含除了目录项名称以外的其他信息,该其他信息包括目录项所代表的文件或目录的索引节点号;存储时,将后缀树从根节点开始,采用广度优先的方法,将树节点按照层次顺序存储到同一个文件;然后将目录项信息存储在另一个文件中去;
D、需要访问目录时,先将后缀树节点分层从文件读入内存,然后根据节点中记录的父节点在其所处层次中的序号,找到其父节点后,挂入父节点的孩子队列,如此处理,直到节点文件处理完毕;
需要访问具体目录项时,根据后缀树节点中记录的目录项索引号,在目录项信息文件中寻址到该项后读出;
E、为后缀树设定一个节点数目限制,当后缀树的节点数目超过该节点数目限制时,需要对后缀树进行分裂;分裂时,将树根节点的所有子节点按照后缀的首字母分为两组,分别构建出一棵新的后缀树;记录下分布在每个子节点到根节点的边对应的字符串首字母,存储起来;当后缀树分裂后,每棵后缀树需要单独存储;随着时间的推移,针对那些长时间没有被访问的后缀树,将其回收以释放内存。
CN 201010536535 2010-11-04 2010-11-04 一种分布式文件系统中基于后缀树的目录组织方法 Active CN102024019B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010536535 CN102024019B (zh) 2010-11-04 2010-11-04 一种分布式文件系统中基于后缀树的目录组织方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010536535 CN102024019B (zh) 2010-11-04 2010-11-04 一种分布式文件系统中基于后缀树的目录组织方法

Publications (2)

Publication Number Publication Date
CN102024019A CN102024019A (zh) 2011-04-20
CN102024019B true CN102024019B (zh) 2013-03-13

Family

ID=43865317

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010536535 Active CN102024019B (zh) 2010-11-04 2010-11-04 一种分布式文件系统中基于后缀树的目录组织方法

Country Status (1)

Country Link
CN (1) CN102024019B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541985A (zh) * 2011-10-25 2012-07-04 曙光信息产业(北京)有限公司 一种分布式文件系统中客户端目录缓存的组织方法
WO2013097115A1 (zh) * 2011-12-28 2013-07-04 华为技术有限公司 文件目录存储方法、检索方法和设备
CN103678695B (zh) * 2013-12-27 2018-05-11 中国科学院深圳先进技术研究院 一种并行处理方法及装置
CN108319634B (zh) * 2017-12-15 2021-08-06 深圳创新科技术有限公司 分布式文件系统的目录访问方法和装置
US11507533B2 (en) 2018-02-05 2022-11-22 Huawei Technologies Co., Ltd. Data query method and apparatus
CN114761913A (zh) * 2020-01-15 2022-07-15 阿里巴巴集团控股有限公司 分布式数据存储系统中的快速分区拆分解决方案
CN112148680B (zh) * 2020-09-27 2024-04-05 极道科技(北京)有限公司 一种基于分布式图数据库的文件系统元数据管理方法
CN113128592B (zh) * 2021-04-20 2022-10-18 重庆邮电大学 一种用于异构的医疗器械标识解析方法、系统及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6738762B1 (en) * 2001-11-26 2004-05-18 At&T Corp. Multidimensional substring selectivity estimation using set hashing of cross-counts
CN1614591A (zh) * 2004-12-02 2005-05-11 中国科学院计算技术研究所 一种组织和访问分布式文件系统目录的方法
CN1955958A (zh) * 2005-10-26 2007-05-02 腾讯科技(深圳)有限公司 一种基于目录树的分类数据存储及分类目录查询方法
CN101315640A (zh) * 2008-07-01 2008-12-03 中兴通讯股份有限公司 一种目录管理方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6738762B1 (en) * 2001-11-26 2004-05-18 At&T Corp. Multidimensional substring selectivity estimation using set hashing of cross-counts
CN1614591A (zh) * 2004-12-02 2005-05-11 中国科学院计算技术研究所 一种组织和访问分布式文件系统目录的方法
CN1955958A (zh) * 2005-10-26 2007-05-02 腾讯科技(深圳)有限公司 一种基于目录树的分类数据存储及分类目录查询方法
CN101315640A (zh) * 2008-07-01 2008-12-03 中兴通讯股份有限公司 一种目录管理方法和装置

Also Published As

Publication number Publication date
CN102024019A (zh) 2011-04-20

Similar Documents

Publication Publication Date Title
CN102024019B (zh) 一种分布式文件系统中基于后缀树的目录组织方法
US9830324B2 (en) Content based organization of file systems
US9047301B2 (en) Method for optimizing the memory usage and performance of data deduplication storage systems
CN102184211B (zh) 文件系统和检索、写入、修改或删除文件的方法与装置
CN104536959B (zh) 一种Hadoop存取海量小文件的优化方法
CN103020315B (zh) 一种基于主从分布式文件系统的海量小文件存储方法
CN107918612B (zh) 键值存储系统数据结构的实现方法和装置
US8402071B2 (en) Catalog that stores file system metadata in an optimized manner
US7228299B1 (en) System and method for performing file lookups based on tags
US8910044B1 (en) Playlist incorporating tags
CN103282899B (zh) 文件系统中数据的存储方法、访问方法及装置
US9047330B2 (en) Index compression in databases
CN103023982B (zh) 一种云存储客户端的低延迟元数据访问方法
CN104424219B (zh) 一种数据文件的管理方法及装置
JP2005267600A5 (zh)
WO2014182343A1 (en) Supporting enhanced content searches in an online content-management system
CN102768674A (zh) 一种基于路径结构的xml数据存储方法
CN105183391B (zh) 一种分布式数据平台下数据存储的方法和装置
CN107273443B (zh) 一种基于大数据模型元数据的混合索引方法
CN102521383A (zh) 一种分布式系统中的海量文件存储和访问方法
WO2023179787A1 (zh) 分布式文件系统的元数据管理方法和装置
CN103902693A (zh) 一种读优化的内存数据库t树索引结构的方法
JP6006740B2 (ja) インデックス管理装置
CN105468599A (zh) 一种存储虚拟化系统的元数据层次管理方法
CN111782150A (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
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220725

Address after: 100193 No. 36 Building, No. 8 Hospital, Wangxi Road, Haidian District, Beijing

Patentee after: Dawning Information Industry (Beijing) Co.,Ltd.

Patentee after: DAWNING INFORMATION INDUSTRY Co.,Ltd.

Address before: 100084 Beijing Haidian District City Mill Street No. 64

Patentee before: Dawning Information Industry (Beijing) Co.,Ltd.