文件索引节点查找方法、终端、服务器、系统及存储介质
技术领域
本申请涉及互联网通信技术领域,尤其涉及一种文件索引节点查找方法、终端、服务器、系统及存储介质。
背景技术
文件系统中文件的查找,主要是查找索引节点信息,通过索引节点信息可以找到文件所在的位置,进而为后续的文件读、写操作提供基础。文件的路径查找是一个循环分层的过程:首先找到目录,然后根据目录项的名字找到目录下对应的目录项,再根据这个目录项的子目录继续查找,直到这个目录项代表的是最终的文件,即找到了索引节点。
现有的文件系统客户端在查找索引节点信息的过程时,若客户端有多级目录项缓存未命中,就要向服务器发起多级网络io进行多次交互,不仅会影响服务器的稳定性,还会降低文件索引节点的查找速度。
因此,有必要提供一种文件索引节点查找方法、终端、服务器、系统及存储介质,从而减少终端与服务器的交互次数,加快文件索引节点的查找速度。
发明内容
本申请提供了一种文件索引节点查找方法、终端、服务器、系统及存储介质,减少了终端与服务器的交互次数,加快了文件索引节点的查找速度。
一方面,本申请提供了一种文件索引节点查找方法,所述方法包括:
基于文件索引节点的第一查找请求,确定所述文件的第一存储路径,所述第一存储路径包括多个目录的标识信息;
遍历所述第一存储路径中所述多个目录的标识信息,当所述第一存储路径中相邻两个目录的标识信息在缓存数据库中不存在对应的目录信息时,生成所述文件的第二存储路径;所述第二存储路径包括所述相邻两个目录的上一级目录的标识信息、所述相邻两个目录的标识信息以及所述相邻两个目录下的目录的标识信息;
向服务器发送所述文件索引节点的第二查找请求,所述第二查找请求携带所述第二存储路径;
接收所述服务器发送的基于所述第二存储路径确定的所述文件的索引节点。
另一方面提供了一种文件索引节点查找方法,所述方法包括:
接收终端发送的文件索引节点的第二查找请求,所述第二查找请求携带第二存储路径;所述第二存储路径为所述终端遍历第一存储路径中多个目录的标识信息,当所述第一存储路径中相邻两个目录的标识信息在缓存数据库中不存在对应的目录信息时生成的存储路径;所述第二存储路径包括所述相邻两个目录的上一级目录的标识信息、所述相邻两个目录的标识信息以及所述相邻两个目录下的目录的标识信息;所述第一存储路径为所述终端基于所述文件索引节点的第一查找请求确定的,所述第一存储路径包括多个目录的标识信息;
基于所述第二存储路径,确定所述文件的索引节点;
向所述终端发送所述文件的索引节点。
另一方面提供了一种文件索引节点查找终端,所述终端包括:
第一存储路径确定模块,用于基于文件索引节点的第一查找请求,确定所述文件的第一存储路径,所述第一存储路径包括多个目录的标识信息;
第二存储路径生成模块,用于遍历所述第一存储路径中所述多个目录的标识信息,当所述第一存储路径中相邻两个目录的标识信息在缓存数据库中不存在对应的目录信息时,生成所述文件的第二存储路径;所述第二存储路径包括所述相邻两个目录的上一级目录的标识信息、所述相邻两个目录的标识信息以及所述相邻两个目录下的目录的标识信息;
第二查找请求发送模块,用于向服务器发送所述文件索引节点的第二查找请求,所述第二查找请求携带所述第二存储路径;
索引节点接收模块,用于接收所述服务器发送的基于所述第二存储路径确定的所述文件的索引节点。
另一方面提供了一种文件索引节点查找服务器,所述服务器包括:
第二查找请求接收模块,用于接收终端发送的文件索引节点的第二查找请求,所述第二查找请求携带第二存储路径;所述第二存储路径为所述终端遍历第一存储路径中多个目录的标识信息,当所述第一存储路径中相邻两个目录的标识信息在缓存数据库中不存在对应的目录信息时生成的存储路径;所述第二存储路径包括所述相邻两个目录的上一级目录的标识信息、所述相邻两个目录的标识信息以及所述相邻两个目录下的目录的标识信息;所述第一存储路径为所述终端基于所述文件索引节点的第一查找请求确定的,所述第一存储路径包括多个目录的标识信息;
索引节点确定模块,用于基于所述第二存储路径,确定所述文件的索引节点;
索引节点发送模块,用于向所述终端发送所述文件的索引节点。
另一方面提供了一种文件索引节点查找系统,所述系统包括终端和服务器,
所述终端,用于基于文件索引节点的第一查找请求,确定所述文件的第一存储路径,所述第一存储路径包括多个目录的标识信息;以及遍历所述第一存储路径中所述多个目录的标识信息,当所述第一存储路径中相邻两个目录的标识信息在缓存数据库中不存在对应的目录信息时,所述终端生成所述文件的第二存储路径;所述第二存储路径包括所述相邻两个目录的上一级目录的标识信息、所述相邻两个目录的标识信息以及所述相邻两个目录下的目录的标识信息;以及向服务器发送所述文件索引节点的第二查找请求,所述第二查找请求携带所述第二存储路径;
所述服务器,用于基于所述第二存储路径,确定所述文件的索引节点;以及向所述终端发送所述文件的索引节点。
另一方面提供了一种文件索引节点查找终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上所述的文件索引节点查找方法。
另一方面提供了一种文件索引节点查找服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上所述的文件索引节点查找方法。
另一方面提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上所述的文件索引节点查找方法。
本申请提供的文件索引节点查找方法、终端、服务器、系统及存储介质,具有如下技术效果:
本申请中终端基于文件索引节点的第一查找请求,确定所述文件的第一存储路径;当所述第一存储路径中相邻两个目录的标识信息在缓存数据库中不存在对应的目录信息时,所述终端并没有将相邻两个目录的标识信息分别发送给服务器获取对应的目录信息,而是生成了包括所述相邻两个目录的上一级目录的标识信息、所述相邻两个目录的标识信息以及所述相邻两个目录下的目录的标识信息的第二存储路径;并向服务器发送携带所述第二存储路径的所述文件索引节点的第二查找请求;所述服务器基于所述第二存储路径,确定所述文件的索引节点;并向所述终端发送所述文件的索引节点;从而实现当第一存储路径中相邻两个目录的标识信息在缓存数据库中不存在对应的目录信息时,通过终端与服务器的一次交互便可获取文件的索引节点,减少了终端与服务器的交互次数,加快了文件索引节点的查找速度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本申请实施例提供的一种系统的示意图;
图2是本申请实施例提供的一种文件索引节点查找方法的流程示意图;
图3是本申请实施例提供的目录的存储标识信息生成方法的流程示意图;
图4是本申请实施例提供的另一种文件索引节点查找方法的流程示意图;
图5是本申请实施例提供的合并网络io中第二存储路径元数据结构示意图;
图6是本申请实施例提供的合并网络io示意图;
图7是本申请实施例提供的另一种文件索引节点查找方法的流程示意图;
图8是本申请实施例提供的另一种文件索引节点查找方法的流程示意图;
图9是本申请实施例提供的一种文件索引节点查找终端的结构示意图;
图10是本申请实施例提供的一种文件索引节点查找服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,图1是本申请实施例提供的一种系统的示意图,如图1所示,该系统可以至少包括服务器01和客户端02。
具体的,本说明书实施例中,所述服务器01可以包括一个独立运行的服务器,或者分布式服务器,或者由多个服务器组成的服务器集群。服务器01可以包括有网络通信单元、处理器和存储器等等。具体的,所述服务器01可以用于为所述客户端02提供后台服务。
具体的,本说明书实施例中,所述客户端02可以包括智能手机、台式电脑、平板电脑、笔记本电脑、数字助理、智能可穿戴设备等类型的实体设备,也可以包括运行于实体设备中的软体,例如一些服务商提供给用户的网页页面,也可以为该些服务商提供给用户的应用。具体的,所述客户端02可以用于生成文件的存储路径。
以下介绍本申请基于上述系统的文件索引节点查找方法,图2是本申请实施例提供的一种文件索引节点查找方法的流程示意图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,所述方法可以包括:
S201:终端基于文件索引节点的第一查找请求,确定所述文件的第一存储路径,所述第一存储路径包括多个目录的标识信息;
在本说明书实施例中,所述第一查找请求可以包括文件的标识信息,所述终端基于文件索引节点的第一查找请求,确定所述文件的第一存储路径可以包括:
所述终端基于文件索引节点的第一查找请求,确定所述文件的标识信息;
所述终端基于所述文件的标识信息,确定所述文件的第一存储路径;所述第一存储路径用于指示所述标识信息所对应的文件在终端中存放的位置。
在本说明书实施例中,目录的标识信息可以为目录的名称。
S203:所述终端遍历所述第一存储路径中所述多个目录的标识信息,当所述第一存储路径中相邻两个目录的标识信息在缓存数据库中不存在对应的目录信息时,所述终端生成所述文件的第二存储路径;所述第二存储路径包括所述相邻两个目录的上一级目录的标识信息、所述相邻两个目录的标识信息以及所述相邻两个目录下的目录的标识信息;
在本说明书实施例中,所述第一存储路径可以为/usr/local/share/file/1.txt,其中usr、local、share、file、1.txt均为目录的标识信息。
在本说明书实施例中,所述目录信息可以为目录对应的文件数据信息。
当所述第一存储路径中usr、local在缓存数据库中存在对应的目录信息,而share和file在缓存数据库中均不存在对应的目录信息时,所述终端生成所述文件的第二存储路径local/share/file/1.txt。其中,local为相邻两个目录的上一级目录的标识信息,share、file为相邻两个目录的标识信息,1.txt为相邻两个目录下的目录的标识信息。
S205:所述终端向服务器发送所述文件索引节点的第二查找请求,所述第二查找请求携带所述第二存储路径;
在本说明书实施例中,所述终端向服务器发送所述文件索引节点的第二查找请求的步骤之前,所述方法还可以包括:
所述终端基于所述相邻两个目录的上一级目录的标识信息,查找所述服务器的地址信息;
相应的,所述终端向服务器发送所述文件索引节点的第二查找请求包括:
所述终端基于所述服务器的地址信息,向所述服务器发送所述文件索引节点的第二查找请求。
S207:所述服务器基于所述第二存储路径,确定所述文件的索引节点;
在本说明书实施例中,所述服务器可以为所述终端提供后台服务。
在本说明书实施例中,所述服务器基于所述第二存储路径,确定所述文件的索引节点包括:
所述服务器遍历所述第二存储路径,查找与所述第二存储路径中每个目录的标识信息对应的目录信息;
所述服务器基于所述第二存储路径中末位目录的标识信息对应的目录信息,确定所述文件的索引节点。
在本说明书实施例中,所述第二存储路径中末位目录为所述第二存储路径的最后一级目录标识对应的目录,例如对于第二存储路径local/share/file/1.txt,1.txt为末位目录标识。
S209:所述服务器向所述终端发送所述文件的索引节点。
在本说明书实施例中,所述终端可以基于所述文件的索引节点,获取文件的位置信息,从而获取对应的文件。
在本说明书实施例中,所述方法还可以包括:
所述服务器向所述终端发送所述第二存储路径中多个目录的标识信息与目录信息的第一映射关系;
所述终端将所述第二存储路径中多个目录的标识信息与目录信息的第一映射关系存储于所述缓存数据库中。
在本说明书实施例中,终端对缓存数据库的更新,便于用户下一次查找同一文件索引节点时,可直接从终端的缓存数据库中获取,而不需要终端再向服务器发送请求。
在本说明书实施例中,所述方法还可以包括:
所述服务器基于所述第二存储路径中多个目录的标识信息,确定每个目录的标识信息对应目录的上一级目录的标识信息;
所述服务器基于每个目录的标识信息以及与所述每个目录的标识信息对应目录的上一级目录的标识信息,确定所述第二存储路径中多个目录的标识信息对应的目录信息的存储标识信息。
在本说明书实施例中,所述方法还可以包括:
所述服务器向所述终端发送所述第二存储路径中多个存储标识信息与目录信息的第二映射关系;
所述终端将所述缓存数据库中与所述目录信息对应的第一映射关系替换成所述第二映射关系。
在本说明书实施例中,目录的存储标识信息生成方法如图3所示,其中1为目录的标识信息,2为存储标识信息,dame 0-dame 5为文件名称,将缓存数据库中每个目录的标识信息与其对应的上一级目录的标识信息组合起来作为存储标识信息,从而避免目录标识的重名。
在本说明书实施例中,在以下两种场景下,可以将所述缓存数据库中与所述目录信息对应的第一映射关系替换成所述第二映射关系;
(1)在创建索引节点(mknod)或建立一个新的子目录(mkdir)元数据时;
(2)从服务器取回目录的元数据信息时。
在本说明书实施例中,采用包括了存储标识信息的第二映射关系替换第一映射关系,便于用户查找对应的目录信息,降低了由于目录重名导致的误差。
在本说明书实施例中,所述方法还可以包括:
当所述缓存数据库中数据数量超过预设数量阈值时,所述终端将所述缓存数据库中访问频率低于预设频率阈值的数据删除。
在本说明书实施例中,在处理删除目录(rmdir)或删除索引节点(unlink)元数据时,需要在缓存数据库中删除数据。
以下结合实际应用介绍本说明书实施例提供的文件索引节点查找方法:
当上下级目录都没有在客户端缓存数据库中时,需要生成新的第二存储路径与元数据服务器(MDS)进行一次交互,最后把所述第二存储路径上的所有目录都缓存到客户端。
以/usr/local/share/file/1.txt为第一存储路径为例,假设share和file目录不在客户端的缓存中,此时生成一个新的第二存储路径local/share/file/1.txt,然后根据local目录查找出管理其的MDS,之后把这个新路径发送到MDS,并把这个路径上local之后的目录项share、file和1.txt缓存到客户端,就是从未找到目录的父目录开始截取原查找路径生成新的相对查找路径。合并网络io(input output,输入输出)地址生成新请求流程图具体如图4所示。
在本说明书实施例中,增加了两个重要的类来实现路径查找优化操作:Opt PathRequest和Opt Path Reply。其中,Opt Path Request为路径优化请求,Opt Path Reply用于存放从MDS优化路径查询的结果。Opt Path Request数据结构如表1所示,Opt PathReply数据结构如表2所示。
表1:Opt Path Request数据结构
表2:Opt Path Reply数据结构
成员名 |
成员类型 |
成员含义 |
Head |
ceph_mds_reply_head |
Ceph消息通信的头部信息 |
optimize_bl |
buffer list |
用于存储第二存储路径的元数据 |
其中Opt Path Request和Opt Path Reply分别继承了元请求(Meta Request)和信息(Message)类,同时用于优化的同目录项名链表为上一节目录状态(Dentry Status)类目录映射(dentry_map),反向目录映射(rdentry_map)主要用于辅助同目录项名的删除。
在本说明书实施例中,合并网络io中第二存储路径元数据结构示意图如图5所示,在优化查找路径之后,将生成的第二存储路径发送到MDS中。在MDS中需要把第二存储路径的每一级目录的标识信息对应的目录返回至客户端,返回信息由查询路径上每一级目录查找信息组成。每一级目录的目录信息由五个部分组成:父目录索引节点信息、父目录分布信息、目录名、目录与客户端的租赁时间以及目录索引节点信息,其中父目录分布信息包括所属的目录分片序号以及其是否为属主元数据或副本元数据。最后将这些数据缓存到客户端的缓存数据库中,加快下次的查找速度。
目前将这种连续两级未命中路径查找优化策略应用到分布式文件系统(Cephfs)上。路径优化后减少了网络传输次数,多级目录项未命中只需要进行一次网络传输就可以从MDS中取回目录项等元数据信息,网络传输次数减少12.3%左右。通过应用程序首先在Cephfs中建立大量的目录和文件,并进行嵌套的建立子目录和文件,然后随机生成文件查询的目录。
以下分别采用现有技术与本申请的文件索引节点查找方法测试在60s、100s和300s查询时间内客户端与服务器之间的网络传输次数,测试结果如下表3所示。
现有技术的方法如下:
(1)客户端接收到/usr/local/file/1.txt文件存储路径查找请求;
(2)客户端在本地缓存中查找第一级路径根目录:“/”,缓存命中;
(3)客户端在本地缓存中查找第二级路径:“usr”,缓存命中;
(4)客户端在本地缓存中查找第三级路径:“local”,缓存未命中,向MDS发送local目录查找请求;
(5)客户端在本地缓存中查找第四级路径:“file”,缓存未命中,向MDS发送file目录查找请求;
(6)客户端在本地缓存中查找第五级路径:“1.txt”,缓存未命中,向MDS发送1.txt目录查找请求;
该方案中如果有多少级路径对应的目录标识信息在缓存数据中未命中,就向元数据服务器发送多少次网络请求。
采用本申请的方案,如图6所示,当客户端在本地存储器的缓存中未查到“local”和“file”时,则不再查找下一级目录标识“1.txt”,而是直接生成新的第二存储路径usr/local/file/1.txt,根据“usr”查找到对应的MDS,并向MDS发送local/file/1.txt查找请求,在MDS中根据路径local/file/1.txt查找各个目录标识对应的目录的元数据。
表3:
|
60s |
100s |
300s |
现有技术 |
4151次 |
7912次 |
19853次 |
本申请 |
3628次 |
6939次 |
17344次 |
在本说明书实施例中,Tmdstra表示客户端到MDS的一次网络延时,Ttra表示路径查询的总网络时延,假设路径中有3个目录的标识信息,且在缓存数据库中命中与不命中的概率各为
那么,采用现有技术的网络总时延的计算公式如下:
本申请的网络总时延的计算公式如下:
可见,相比于现有技术,本申请的方法减少了2倍多的网络延时,进而可以加快文件索引节点的查找速度。
由以上本说明书实施例提供的技术方案可知,本说明书实施例中终端基于文件索引节点的第一查找请求,确定所述文件的第一存储路径;当所述第一存储路径中相邻两个目录的标识信息在缓存数据库中不存在对应的目录信息时,所述终端并没有将相邻两个目录的标识信息分别发送给服务器获取对应的目录信息,而是生成了包括所述相邻两个目录的上一级目录的标识信息、所述相邻两个目录的标识信息以及所述相邻两个目录下的目录的标识信息的第二存储路径;并向服务器发送携带所述第二存储路径的所述文件索引节点的第二查找请求;所述服务器基于所述第二存储路径,确定所述文件的索引节点;并向所述终端发送所述文件的索引节点;从而实现当第一存储路径中相邻两个目录的标识信息在缓存数据库中不存在对应的目录信息时,通过终端与服务器的一次交互便可获取文件的索引节点,减少了终端与服务器的交互次数,加快了文件索引节点的查找速度。
以下以终端为执行主体介绍本说明书一种文件索引节点查找方法的具体实施例,图7是本申请实施例提供的一种文件索引节点查找方法的流程示意图,具体的,结合图7所示,所述方法可以包括:
S701:基于文件索引节点的第一查找请求,确定所述文件的第一存储路径,所述第一存储路径包括多个目录的标识信息;
S703:遍历所述第一存储路径中所述多个目录的标识信息,当所述第一存储路径中相邻两个目录的标识信息在缓存数据库中不存在对应的目录信息时,生成所述文件的第二存储路径;所述第二存储路径包括所述相邻两个目录的上一级目录的标识信息、所述相邻两个目录的标识信息以及所述相邻两个目录下的目录的标识信息;
S705:向服务器发送所述文件索引节点的第二查找请求,所述第二查找请求携带所述第二存储路径;
在本说明书实施例中,所述向服务器发送所述文件索引节点的第二查找请求的步骤之前,所述方法还可以包括:
基于所述相邻两个目录的上一级目录的标识信息,查找所述服务器的地址信息;
相应的,所述向服务器发送所述文件索引节点的第二查找请求可以包括:
基于所述服务器的地址信息,向所述服务器发送所述文件索引节点的第二查找请求。
S707:接收所述服务器发送的基于所述第二存储路径确定的所述文件的索引节点。
在本说明书实施例中,所述方法还可以包括:
接收所述服务器发送的所述第二存储路径中多个目录的标识信息与目录信息的第一映射关系;
将所述第二存储路径中多个目录的标识信息与目录信息的第一映射关系存储于所述缓存数据库中。
在本说明书实施例中,所述方法还可以包括:
接收所述服务器发送的所述第二存储路径中多个存储标识信息与目录信息的第二映射关系;
将所述缓存数据库中与所述目录信息对应的第一映射关系替换成所述第二映射关系。
在本说明书实施例中,所述方法还可以包括:
当所述缓存数据库中数据数量超过预设数量阈值时,将所述缓存数据库中访问频率低于预设频率阈值的数据删除。
本说明书实施例提供了一种文件索引节点查找终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上所述的文件索引节点查找方法。
以下以服务器为执行主体介绍本说明书一种文件索引节点查找方法的具体实施例,图8是本申请实施例提供的一种文件索引节点查找方法的流程示意图,具体的,结合图8所示,所述方法可以包括:
S801:接收终端发送的文件索引节点的第二查找请求,所述第二查找请求携带第二存储路径;所述第二存储路径为所述终端遍历第一存储路径中多个目录的标识信息,当所述第一存储路径中相邻两个目录的标识信息在缓存数据库中不存在对应的目录信息时生成的存储路径;所述第二存储路径包括所述相邻两个目录的上一级目录的标识信息、所述相邻两个目录的标识信息以及所述相邻两个目录下的目录的标识信息;所述第一存储路径为所述终端基于所述文件索引节点的第一查找请求确定的,所述第一存储路径包括多个目录的标识信息;
在本说明书实施例中,
S803:基于所述第二存储路径,确定所述文件的索引节点;
在本说明书实施例中,所述基于所述第二存储路径,确定所述文件的索引节点可以包括:
遍历所述第二存储路径,查找与所述第二存储路径中每个目录的标识信息对应的目录信息;
基于所述第二存储路径中末位目录的标识信息对应的目录信息,确定所述文件的索引节点。
S805:向所述终端发送所述文件的索引节点。
在本说明书实施例中,所述方法还可以包括:
向所述终端发送所述第二存储路径中多个目录的标识信息与目录信息的第一映射关系,以使所述终端将所述第二存储路径中多个目录的标识信息与目录信息的第一映射关系存储于所述缓存数据库中。
在本说明书实施例中,所述方法还可以包括:
基于所述第二存储路径中多个目录的标识信息,确定每个目录的标识信息对应目录的上一级目录的标识信息;
基于每个目录的标识信息以及与所述每个目录的标识信息对应目录的上一级目录的标识信息,确定所述第二存储路径中多个目录的标识信息对应的目录信息的存储标识信息。
在本说明书实施例中,所述方法还可以包括:
向所述终端发送所述第二存储路径中多个存储标识信息与目录信息的第二映射关系,以使所述终端将所述缓存数据库中与所述目录信息对应的第一映射关系替换成所述第二映射关系。
本说明书实施例提供了一种文件索引节点查找服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上所述的文件索引节点查找方法。
本申请另一方面还提供一种文件索引节点查找终端,如图9所示,所述终端可以包括:
第一存储路径确定模块910,用于基于文件索引节点的第一查找请求,确定所述文件的第一存储路径,所述第一存储路径包括多个目录的标识信息;
第二存储路径生成模块920,用于遍历所述第一存储路径中所述多个目录的标识信息,当所述第一存储路径中相邻两个目录的标识信息在缓存数据库中不存在对应的目录信息时,生成所述文件的第二存储路径;所述第二存储路径包括所述相邻两个目录的上一级目录的标识信息、所述相邻两个目录的标识信息以及所述相邻两个目录下的目录的标识信息;
第二查找请求发送模块930,用于向服务器发送所述文件索引节点的第二查找请求,所述第二查找请求携带所述第二存储路径;
索引节点接收模块940,用于接收所述服务器发送的基于所述第二存储路径确定的所述文件的索引节点。
在一些实施方式中,所述终端还可以包括:
地址信息查找模块,用于基于所述相邻两个目录的上一级目录的标识信息,查找所述服务器的地址信息;
所述第二查找请求发送模块还可以包括:
第二查找请求发送单元,用于基于所述服务器的地址信息,向所述服务器发送所述文件索引节点的第二查找请求。
在一些实施方式中,所述终端还可以包括:
第一映射关系接收模块,用于接收所述服务器发送的所述第二存储路径中多个目录的标识信息与目录信息的第一映射关系;
第一映射关系存储模块,用于将所述第二存储路径中多个目录的标识信息与目录信息的第一映射关系存储于所述缓存数据库中。
在一些实施方式中,所述终端还可以包括:
第二映射关系接收模块,用于接收所述服务器发送的所述第二存储路径中多个存储标识信息与目录信息的第二映射关系;
映射关系替换模块,用于将所述缓存数据库中与所述目录信息对应的第一映射关系替换成所述第二映射关系。
在一些实施方式中,所述终端还可以包括:
数据删除模块,用于当所述缓存数据库中数据数量超过预设数量阈值时,将所述缓存数据库中访问频率低于预设频率阈值的数据删除。
所述的终端实施例中的终端与方法实施例基于同样的发明构思。
本申请另一方面还提供一种文件索引节点查找服务器,如图10所示,所述服务器可以包括:
第二查找请求接收模块1010,用于接收终端发送的文件索引节点的第二查找请求,所述第二查找请求携带第二存储路径;所述第二存储路径为所述终端遍历第一存储路径中多个目录的标识信息,当所述第一存储路径中相邻两个目录的标识信息在缓存数据库中不存在对应的目录信息时生成的存储路径;所述第二存储路径包括所述相邻两个目录的上一级目录的标识信息、所述相邻两个目录的标识信息以及所述相邻两个目录下的目录的标识信息;所述第一存储路径为所述终端基于所述文件索引节点的第一查找请求确定的,所述第一存储路径包括多个目录的标识信息;
索引节点确定模块1020,用于基于所述第二存储路径,确定所述文件的索引节点;
索引节点发送模块1030,用于向所述终端发送所述文件的索引节点。
在一些实施方式中,所述服务器还可以包括:
第一映射关系发送模块,用于向所述终端发送所述第二存储路径中多个目录的标识信息与目录信息的第一映射关系,以使所述终端将所述第二存储路径中多个目录的标识信息与目录信息的第一映射关系存储于所述缓存数据库中。
在一些实施方式中,所述服务器还可以包括:
标识信息确定模块,用于基于所述第二存储路径中多个目录的标识信息,确定每个目录的标识信息对应目录的上一级目录的标识信息;
存储标识信息确定模块,用于基于每个目录的标识信息以及与所述每个目录的标识信息对应目录的上一级目录的标识信息,确定所述第二存储路径中多个目录的标识信息对应的目录信息的存储标识信息。
在一些实施方式中,所述服务器还可以包括:
第二映射关系发送模块,用于向所述终端发送所述第二存储路径中多个存储标识信息与目录信息的第二映射关系,以使所述终端将所述缓存数据库中与所述目录信息对应的第一映射关系替换成所述第二映射关系。
所述的服务器实施例中的服务器与方法实施例基于同样的发明构思。
本说明书实施例中,所述存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本说明书实施例提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上所述的文件索引节点查找方法。
本申请另一方面还提供一种文件索引节点查找系统,所述系统包括终端和服务器,
所述终端,用于基于文件索引节点的第一查找请求,确定所述文件的第一存储路径,所述第一存储路径包括多个目录的标识信息;以及遍历所述第一存储路径中所述多个目录的标识信息,当所述第一存储路径中相邻两个目录的标识信息在缓存数据库中不存在对应的目录信息时,所述终端生成所述文件的第二存储路径;所述第二存储路径包括所述相邻两个目录的上一级目录的标识信息、所述相邻两个目录的标识信息以及所述相邻两个目录下的目录的标识信息;以及向服务器发送所述文件索引节点的第二查找请求,所述第二查找请求携带所述第二存储路径;
所述服务器,用于基于所述第二存储路径,确定所述文件的索引节点;以及向所述终端发送所述文件的索引节点。
由上述本申请提供的文件索引节点查找方法、终端、服务器、系统或存储介质的实施例可见,本说明书实施例中终端基于文件索引节点的第一查找请求,确定所述文件的第一存储路径;当所述第一存储路径中相邻两个目录的标识信息在缓存数据库中不存在对应的目录信息时,所述终端并没有将相邻两个目录的标识信息分别发送给服务器获取对应的目录信息,而是生成了包括所述相邻两个目录的上一级目录的标识信息、所述相邻两个目录的标识信息以及所述相邻两个目录下的目录的标识信息的第二存储路径;并向服务器发送携带所述第二存储路径的所述文件索引节点的第二查找请求;所述服务器基于所述第二存储路径,确定所述文件的索引节点;并向所述终端发送所述文件的索引节点;从而实现当第一存储路径中相邻两个目录的标识信息在缓存数据库中不存在对应的目录信息时,通过终端与服务器的一次交互便可获取文件的索引节点,减少了终端与服务器的交互次数,加快了文件索引节点的查找速度。
需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于终端、服务器、系统以及存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。