发明内容
为了解决提高文件的访问效率的问题,本发明实施例提供了一种文件访问方法、装置和设备。所述技术方案如下:
第一方面,提供了一种文件访问方法,所述方法包括:
根据文件路径名,查找第一索引节点中的扩展数据段,所述扩展数据段用于表示热点项目以及其对应的地址;
根据所述扩展数据段与所述文件路径名,获取第二索引节点;
根据所述第二索引节点,获取所述文件路径名对应的文件。
在第一方面的第一种可能的实施方式中,所述文件路径名包括目录名和文件名,相应地,根据所述扩展数据段与所述文件路径名,获取第二索引节点,包括:
当确定所述扩展数据段中包括所述目录名匹配的热点目录项时,根据匹配的热点目录项中的地址获取第二索引节点;
相应地,根据所述第二索引节点,获取所述文件路径名对应的文件,包括:
根据所述第二索引节点所包含的地址和所述文件路径名继续进行查找,直到获取到所述文件路径名对应的文件。
在第一方面的第二种可能的实施方式中,所述文件路径名包括目录名和文件名,相应地,根据所述扩展数据段与所述文件路径名,获取第二索引节点,包括:
当确定所述扩展数据段中包括所述文件名匹配的热点目录项时,根据匹配的热点目录项对应的地址获取第二索引节点。
在第一方面的第三种可能的实施方式中,根据文件路径名,查找第一索引节点中的扩展数据段,所述扩展数据段用于表示热点项目以及其对应的地址之前,所述方法还包括:
确定符合预设热点条件的目录项和所述目录项所属的目录文件;
根据所述目录项所属的目录文件,确定所述目录文件的地址对应的索引节点;
将所述符合预设热点条件的目录项,写入所述目录文件的地址对应的索引节点的扩展数据段。
在第一方面的第四种可能的实施方式中,,扩展数据段包括热点项目以及其对应的地址,或,所述扩展数据段包括热点项目的特征值以及其对应的地址。
第二方面,提供了一种文件访问装置,其特征在于,所述装置包括:
查找模块,用于根据文件路径名,查找第一索引节点中的扩展数据段,所述扩展数据段用于表示热点项目以及其对应的地址;
第一获取模块,用于根据所述扩展数据段与所述文件路径名,获取第二索引节点;
第二获取模块,用于根据所述第二索引节点,获取所述文件路径名对应的文件。
在第二方面的第一种可能的实施方式中,所述文件路径名包括目录名和文件名,相应地,所述第一获取模块用于当确定所述扩展数据段中包括所述目录名匹配的热点目录项时,根据匹配的热点目录项中的地址获取第二索引节点;
相应地,所述第二获取模块用于根据所述第二索引节点所包含的地址和所述文件路径名继续进行查找,直到获取到所述文件路径名对应的文件。
在第二方面的第二种可能的实施方式中,所述文件路径名包括目录名和文件名,相应地,所述第一获取模块用于当确定所述扩展数据段中包括所述文件名匹配的热点目录项时,根据匹配的热点目录项对应的地址获取第二索引节点。
在第二方面的第三种可能的实施方式中,所述装置还包括:
第一确定模块,用于确定符合预设热点条件的目录项和所述目录项所属的目录文件;
第二确定模块,用于根据所述目录项所属的目录文件,确定所述目录文件的地址对应的索引节点;
写入模块,用于将所述符合预设热点条件的目录项,写入所述目录文件的地址对应的索引节点的扩展数据段。
在第二方面的第四种可能的实施方式中,扩展数据段包括热点项目以及其对应的地址,或,所述扩展数据段包括热点项目的特征值以及其对应的地址。
第三方面,提供了一种文件访问设备,所述设备包括:一个或者一个以上的处理器;存储器;以及一个或者一个以上的程序,其中所述一个或者一个以上程序存储于所述存储器中,且经配置以由所述一个或者一个以上处理器执行,所述一个或者一个以上程序包含用于进行以下操作的指令:
根据文件路径名,查找第一索引节点中的扩展数据段,所述扩展数据段用于表示热点项目以及其对应的地址;
根据所述扩展数据段与所述文件路径名,获取第二索引节点;
根据所述第二索引节点,获取所述文件路径名对应的文件。
本发明实施例提供的技术方案带来的有益效果是:
本发明提供了一种文件访问方法、装置和设备,根据文件路径名,查找第一索引节点中的扩展数据段,所述扩展数据段用于表示热点项目以及其对应的地址;根据所述扩展数据段与所述文件路径名,获取第二索引节点;根据所述第二索引节点所包含的地址,获取所述文件路径名对应的文件。采用本发明提供的技术方案,在索引节点的扩展数据段中添加热点项目及其对应的地址,可以加快获取索引节点的速度,缩短文件的访问时间。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
为了便于描述,在此对本发明涉及到的技术词汇进行介绍:
(1)文件路径名,文件路径名具体由在访问文件时所历经的目录名组成的。如文件路径名dir1/dir2/hotdir31.doc,该文件路径名由目录名dir1、dir2、hotdir31组成,目录名之间用“/”隔开。文件路径具体可以分为绝对路径和相对路径。绝对路径是从“/”开始的路径,如/home/user1/abc.txt,相对路径是从当前路径开始的路径,如home/user1/abc.txt。
(2)索引节点(inode),索引节点用于保存具体的拓扑信息。索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。每个文件除了有一个索引节点(inode)数据结构外,还有一个目录项(dentry)数据结构,dentry结构中有个d_inode指针指向相应的inode结构。Dentry结构代表的逻辑意义上的文件,所描述的是文件逻辑上的属性,因此dentry目录项在磁盘上并没有对应的映像;而inode结构代表的是物理意义上的文件,记录的是物理上的属性。一个有效的dentry结构必定有一个inode结构。只要dentry结构是有效的,则其指针d_inode必定指向一个inode结构。
为了进一步说明本发明的作用效果,介绍一种连续分配策略以便和本发明进行对比,该连续分配策略将逻辑文件存储到邻接的各物理盘块中,保证了逻辑文件的顺序与存储器中文件占用盘块的顺序的一致性。图1a是一种连续分配策略结构示意图,参见图1a,图中左边是物理盘块的存储顺序,右边是逻辑文件的顺序,可以看出左边的物理盘块的各个文件的存储顺序和右侧的文件名称对应的开始顺序是一致的,左边按照文件名称为count、f、tr、mail、list的顺序进行存储,黑色方块表示存储了数据的磁盘位置,白色方块表示没有存储数据的磁盘位置,右边的文件路径下的文件名和左侧一致,存储的位置包括开始和长度的信息,如文件名为count的文件存储在开始位置为0,连续长度为2的磁盘中,其他文件名的开始和长度对应的位置信息与左侧的文件物理地址一一对应。
图1b是本发明实施例中提供的一种文件访问方法流程图,本发明实施例的执行主体是终端设备,该终端设备可以是计算机、存储设备等设备,参见图1a,该方法包括:
101:根据文件路径名,查找第一索引节点中的扩展数据段,所述扩展数据段包括热点目录项,所述热点目录项用于表示热点项目以及其对应的地址;
本发明实施例是文件访问的过程,该访问是根据待访问文件的文件路径名进行的。本发明实施例中仅以该文件路径是绝对路径为例进行说明,该绝对路径的文件路径名包括至少一个目录名和一个文件名,在访问该文件时,需要根据文件路径名中的各个目录名的顺序,依次查找各个目录名对应的索引节点的地址。
其中,第一索引节点是指文件路径名中当前正在查找的目录名对应的索引节点。
其中,热点项目是指存储在索引节点中的扩展数据段中的目录名和/或文件名,对应的地址则是该目录名和/或文件名对应的索引节点地址、编号或节点标识。
其中,扩展数据段是索引节点中的预留的空间,本发明实施例在扩展数据段中存储一组热点目录项,一组热点目录项包括多个热点目录项,每个热点目录项由热点项目和对应的地址组成。热点目录项的个数可以由技术人员设置,也可以由用户进行设置,本发明实施例不作具体限定,优选地,热点目录项的个数可以为100。
索引节点除了包含预留的可扩展数据段以外,还包含目录文件或文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。
102:根据所述扩展数据段与所述文件路径名,获取第二索引节点;
其中,第二索引节点是指根据第一索引节点的扩展数据段所表示的热点项目以及其对应的地址获取的索引节点;或,根据第一索引节点保存的目录文件地址对应的目录文件和文件路径名中下一级目录名获取的索引节点。
在查找到第一索引节点后,根据文件路径名中的下一级目录,在第一索引节点的扩展数据段中进行查找,如果查找到匹配的热点目录项,说明该目录为热点目录项,根据该热点目录项中的地址,获取第二索引节点;如果在第一索引节点的扩展数据段中没有查找到对应的热点目录项,说明该目录为非热点目录项,则根据第一索引节点保存的目录文件地址,获取对应的目录文件,在该目录文件中查找该下一级目录对应的目录项,根据该目录项对应的地址,获取第二索引节点。
103:根据所述第二索引节点所包含的地址,获取所述文件路径名对应的文件。
文件路径名可能包括多个目录名,那么目录名对应的索引节点的查找方式与步骤101-102的方式相同,直到查找到文件路径名中的文件名对应的索引节点,根据文件名对应的索引节点,获取该文件,实现对该文件的访问。
本发明实施例通过根据文件路径名,查找第一索引节点中的扩展数据段,所述扩展数据段包括热点目录项,所述热点目录项用于表示热点项目以及其对应的地址;根据所述扩展数据段与所述文件路径名,获取第二索引节点;根据所述第二索引节点所包含的地址,获取所述文件路径名对应的文件。采用本发明提供的技术方案,在索引节点的扩展数据段中添加热点的热点项目及其对应的地址,可以加快获取索引节点的速度,缩短文件的访问时间。
可选地,在图1b所示实施例的技术方案的基础上,所述文件路径名包括目录名和文件名,相应地,该步骤102“根据所述扩展数据段与所述文件路径名,获取第二索引节点”,包括步骤102a:
102a:当确定所述扩展数据段中包括所述目录名匹配的热点目录项时,根据匹配的热点目录项中的地址获取第二索引节点。
其中,目录名是指文件路径名中目录名,文件名是指文件路径名中的文件名。如文件路径名为dir1/dir2/dir3/hotdir41.doc,则目录名包括:第一目录名dir1、第二目录名dir2和第三目录名dir3,文件名为hotdir41.doc。
若当前目录为第一目录名dir1,当前目录对应的索引节点为第一索引节点,在第一索引节点的数据扩展段中查找与第二目录名dir2匹配的热点目录项,当确定第一索引节点的扩展数据段中包括与dir2匹配的热点目录项时,根据该热点目录项中的地址,获取第二索引节点。
相应地,步骤103“根据所述第二索引节点所包含的地址,获取所述文件路径名对应的文件”,包括步骤103a:
103a:根据所述第二索引节点所包含的地址和所述文件路径名继续进行查找,直到获取到所述文件路径名对应的文件。
当获取到的第二索引节点为文件路径名中的目录名对应的索引节点时,则根据该第二索引节点所包含的目录文件的地址,获取该第二索引节点对应的目录文件,并根据当前目录名的下一级目录名以及第二索引节点对应的目录文件中的目录项继续进行文件访问。
当在根据文件路径名继续进行查找的过程中,查找的索引节点包括扩展数据段,则根据步骤102a进行查找,如果查找的索引节点不包括扩展数据段,根据现有技术的查找方法进行查找,直到获取到该文件路径名对应的文件为止。
本发明实施例通过根据文件路径名,查找第一索引节点中的扩展数据段,所述扩展数据段用于表示热点项目以及其对应的地址;根据所述扩展数据段与所述文件路径名,获取第二索引节点;根据所述第二索引节点所包含的地址,获取所述文件路径名对应的文件。采用本发明提供的技术方案,在索引节点的扩展数据段中添加热点项目及其对应的地址,可以加快获取索引节点的速度,缩短文件的访问时间。通过在索引节点的扩展数据段中,查找和目录名匹配的热点目录项,加快了目录名对应的索引节点的访问速度。
可选地,在图1b所示实施例的技术方案的基础上,所述文件路径名包括目录名和文件名,相应地,该步骤102“根据所述扩展数据段与所述文件路径名,获取第二索引节点”,包括:当确定所述扩展数据段中包括所述文件名匹配的热点目录项时,根据匹配的热点目录项对应的地址获取第二索引节点。
当确定在第一索引节点的扩展数据段中存在与文件名匹配的热点目录项时,根据该热点目录项中的地址,获取该文件的第二索引节点,该第二索引节点中的地址就是该文件的地址,计算机根据该地址访问该文件。
本发明实施例通过根据文件路径名,查找第一索引节点中的扩展数据段,所述扩展数据段用于表示热点项目以及其对应的地址;根据所述扩展数据段与所述文件路径名,获取第二索引节点;根据所述第二索引节点所包含的地址,获取所述文件路径名对应的文件。采用本发明提供的技术方案,在索引节点的扩展数据段中添加热点项目及其对应的地址,可以加快获取索引节点的速度,缩短文件的访问时间。通过在索引节点的扩展数据段中,查找和目录名匹配的热点目录项,加快了目录名对应的索引节点的访问速度。通过查找与文件名对应的热点目录项,加快了文件名对应的索引节点的访问速度。
可选地,在图1b所示实施例的技术方案的基础上,该步骤101“根据文件路径名,查找第一索引节点中的扩展数据段,所述扩展数据段用于表示热点目录项以及其对应的地址”之前,包括:
101a:确定符合预设热点条件的目录项和所述目录项所属的目录文件;
其中,预设热点条件是指在一段时间内访问频率达到预设次数的目录项。对于计算机文件系统而言,热点目录项是动态变化的,一些目录项在不同的时间段内的访问频率是由用户的需求决定的,所以,需要实时地判断目录项是否符合预设热点条件,如果是,将该目录项确定为热点目录项,如果否,该目录项不是热点目录项。对索引节点中扩展数据段中的热点目录项进行更新时,增加访问频率高的热点目录项,删除访问频率低的热点目录项。
101b:根据所述目录项所属的目录文件,确定所述目录文件的地址对应的索引节点;
其中,目录文件包括目录名和/或文件名、目录名和/或文件名对应的索引节点地址。一个目录文件包含多个目录项,一个目录项包含一个目录名或文件名以及其对应的地址。需要说明的是,该目录名和文件名可以是指目录名或文件名的特征值。
在确定目录项为热点目录项后,获取对应于该热点目录项的索引节点。
101c:将所述符合预设热点条件的目录项,写入所述目录文件的地址对应的索引节点的扩展数据段。
将确定的热点目录项写入对应于该目录文件的索引节点的扩展数据段中,可选地,在该目录文件中删除该热点目录项对应的目录项。如果扩展数据段中的热点目录项已经达到预设的个数,则对应删除相同数量的扩展数据段中的访问频率低的热点目录项,将删除的热点目录项作为目录项写入对应的目录文件中。
计算机在实际进行扩展数据段中的热点目录项的添加和删除时,可以根据热点信息替换算法进行热点目录项的更新,如LRU(LeastRecentlyUsed,最近最少使用算法),将最常访问的热点目录项替换到对应于目录文件的索引节点的扩展数据段中,从而保证可以在扩展数据段中快速查找热点目录项对应的索引节点地址,避免了在大量的目录文件中查找,加快了文件的访问速度。
本发明实施例通过根据文件路径名,查找第一索引节点中的扩展数据段,所述扩展数据段用于表示热点项目以及其对应的地址;根据所述扩展数据段与所述文件路径名,获取第二索引节点;根据所述第二索引节点所包含的地址,获取所述文件路径名对应的文件。采用本发明提供的技术方案,在索引节点的扩展数据段中添加热点项目及其对应的地址,可以加快获取索引节点的速度,缩短文件的访问时间。通过在索引节点的扩展数据段中,查找和目录名匹配的热点目录项,加快了目录名对应的索引节点的访问速度。通过查找与文件名对应的热点目录项,加快了文件名对应的索引节点的访问速度。通过对热点目录项的更新,增加了文件系统访问文件的灵活性。
可选地,在图1b所示实施例的技术方案的基础上,扩展数据段包括热点项目以及其对应的地址,或,所述扩展数据段包括热点项目的特征值以及其对应的地址。
索引节点的扩展数据段中可以存储热点项目的名称及其对应的地址,或,热点项目的名称经过哈希算法获取的特征值以及其对应地址。相应地,在索引节点的扩展数据段中进行匹配时,就可以使用热点项目的名称的字符串进行匹配或者使用热点项目的名称的特征值进行匹配,为了加快匹配的速度,还可以选用其他的特征值进行匹配,对此本发明实施例不作具体限定。
为了使本领域技术人员更好地理解本发明中索引节点和目录文件之间的关系,图1c是本发明实施例提供的一种索引节点的结构示意图。参见图1c,inode是索引节点,在inode的扩展数据段中添加了热点目录项1和热点目录项2等,根据路径名查找文件过程中,如果在inode的扩展数据段中存在和目录或文件匹配的热点目录项,可以直接根据热点目录项中的地址获取该目录或地址的inode。如果在扩展数据段中不存在和目录或文件匹配的热点目录项,则根据inode的地址获取目录文件,在该目录文件的目录项中进行查找,直到找到和该目录或文件匹配的目录项,根据该目录项中的地址获取inode。通过在inode的扩展数据段中添加热点目录项,对于符合预设热点条件的目录项,可以直接根据热点目录项找到对应的inode,避免了在大量的目录文件中查找匹配的目录项,节约了查找的时间。对于在inode的扩展数段中不存在匹配的热点目录项的情况,由于目录项中不包含热点目录项的内容,所以在目录文件中不会重复查找和热点目录项相同的内容,不会增加查找的时间。由于本发明实施例是针对经常访问的文件,所以,对于经常访问的文件,采用本发明提供的技术方案,可以有效降低文件的访问时间。
本发明实施例通过根据文件路径名,查找第一索引节点中的扩展数据段,所述扩展数据段用于表示热点项目以及其对应的地址;根据所述扩展数据段与所述文件路径名,获取第二索引节点;根据所述第二索引节点所包含的地址,获取所述文件路径名对应的文件。采用本发明提供的技术方案,在索引节点的扩展数据段中添加热点项目及其对应的地址,可以加快获取索引节点的速度,缩短文件的访问时间。通过在索引节点的扩展数据段中,查找和目录名匹配的热点目录项,加快了目录名对应的索引节点的访问速度。通过查找与文件名对应的热点目录项,加快了文件名对应的索引节点的访问速度。通过对热点目录项的更新,增加了文件系统访问文件的灵活性。
图2是本发明实施例中提供的一种文件访问方法具体实例流程图,该图2所示的发明实施例仅以根据文件路径名“/dir1/dir2/hotfile33.txt”访问hotfile33.txt文件为例进行说明。其中,在该文件路径名中,“/”为当前目录,dir1和dir2为目录名,dir1为第一目录名,dir2为第二目录名,hotfile3.txt为文件名,其中,仅文件名hotfile3.txt为热点项目。参见图2,该方法包括:
201:根据文件路径名“/dir1/dir2/hotfile33.txt”,查找初始索引节点中的扩展数据段,所述扩展数据段用于表示热点目录项以及其对应的地址;
在本发明实施例中,初始索引节点是通过在目录文件中查找和“/”匹配的目录项,根据目录项的地址获取的。根据获取的初始索引节点和dir1,在初始索引节点的扩展数据段中查找和dir1匹配的热点目录项。
在初始索引节点中扩展数据段中查找和第一目录名匹配的热点目录项,如果存在和第一目录名匹配的热点目录项,获取该热点目录项对应的地址;如果不存在和第一目录名匹配的热点目录项,则获取初始索引节点中的地址。
202:当所述扩展数据段不包括与第一目录名匹配的目录项时,根据初始索引节点的地址获取相应的目录文件,从该初始索引节点对应的目录文件中查找与第一目录名匹配的目录项;
在初始索引节点的扩展数据段中,查找和dir1匹配的热点目录项,可以通过dir1的字符串进行匹配,也可以通过dir1匹配的特征值进行匹配,由于dir1不是热点目录项,所以在“/”的索引节点的扩展数据中没有和dir1匹配的热点目录项。
在查找完初始索引节点中的扩展数据段后,由于不存在和dir1匹配的热点目录项,根据初始索引节点的地址获取目录文件,该目录文件中包括了除初始索引节点的扩展数据段中的热点目录项对应的目录和/或文件以外的,“/”的下一级所有的目录和/或文件的目录项,在该目录文件中查找和dir1匹配的目录项。
203:根据查找到的与第一目录名匹配的目录项的地址和第二目录名,查找与第一目录名匹配的目录项的地址指向的索引节点中的扩展数据段,所述扩展数据段用于表示热点目录项以及其对应的地址;
具体地,在与第一目录名匹配的目录项的地址指向的索引节点的扩展数据段中查找和dir2匹配的热点目录项,可以通过dir2的字符串进行匹配,也可以通过dir2匹配的特征值进行匹配,由于dir2不是热点目录项,所以在索引节点的扩展数据段中没有和dir2匹配的热点目录项。
在查找完与第一目录名匹配的目录项的地址指向的索引节点的扩展数据段后,由于扩展数据段不存在和dir2匹配的热点目录项,根据dir1的索引节点的地址获取目录文件,在该目录文件中查找和dir2匹配的目录项。
204:当扩展数据段不包括与第二目录名匹配的目录项时,根据与第一目录名匹配的目录项的地址指向的索引节点的地址获取相应的目录文件,从对应的目录文件中查找与第二目录名匹配的目录项;
该步骤与步骤202同理,在此不再赘述。
205:根据查找到的与第二目录名匹配的目录项的地址和文件名,查找与第二目录名匹配的目录项的地址指向的索引节点中的扩展数据段,所述扩展数据段用于表示热点目录项以及其对应的地址;
在本发明实施例中,hotfile.txt是文件名,在dir2的索引节点的扩展数据段中查找和hotfile.txt匹配的热点目录项,可以通过hotfile.txt的字符串进行匹配,也可以通过hotfile.txt的特征值进行匹配,由于hotfile.txt是热点目录项,所以在dir2的索引节点的扩展数据中包括hotfile.txt匹配的热点目录项。
根据hotfile.txt匹配的热点目录项中的地址,直接获取第二索引节点。
206:当扩展数据段包括与文件名匹配的目录项时,根据与文件名匹配的目录项中的地址,获取与文件名匹配的目录项中的地址指向的索引节点;
207:根据与文件名匹配的目录项中的地址指向的索引节点中的地址,获取所述文件路径名对应的文件。
由于hotfile.txt是查找的文件,所以,根据第二索引节点中的地址获取文件,实现对hotfile.txt的访问。
本发明实施例通过根据与文件路径名的本级目录名匹配的热点目录项中的地址,获取第一索引节点;根据文件路径名,查找第一索引节点中的扩展数据段,所述扩展数据段用于表示热点目录项以及其对应的地址;根据所述扩展数据段与所述文件路径名,获取第二索引节点;根据所述第二索引节点所包含的地址,获取所述文件路径名对应的文件。采用本发明提供的技术方案,在索引节点的扩展数据段中添加热点目录项及其对应的地址,可以加快获取索引节点的速度,缩短文件的访问时间。
图3是本发明实施例中提供的一种文件访问方法具体实例流程图,该图3所示的发明实施例仍以根据文件路径名“/dir1/dir2/hotfile33.txt”访问hotfile33.txt文件为例进行说明。其中,在该文件路径名中,“/”为当前目录,dir1和dir2为目录名,dir1为第一目录名,dir2为第二目录名,hotfile3.txt为文件名,其中,目录名dir2为热点项目。参见图3,该方法包括:
301:根据文件路径名“/dir1/dir2/hotfile33.txt”,查找初始索引节点中的扩展数据段,所述扩展数据段用于表示热点目录项以及其对应的地址;
在本发明实施例中,初始索引节点是通过在目录文件中查找和“/”匹配的目录项,根据目录项的地址获取的。根据获取的初始索引节点和dir1,在初始索引节点的扩展数据段中查找和dir1匹配的热点目录项。
在初始索引节点中扩展数据段中查找和第一目录名匹配的热点目录项,如果存在和第一目录名匹配的热点目录项,获取该热点目录项对应的地址;如果不存在和第一目录名匹配的热点目录项,则获取初始索引节点中的地址。
302:当所述扩展数据段不包括与第一目录名匹配的目录项时,根据初始索引节点的地址获取相应的目录文件,从该初始索引节点对应的目录文件中查找与第一目录名匹配的目录项;
在初始索引节点的扩展数据段中,查找和dir1匹配的热点目录项,可以通过dir1的字符串进行匹配,也可以通过dir1匹配的特征值进行匹配,由于dir1不是热点目录项,所以在“/”的索引节点的扩展数据中没有和dir1匹配的热点目录项。
在查找完初始索引节点中的扩展数据段后,由于不存在和dir1匹配的热点目录项,根据初始索引节点的地址获取目录文件,该目录文件中包括了除初始索引节点的扩展数据段中的热点目录项对应的目录和/或文件以外的,“/”的下一级所有的目录和/或文件的目录项,在该目录文件中查找和dir1匹配的目录项。
303:根据查找到的与第一目录名匹配的目录项的地址和第二目录名,查找与第一目录名匹配的目录项的地址指向的索引节点中的扩展数据段,所述扩展数据段用于表示热点目录项以及其对应的地址;
具体地,在与第一目录名匹配的目录项的地址指向的索引节点的扩展数据段中查找和dir2匹配的热点目录项,可以通过dir2的字符串进行匹配,也可以通过dir2匹配的特征值进行匹配,由于dir2是热点目录项,所以在索引节点的扩展数据段中包括与dir2匹配的热点目录项。
304:当扩展数据段包括与第二目录名匹配的目录项时,根据与第二目录名匹配的目录项中的地址获取相应的索引节点;
305:根据获取的索引节点,获取文件路径名对应的文件。
根据获取的索引节点所包含的地址和所述文件路径名继续进行查找,直到获取到所述文件路径名对应的文件。
在本发明实施例中,hotfile.txt是文件名,在dir2的索引节点的扩展数据段中查找和hotfile.txt匹配的热点目录项,可以通过hotfile.txt的字符串进行匹配,也可以通过hotfile.txt的特征值进行匹配,由于hotfile.txt不是热点目录项,所以在dir2的索引节点的扩展数据中不包括hotfile.txt匹配的热点目录项。根据dir2的索引节点的地址,获取和dir2对应的目录文件,在该目录文件中查找和hotfile.txt匹配的目录项。根据hotfile.txt匹配的目录项中的地址,获取hotfile.txt的索引节点,通过该索引节点中的地址,获取hotfile.txt文件,实现对hotfile.txt的访问。
本发明实施例通过根据与文件路径名的本级目录名匹配的热点目录项中的地址,获取第一索引节点;根据文件路径名,查找第一索引节点中的扩展数据段,所述扩展数据段用于表示热点目录项以及其对应的地址;根据所述扩展数据段与所述文件路径名,获取第二索引节点;根据所述第二索引节点所包含的地址,获取所述文件路径名对应的文件。采用本发明提供的技术方案,在索引节点的扩展数据段中添加热点目录项及其对应的地址,可以加快获取索引节点的速度,缩短文件的访问时间。
图4是本发明实施例中提供的一种文件访问装置结构示意图,参见图4,该装置包括:
查找模块401,用于根据文件路径名,查找第一索引节点中的扩展数据段,所述扩展数据段用于表示热点项目以及其对应的地址;
第一获取模块402,用于根据所述扩展数据段与所述文件路径名,获取第二索引节点;
第二获取模块403,用于根据所述第二索引节点,获取所述文件路径名对应的文件。
所述文件路径名包括目录名和文件名,相应地,所述第一获取模块402用于当确定所述扩展数据段中包括所述目录名匹配的热点目录项时,根据匹配的热点目录项中的地址获取第二索引节点;
相应地,所述第二获取模块403用于根据所述第二索引节点所包含的地址和所述文件路径名继续进行查找,直到获取到所述文件路径名对应的文件。
所述文件路径名包括目录名和文件名,相应地,所述第一获取模块402用于当确定所述扩展数据段中包括所述文件名匹配的热点目录项时,根据匹配的热点目录项对应的地址获取第二索引节点。
所述装置还包括:
第一确定模块,用于确定符合预设热点条件的目录项和所述目录项所属的目录文件;
第二确定模块,用于根据所述目录项所属的目录文件,确定所述目录文件的地址对应的索引节点;
写入模块,用于将所述符合预设热点条件的目录项,写入所述目录文件的地址对应的索引节点的扩展数据段。
扩展数据段包括热点项目以及其对应的地址,或,所述扩展数据段包括热点项目的特征值以及其对应的地址。
本发明实施例提供了一种文件访问装置,通过根据与文件路径名的本级目录名匹配的热点目录项中的地址,获取第一索引节点;根据文件路径名,查找第一索引节点中的扩展数据段,所述扩展数据段用于表示热点目录项以及其对应的地址;根据所述扩展数据段与所述文件路径名,获取第二索引节点;根据所述第二索引节点所包含的地址,获取所述文件路径名对应的文件。采用本发明提供的技术方案,在索引节点的扩展数据段中添加热点目录项及其对应的地址,可以加快获取索引节点的速度,缩短文件的访问时间。
需要说明的是:上述实施例提供的文件访问装置在文件访问时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的文件访问装置与文件访问方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例中提供的一种文件访问设备,该设备包括:一个或者一个以上的处理器;存储器;以及一个或者一个以上的程序,其中所述一个或者一个以上程序存储于所述存储器中,且经配置以由所述一个或者一个以上处理器执行,所述一个或者一个以上程序包含用于进行以下操作的指令:
根据文件路径名,查找第一索引节点中的扩展数据段,所述扩展数据段用于表示热点项目以及其对应的地址;
根据所述扩展数据段与所述文件路径名,获取第二索引节点;
根据所述第二索引节点,获取所述文件路径名对应的文件。
所述一个或者一个以上程序包含用于进行以下操作的指令:
当确定所述扩展数据段中包括所述目录名匹配的热点目录项时,根据匹配的热点目录项中的地址获取第二索引节点;
相应地,该处理器还用于根据所述第二索引节点所包含的地址和所述文件路径名继续进行查找,直到获取到所述文件路径名对应的文件。
所述文件路径名包括目录名和文件名,相应地,所述一个或者一个以上程序包含用于进行以下操作的指令:
当确定所述扩展数据段中包括所述文件名匹配的热点目录项时,根据匹配的热点目录项对应的地址获取第二索引节点。
所述一个或者一个以上程序包含用于进行以下操作的指令:
确定符合预设热点条件的目录项和所述目录项所属的目录文件;根据所述目录项所属的目录文件,确定所述目录文件的地址对应的索引节点;将所述符合预设热点条件的目录项,写入所述目录文件的地址对应的索引节点的扩展数据段。
扩展数据段包括热点项目以及其对应的地址,或,所述扩展数据段包括热点项目的特征值以及其对应的地址。
本发明实施例提供了一种文件访问设备,通过根据与文件路径名的本级目录名匹配的热点目录项中的地址,获取第一索引节点;根据文件路径名,查找第一索引节点中的扩展数据段,所述扩展数据段用于表示热点目录项以及其对应的地址;根据所述扩展数据段与所述文件路径名,获取第二索引节点;根据所述第二索引节点所包含的地址,获取所述文件路径名对应的文件。采用本发明提供的技术方案,在索引节点的扩展数据段中添加热点目录项及其对应的地址,可以加快获取索引节点的速度,缩短文件的访问时间。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。