CN101526965B - 一种磁盘文件的索引节点定位方法和装置 - Google Patents

一种磁盘文件的索引节点定位方法和装置 Download PDF

Info

Publication number
CN101526965B
CN101526965B CN2009101374754A CN200910137475A CN101526965B CN 101526965 B CN101526965 B CN 101526965B CN 2009101374754 A CN2009101374754 A CN 2009101374754A CN 200910137475 A CN200910137475 A CN 200910137475A CN 101526965 B CN101526965 B CN 101526965B
Authority
CN
China
Prior art keywords
file
node
remainder
document name
search
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.)
Expired - Fee Related
Application number
CN2009101374754A
Other languages
English (en)
Other versions
CN101526965A (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.)
Huawei Digital Technologies Chengdu Co Ltd
Original Assignee
Huawei Symantec Technologies 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 Huawei Symantec Technologies Co Ltd filed Critical Huawei Symantec Technologies Co Ltd
Priority to CN2009101374754A priority Critical patent/CN101526965B/zh
Publication of CN101526965A publication Critical patent/CN101526965A/zh
Application granted granted Critical
Publication of CN101526965B publication Critical patent/CN101526965B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

本发明实施例提供一种磁盘文件的索引节点定位方法和装置,所述方法包括:获取文件对应的数字文件名;利用数字文件名除以一个预置值,获取对应的商和余数;根据商和余数定位文件的索引节点。另一方面,本发明实施例提供了一种磁盘文件的索引节点定位装置,所述装置包括:获取单元,用于获取文件对应的数字文件名;除法单元,用于利用数字文件名除以一个预置值,获取对应的商和余数;定位单元,用于根据商和余数定位文件的索引节点。本发明上述实施例提高了磁盘文件的查找速度,提升了文件系统的性能。

Description

一种磁盘文件的索引节点定位方法和装置
技术领域
本发明涉及计算机领域,尤其涉及一种磁盘文件的索引节点定位方法和装置。
背景技术
如图1所示,是现有技术磁盘文件的布局示意图。整个磁盘文件由多个块组(Block group)组成,每个Block group中的结构相同,分别由超级块(Super Block,用于记录文件系统的信息)、块组描述符(Group Descriptors,用于描述该块组的信息)、数据块标志位(Datablock Bitmap,用于记录该块组中被使用的数据块)、索引节点标志位(inode Bitmap,用于记录该块组中被使用的inode)、索引节点表(inode table,用于由该块组中的所有inode组成)以及数据块(Data blocks,用于存储文件的数据)组成。
在图1这种磁盘布局中,对文件的查找主要是先通过索引节点表(inode table)找到根目录的inode,然后通过读取该inode指向的数据(data)来遍历根目录下的所有子目录和文件,找到要查找的路径中的子目录的inode,然后继续通过读取该inode指向的data来遍历更下一级的子目录和文件,一直到找到要查找的文件的inode,然后读取该inode指向的data,获得文件内容。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:现有技术在图1的文件系统中,对文件的查找是通过文件名字符的对比来进行的,需要对查找路径中每一级目录的所有子目录和文件的名字进行对比字符串,从而找到目标文件的索引节点,从而读取该索引节点指向的数据。由于这种这种定位索引节点的方式需要大量的存储节点,从而导致磁盘文件的查找速度比较慢,对系统查找文件的性能有影响。
发明内容
本发明实施例提供一种磁盘文件的索引节点定位方法和装置,以提高文件的查找速度。
一方面,本发明实施例提供了一种磁盘文件的索引节点定位方法,所述方法包括:获取文件对应的数字文件名;利用数字文件名除以一个预置值,获取对应的商和余数;根据商和余数,查找采用基数树状结构预置存储文件的索引节点的基数树,具体根据商查找基数树的节点级数,根据余数查找节点级数中的对应位的指针,根据指针定位文件的索引节点。
另一方面,本发明实施例提供了一种磁盘文件的索引节点定位装置,所述装置包括:获取单元,用于获取文件对应的数字文件名;除法单元,用于利用数字文件名除以一个预置值,获取对应的商和余数;定位单元,用于根据商和余数,查找采用基数树状结构预置存储文件的索引节点的基数树,具体根据商查找基数树的节点级数,根据余数查找节点级数中的对应位的指针,根据指针定位文件的索引节点。
本发明实施例提供的技术方案,采用获取文件对应的数字文件名;利用数字文件名除以一个预置值,获取对应的商和余数;根据所述商和余数定位文件的索引节点以找到所述文件,从而跳跃了大量的存储节点,最终可以提高文件的查找速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术磁盘文件的布局示意图;
图2是本发明实施例一种磁盘文件的索引节点定位方法流程图;
图3是本发明应用实例采用一种基数(radix)树的树状结构示意图;
图4是本发明应用实例对象插入前的radix树的树状结构示意图;
图5是本发明应用实例对象插入后的radix树的树状结构示意图;
图6是本发明应用实例两个文件的radix树的树状结构示意图;
图7是本发明实施例一种磁盘文件的索引节点定位装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明实施例保护的范围。
现有技术对文件的查找是通过文件名字符的对比来进行的,需要对查找路径中每一级目录的所有子目录和文件的名字进行对比字符串,从而找到目标文件,这种查找方式速度比较慢,对系统的性能有影响。而本发明实施例通过在磁盘中存放一种树状数据结构来快速查找访问文件,提高查找效率。同时该树状结构的大小可以根据存储的文件的个数动态增加,最大可能的节省磁盘空间。
如图2所示,是本发明实施例一种磁盘文件的索引节点定位方法流程图,所述方法包括:
步骤201,获取文件对应的数字文件名。
优选的,可以查找预置的映射关系,获取所述文件的原始文件名对应的数字文件名。所述预置的映射关系可以包括利用ASCII码建立的该文件的原始文件名和数字文件名之间的映射关系等。
普通文件名由各种无规律的字符组成,我们可以使用这些字符各自对应的ASCII码来将文件名转换为唯一的数字。例如,文件名为a,那么根据a对应的ASCII码为97,我们可以将文件名转换为097,如果文件名为file,我们可以转换为102 105 108 101,这样,对应任意的文件名,都可以以数字的方式来命名,然后就可以采用上面提到的radix树的方式来组织查找访问。为了使转换后的数字文件名不同,对于本来就是纯数字的文件名,也可以使用各自对应的ASCII码来将文件名转换为对应的唯一的数字文件名。
步骤202,利用数字文件名除以一个预置值,获取对应的商和余数。
优选的,所述预置值可以为所述文件系统中一个数据块包含的最大指针个数,所述预置值包括511。
步骤203,根据商和余数定位文件的索引节点。
优选的,可以根据所述商和余数,查找采用基数树状结构预置存储所述文件的索引节点的基数树,具体利用所述商查找所述基数树的节点级数,然后利用所述余数查找该节点级数中的对应位的指针,从而根据该指针定位所述文件的索引节点。
本发明实施例因为采用获取文件对应的数字文件名;利用数字文件名除以一个预置值,获取对应的商和余数;根据所述商和余数来定位文件的索引节点,以访问所述文件的数据,而现有技术需要对查找路径中每一级目录的所有子目录和文件的名字进行对比字符串,从而找到目标文件的索引节点的方式,由于本发明实施例的查找方案跳跃过了大部分存储节点,所以提高了磁盘文件的查找速度,提升了文件系统的性能
如图3所示,是本发明应用实例采用一种基数(radix)树的树状结构示意图,用来快速查找访问文件。
1.该树状数据结构主要由三部分组成:
1)根节点(root):在磁盘中保留一块固定的数据块(假设为4K),作为树状结构的根节点,root中记录有整个树的高度,以及指向一级节点的指针。
2)节点(node):每个node也是占用一个数据块大小,按照在64位环境中指针占用8个字节来计算,一个4K数据块可以包含有511个指针,以及两个无符号整数(unsigned int)型结构,这两个unsigned int型结构分别记录树高和该节点已使用的指针个数。如果该节点为最底层的节点,则指针指向的是inode,否则指针指向的是下一级的节点(node)。
3)索引节点(inode):每个inode对应一个文件,里面保存有该文件的属性信息,以及指向该文件的数据(data)的指针。
2.节点的插入:
1)如图4所示,是本发明应用实例对象插入前的radix树的树状结构示意图。系统初始化时,保留一块数据块作为root节点,同时该root指向一个分配的数据块node1,树高初始化为1。
2)如图5所示,是本发明应用实例对象插入后的radix树的树状结构示意图。当有文件写入时,node1的第一个指针指向该文件的inode,第二个指针指向第二个文件的inode,一直到第511个指针也指向了相应的inode。当再有新的文件写入时,分配一个数据块node2,root的指针指向这个新分配的node2,同时node2的第一个指针指向原来的node1,第二个指针指向另一个新分配的数据块node3,node3的指针再指向新的文件的inode。依次类推,树的结构随着文件的增加而相应增大。
3)文件的inode始终处于叶子节点上。
3.inode的查找过程:
1)假设树高为H,文件名为N;
2)如果H=1,则说明文件个数不超过511个,直接找到的node的相应的偏移指针即可。
3)如果H>1,则N/511,通过除得的商在一级node中找到相应的指针,同时H-1;
如果此时H=1,说明已找到最后一级node,那么余数就是要查找的文件对应的inode。
4)如果H仍然大于1,则N继续整除511,除得的商指向相应的node,H-1。
5)重复3、4步,直到H=1,则找到相应的inode。
例1:树高H=1,N=300,直接通过node节点找到第300个inode。
例2:树高H=2,N=1000,则1000/511,商为1,余数为489,那么,通过一级节点的第二个指针找到二级节点,该二级节点的第489个指针指向的是要查找的文件的inode。
如图6所示,是本发明应用实例两个文件的radix树的树状结构示意图。如果只有文件1和文件1000的话,那么根据最大的文件名可以确定该树应该有两级节点,也就是说树的高度为2。那么文件1就放在第一个二级节点的1号索引位置(因为1/511=0,1%511=1),文件1000放在第二个二级节点的489号索引位置(因为1000/511=1,1000%511=489)。而其他的索引中都是空的,没有存放指针,直到有新的文件(1~1000之间)加入进来。如果新的文件名大于511*511,则表示该树目前的高度不够,需要扩展。那么,申请一个新的节点node4,由root指向node4,再由node4的0号索引指向原来的node2,这样可以实现树的动态扩展。
4.节点的删除:
节点中有记录该节点已使用的指针个数的字段,当指针对应的inode被删除时,该指针会被清空,当该节点的所有指针都清空时,该节点可以回收,释放占用的空间。
本发明实施例技术方案采用radix树状结构来查找索引节点定位文件,有效的提高了查找速度,减少了响应时间,对整个系统的性能尤其是读大量文件的操作有好的提升效果。采用radix树状的结构来快速直接定位文件inode,提高文件的查找访问速度。同时,树状结构的大小根据系统存储的文件的数量的增加而动态增加,节省磁盘空间。本发明实施例技术方案中的数据结构有很多种,除了以上提到的radix树以外还有很多其他的数据结构。关键是查找访问方法中利用文件名为数字的特点进行除法运算,根据除得的商和余数就可以直接定位到文件的inode。对于普通文件名的文件系统,在普通文件名到数字文件名的映射转换方式上,除了ASCII码的方式外,还可以有其他类似的方法,例如在ASCII码基础上做的一些算法变化等等,关键是普通文件名与数字文件名之间是一一对应的关系。
如图7所示,是本发明实施例一种磁盘文件的索引节点定位装置结构示意图,所述装置30包括:
获取单元301,用于获取文件对应的数字文件名。
除法单元302,用于利用数字文件名除以一个预置值,获取对应的商和余数。
定位单元303,用于根据商和余数定位文件的索引节点。
优选的,所述获取单元301,可以用于查找预置的映射关系,获取所述文件的文件名对对应的数字文件名。所述预置的映射关系包括利用ASCII码建立的映射关系。所述预置值为所述文件系统中一个数据块包含的最大指针个数,所述预置值包括511。所述定位单元303,用于根据所述商和余数,查找采用基数树状结构预置存储所述文件的索引节点的基数树,具体利用所述商查找所述基数树的节点级数,然后利用所述余数查找该节点级数中的对应位的指针,从而根据该指针定位所述文件的索引节点。
本发明实施例因为采用获取文件对应的数字文件名;利用数字文件名除以一个预置值,获取对应的商和余数;根据所述商和余数定位文件的索引节点,以访问所述文件的数据,所以对于现有技术需要对查找路径中每一级目录的所有子目录和文件的名字进行对比字符串,从而找到目标文件的索引节点的方式,由于本发明实施例的查找方案跳跃过了大部分存储节点,所以提高了磁盘文件的查找速度,提升了文件系统的性能。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括上述全部或部分步骤,所述的存储介质,如:ROM/RAM、磁盘、光盘等。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种磁盘文件的索引节点定位方法,其特征在于,所述方法包括:
获取所述文件对应的数字文件名;
利用所述数字文件名除以一个预置值,获取对应的商和余数;
根据所述商和余数,查找采用基数树状结构预置存储所述文件的索引节点的基数树,具体根据所述商查找所述基数树的节点级数,根据所述余数查找所述节点级数中的对应位的指针,根据所述指针定位所述文件的索引节点。
2.如权利要求1所述方法,其特征在于,所述获取所述文件对应的数字文件名的步骤包括:
查找预置的映射关系,获取所述文件的原始文件名对应的数字文件名。
3.如权利要求2所述方法,其特征在于,
所述预置的映射关系包括利用ASCII码建立的所述文件的原始文件名和数字文件名之间的映射关系。
4.如权利要求1所述方法,其特征在于,
所述预置值为所述文件中一个数据块包含的最大指针个数,所述预置值包括511。
5.一种磁盘文件的索引节点定位装置,其特征在于,所述装置包括:
获取单元,用于获取所述文件对应的数字文件名;
除法单元,用于利用所述数字文件名除以一个预置值,获取对应的商和余数;
定位单元,用于根据所述商和余数,查找采用基数树状结构预置存储所述文件的索引节点的基数树,具体根据所述商查找所述基数树的节点级数,根据所述余数查找所述节点级数中的对应位的指针,根据所述指针定位所述文件的索引节点。
6.如权利要求5所述装置,其特征在于,
所述获取单元,用于查找预置的映射关系,获取所述文件的原始文件名对应的数字文件名。
7.如权利要求6所述装置,其特征在于,
所述预置的映射关系包括利用ASCII码建立的所述文件的原始文件名和数字文件名之间的映射关系。
8.如权利要求5所述装置,其特征在于,
所述预置值为所述文件中一个数据块包含的最大指针个数,所述预置值包括511。
CN2009101374754A 2009-04-29 2009-04-29 一种磁盘文件的索引节点定位方法和装置 Expired - Fee Related CN101526965B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009101374754A CN101526965B (zh) 2009-04-29 2009-04-29 一种磁盘文件的索引节点定位方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009101374754A CN101526965B (zh) 2009-04-29 2009-04-29 一种磁盘文件的索引节点定位方法和装置

Publications (2)

Publication Number Publication Date
CN101526965A CN101526965A (zh) 2009-09-09
CN101526965B true CN101526965B (zh) 2011-01-05

Family

ID=41094831

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101374754A Expired - Fee Related CN101526965B (zh) 2009-04-29 2009-04-29 一种磁盘文件的索引节点定位方法和装置

Country Status (1)

Country Link
CN (1) CN101526965B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101673289B (zh) * 2009-10-10 2012-08-08 成都市华为赛门铁克科技有限公司 分布式文件存储构架的构建方法和装置
CN103246718B (zh) * 2013-04-27 2016-06-08 华为技术有限公司 文件访问方法、装置和设备
US10235130B2 (en) 2014-11-06 2019-03-19 Microsoft Technology Licensing, Llc Intent driven command processing
CN105095025B (zh) * 2015-08-28 2018-11-02 小米科技有限责任公司 恢复ext文件系统中已删除文件的方法及装置
CN107482257A (zh) * 2016-10-21 2017-12-15 宝沃汽车(中国)有限公司 动力电池的监测方法、系统及车辆
CN106776891A (zh) * 2016-11-30 2017-05-31 山东浪潮商用系统有限公司 一种文件存储的方法和装置
CN106850999A (zh) * 2017-02-23 2017-06-13 惠州Tcl移动通信有限公司 一种基于移动终端的音乐播放列表存储处理方法及系统
CN108897698B (zh) * 2018-06-29 2021-10-29 郑州云海信息技术有限公司 一种文件数据块寻址方法、系统及设备和存储介质
CN111625198A (zh) * 2020-05-28 2020-09-04 深圳佰维存储科技股份有限公司 一种元数据缓存方法和元数据缓存装置

Also Published As

Publication number Publication date
CN101526965A (zh) 2009-09-09

Similar Documents

Publication Publication Date Title
CN101526965B (zh) 一种磁盘文件的索引节点定位方法和装置
US10346363B2 (en) Deduplicated file system
CN101464901B (zh) 一种对象存储设备中的对象查找方法
US4945475A (en) Hierarchical file system to provide cataloging and retrieval of data
US20110258374A1 (en) Method for optimizing the memory usage and performance of data deduplication storage systems
US8099421B2 (en) File system, and method for storing and searching for file by the same
CN102024047B (zh) 数据检索方法及装置
CN103282899B (zh) 文件系统中数据的存储方法、访问方法及装置
CN102915278A (zh) 重复数据删除方法
CN101504670A (zh) 数据操作方法、系统、客户端和数据服务器
CN103064906B (zh) 文件管理方法及装置
CN102024019B (zh) 一种分布式文件系统中基于后缀树的目录组织方法
WO2021208239A1 (zh) 一种低延迟的文件系统地址空间管理方法、系统及介质
CN102253985B (zh) 一种文件系统数据的管理方法及系统
CN112395288B (zh) 基于希尔伯特曲线的r树索引合并更新方法、装置及介质
CN106557571A (zh) 一种基于k‑v存储引擎的数据去重方法及装置
TWI397060B (zh) 物件導向儲存裝置之磁碟配置方法
KR100484942B1 (ko) 대용량 파일시스템의 디렉토리 관리방법
GB2196764A (en) Hierarchical file system
CN107273443B (zh) 一种基于大数据模型元数据的混合索引方法
CN106934066A (zh) 一种元数据处理方法、装置和存储设备
CN103810114A (zh) 分配存储空间的方法及装置
JP6006740B2 (ja) インデックス管理装置
CN104537023A (zh) 一种反向索引记录的存储方法及装置
JP2011175231A (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
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: HUAWEI DIGITAL TECHNOLOGY (CHENGDU) CO., LTD.

Free format text: FORMER NAME: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Patentee after: Huawei Symantec Technologies Co., Ltd.

Address before: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Patentee before: Chengdu Huawei Symantec Technologies Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110105

Termination date: 20180429