CN102024019A - 一种分布式文件系统中基于后缀树的目录组织方法 - Google Patents
一种分布式文件系统中基于后缀树的目录组织方法 Download PDFInfo
- Publication number
- CN102024019A CN102024019A CN2010105365352A CN201010536535A CN102024019A CN 102024019 A CN102024019 A CN 102024019A CN 2010105365352 A CN2010105365352 A CN 2010105365352A CN 201010536535 A CN201010536535 A CN 201010536535A CN 102024019 A CN102024019 A CN 102024019A
- Authority
- CN
- China
- Prior art keywords
- node
- suffix tree
- directory entry
- suffix
- tree
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种分布式文件系统中基于后缀树的目录组织方法。首先将目录项按照名称分组,不同的组存储在存储服务器上不同的磁盘上,对于不同组的目录项,采用后缀树的方法组织起来并进行存储。
Description
技术领域
本发明涉及分布式文件系统中文件管理,具体涉及一种分布式文件系统中基于后缀树的目录组织方法。
背景技术
随着计算机技术的快速发展,网络、科学计算等领域对存储的要求越来越高,于是分布式文件系统渐渐被引入到这些领域,以满足这些领域的存储需要。
互联网等领域的应用有比较鲜明的特点,其中之一就是单个目录往往会存放百万甚至上亿个文件,如存放mp3文件和图片文件等,这些文件的特性是,通常以数字或字母组成文件名,如1.mp3、abc.jpg等。当目录中的目录项数目较多时,如果采用传统的似ext3的文件系统的目录组织方式,则目录项搜索的时间复杂度为0(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操作。采用后缀树的另一个优点是,在搜索目录项时,可以直接根据目录项名在后缀树中进行搜索,其时间复杂度为0(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、为后缀树设定一个节点数目限制,当后缀树的节点数目超过该门限时,需要对后缀树进行分裂;分裂时,将树根节点的所有子节点按照后缀的首字母分为两组,分别构建出一棵新的后缀树;记录下分布在每个子节点到根节点的边对应的字符串首字母,存储起来;当后缀树分裂后,每棵后缀树需要单独存储;随着时间的推移,那些长时间没有被访问的后缀树,可以回收以释放内存。
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 true CN102024019A (zh) | 2011-04-20 |
CN102024019B 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) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541985A (zh) * | 2011-10-25 | 2012-07-04 | 曙光信息产业(北京)有限公司 | 一种分布式文件系统中客户端目录缓存的组织方法 |
WO2013097115A1 (zh) * | 2011-12-28 | 2013-07-04 | 华为技术有限公司 | 文件目录存储方法、检索方法和设备 |
CN103678695A (zh) * | 2013-12-27 | 2014-03-26 | 中国科学院深圳先进技术研究院 | 一种并行处理方法及装置 |
CN108319634A (zh) * | 2017-12-15 | 2018-07-24 | 创新科存储技术(深圳)有限公司 | 分布式文件系统的目录访问方法和装置 |
CN110709824A (zh) * | 2018-02-05 | 2020-01-17 | 华为技术有限公司 | 一种数据查询方法及装置 |
CN112148680A (zh) * | 2020-09-27 | 2020-12-29 | 极道科技(北京)有限公司 | 一种基于分布式图数据库的文件系统元数据管理方法 |
CN113128592A (zh) * | 2021-04-20 | 2021-07-16 | 重庆邮电大学 | 一种用于异构的医疗器械标识解析方法、系统及存储介质 |
WO2021142643A1 (en) * | 2020-01-15 | 2021-07-22 | Alibaba Group Holding Limited | Fast partition splitting solution in distributed data storage systems |
CN115686380A (zh) * | 2022-12-16 | 2023-02-03 | 深圳市东信时代信息技术有限公司 | 一种文件存储的方法、装置、计算机设备及存储介质 |
Citations (4)
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 | 中兴通讯股份有限公司 | 一种目录管理方法和装置 |
-
2010
- 2010-11-04 CN CN 201010536535 patent/CN102024019B/zh active Active
Patent Citations (4)
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 | 中兴通讯股份有限公司 | 一种目录管理方法和装置 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541985A (zh) * | 2011-10-25 | 2012-07-04 | 曙光信息产业(北京)有限公司 | 一种分布式文件系统中客户端目录缓存的组织方法 |
WO2013097115A1 (zh) * | 2011-12-28 | 2013-07-04 | 华为技术有限公司 | 文件目录存储方法、检索方法和设备 |
CN103299297A (zh) * | 2011-12-28 | 2013-09-11 | 华为技术有限公司 | 文件目录存储方法、检索方法和设备 |
CN103678695A (zh) * | 2013-12-27 | 2014-03-26 | 中国科学院深圳先进技术研究院 | 一种并行处理方法及装置 |
CN103678695B (zh) * | 2013-12-27 | 2018-05-11 | 中国科学院深圳先进技术研究院 | 一种并行处理方法及装置 |
CN108319634A (zh) * | 2017-12-15 | 2018-07-24 | 创新科存储技术(深圳)有限公司 | 分布式文件系统的目录访问方法和装置 |
CN108319634B (zh) * | 2017-12-15 | 2021-08-06 | 深圳创新科技术有限公司 | 分布式文件系统的目录访问方法和装置 |
CN110709824A (zh) * | 2018-02-05 | 2020-01-17 | 华为技术有限公司 | 一种数据查询方法及装置 |
US11507533B2 (en) | 2018-02-05 | 2022-11-22 | Huawei Technologies Co., Ltd. | Data query method and apparatus |
CN110709824B (zh) * | 2018-02-05 | 2022-01-14 | 华为技术有限公司 | 一种数据查询方法及装置 |
WO2021142643A1 (en) * | 2020-01-15 | 2021-07-22 | Alibaba Group Holding Limited | Fast partition splitting solution in distributed data storage systems |
CN112148680A (zh) * | 2020-09-27 | 2020-12-29 | 极道科技(北京)有限公司 | 一种基于分布式图数据库的文件系统元数据管理方法 |
CN112148680B (zh) * | 2020-09-27 | 2024-04-05 | 极道科技(北京)有限公司 | 一种基于分布式图数据库的文件系统元数据管理方法 |
CN113128592A (zh) * | 2021-04-20 | 2021-07-16 | 重庆邮电大学 | 一种用于异构的医疗器械标识解析方法、系统及存储介质 |
CN113128592B (zh) * | 2021-04-20 | 2022-10-18 | 重庆邮电大学 | 一种用于异构的医疗器械标识解析方法、系统及存储介质 |
CN115686380A (zh) * | 2022-12-16 | 2023-02-03 | 深圳市东信时代信息技术有限公司 | 一种文件存储的方法、装置、计算机设备及存储介质 |
CN115686380B (zh) * | 2022-12-16 | 2024-04-19 | 深圳市东信时代信息技术有限公司 | 一种文件存储的方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102024019B (zh) | 2013-03-13 |
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 | |
CN103020315B (zh) | 一种基于主从分布式文件系统的海量小文件存储方法 | |
CN107918612B (zh) | 键值存储系统数据结构的实现方法和装置 | |
CN102184211B (zh) | 文件系统和检索、写入、修改或删除文件的方法与装置 | |
US8910044B1 (en) | Playlist incorporating tags | |
CN100468402C (zh) | 一种数据存储及查询方法 | |
US9047330B2 (en) | Index compression in databases | |
CN110321325B (zh) | 文件索引节点查找方法、终端、服务器、系统及存储介质 | |
CA2722643C (en) | Systems and methods for thumbnail management | |
CN103023982B (zh) | 一种云存储客户端的低延迟元数据访问方法 | |
KR100856245B1 (ko) | 파일 시스템 장치 및 그 파일 시스템의 파일 저장 및 파일 탐색 방법 | |
CN101464901B (zh) | 一种对象存储设备中的对象查找方法 | |
CN103064906B (zh) | 文件管理方法及装置 | |
CN104424219B (zh) | 一种数据文件的管理方法及装置 | |
CN102541985A (zh) | 一种分布式文件系统中客户端目录缓存的组织方法 | |
CN102024047A (zh) | 数据检索方法及装置 | |
CN102768674A (zh) | 一种基于路径结构的xml数据存储方法 | |
WO2023179787A1 (zh) | 分布式文件系统的元数据管理方法和装置 | |
CN106570113A (zh) | 一种海量矢量切片数据云存储方法及系统 | |
CN103473258A (zh) | 云存储文件系统 | |
US20110153677A1 (en) | Apparatus and method for managing index information of high-dimensional data | |
CN104133970A (zh) | 一种数据空间管理方法及装置 | |
CN103136294B (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. |