CN103838682B - 一种文件目录的读取方法和设备 - Google Patents
一种文件目录的读取方法和设备 Download PDFInfo
- Publication number
- CN103838682B CN103838682B CN201410086430.XA CN201410086430A CN103838682B CN 103838682 B CN103838682 B CN 103838682B CN 201410086430 A CN201410086430 A CN 201410086430A CN 103838682 B CN103838682 B CN 103838682B
- Authority
- CN
- China
- Prior art keywords
- content
- client
- reading value
- information
- read
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种文件目录的读取方法和设备,涉及存储领域,能够减少***资源的利用率,节省了时间,提高了对文件目录的访问效率。具体通过:客户端接收包含最优读取值的第一文件目录读取请求,根据该最优读取值,确定缓存中是否存在客户端需要读取的内容,当缓存中没有存储客户端需要读取的内容时,则根据当前参数信息确定第一信息,将第一信息与最优读取值对比,根据对比结果向文件***发起读取请求,在获取内容后存储内容,并将内容发送给客户端。本发明用于读取文件***中存储的文件目录内容。
Description
技术领域
本发明涉及存储领域,尤其涉及一种文件目录的读取方法和设备。
背景技术
当前随着存储***的多样化和存储协议的丰富程度逐渐提高,使得存储***中的文件目录和文件数量越来越多,单个目录中的文件夹和文件数量甚至可能多达数十万。因此,客户端通过现有存储协议获取存储***中文件目录的内容已经成为一项很庞大的工程,需要占用大量的时间和***资源,使得整体的访问效率非常低下。
当客户端通过单一存储协议读取文件目录时,在现有协议中客户端和服务器会预先设定一个参考值,并以此参考值为标准进行访问内容的传输。但是此参考值的设定没有考虑到文件***此时是否处于最佳***性能状态以及此时服务器其他部件的影响,因此该参考值并不能提供最优秀的访问效率。
当客户端通过多个存储协议读取文件目录时,现有技术中是针对每一个存储协议都进行相应的***调用。但是若有多个客户端访问文件目录时,就会有大量的***资源被占用,并且会耗费大量的时间,大大降低了对文件目录的访问效率。
发明内容
本发明的实施例提供一种文件目录的读取方法和设备,能够减少***资源的利用率,节省了时间,提高了对文件目录的访问效率。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种文件目录的读取方法,所述方法包括:
接收客户端发送的第一文件目录读取请求,所述第一文件目录读取请求中至少携带有最优读取值;
根据所述最优读取值,确定缓存中是否存储所述客户端需要读取的内容;
当所述缓存中没有存储所述客户端需要读取的内容时,则根据当前参数信息确定第一信息,将所述第一信息与所述最优读取值对比,根据对比结果向文件***发起读取请求,获取所述内容,并在获取所述内容后,存储所述内容,建立与所述内容对应的第一标签,将所述内容发送给所述客户端,其中,所述当前参数信息为确认所述缓存中是否存在所述客户端需要读取的内容后,获取到的包含所述客户端网络参数在内的参数信息,所述第一信息是针对所述缓存中是否存有所述客户端需要读取的内容,生成的确认消息,所述第一标签用于记录所述内容的有效期。
在第一种可能的实现方式中,结合第一方面,当所述缓存中存储有所述客户端需要读取的内容时,所述方法还包括:
若所述内容处于有效期内,则将所述内容发送给所述客户端;
若所述内容不在有效期内,则根据当前参数信息确定第二信息,将所述第二参数消息与所述最优读取值对比,根据对比结果向文件***发起读取请求,并在获取所述内容后,存储所述内容,修改所述记录的有效期信息,其中,所述第二信息是针对所述缓存中是否存有所述客户端需要读取的内容,生成的确认消息。
在第二种可能的实现方式中,结合第一方面,获取所述最优读取值具体包括:
从所述客户端接收确定读取值的请求,并根据所述请求确定最大读取值;
向所述文件***发送对获取最佳性能大小的请求,所述最佳性能大小基于所述文件***的性能参数,其中所述性能参数至少包括数据块大小;
确定当前传输协议允许的最大传输载荷;
确定缓存算法支持的读取值;
根据所述最大读取值、所述最佳性能大小、所述最大传输载荷、所述缓存算法支持的读取值,结合当前网络的负载系数和性能阈值,确定所述最优读取值,将所述最优读取值发送给所述客户端。
在第三种可能的实现方式中,结合第一方面,所述方法还包括:
在获取所述内容的过程中,若接收到除所述客户端以外的其他客户端发送针对所述内容的请求,则建立正在处理所述内容的标签,以便于向所述其他客户端发送正在处理的消息,并在获取并存储所述内容后,将所述内容发送给针对所述内容请求的客户端。
第二方面,一种文件目录的读取设备,所述设备包括:
接收单元,用于接收客户端发送的第一文件目录读取请求,所述第一文件目录读取请求中至少携带有最优读取值;
判断单元,用于根据所述最优读取值,确定缓存中是否存储所述客户端需要读取的内容;
处理单元,用于当所述缓存中没有存储所述客户端需要读取的内容时,则根据当前参数信息确定第一信息,将所述第一信息与所述最优读取值对比,根据对比结果向文件***发起读取请求,获取所述内容,并在获取所述内容后,存储所述内容,建立与所述内容对应的第一标签,将所述存储的内容发送给所述客户端,其中,所述当前参数信息为确认所述缓存中是否存在所述客户端需要读取的内容后,获取到的包含所述客户端网络参数在内的参数信息,所述第一信息是针对所述缓存中是否存有所述客户端需要读取的内容,生成的确认消息,所述第一标签用于记录所述内容的有效期。
在第一种可能的实现方式中,结合第二方面,所述处理单元具体包括:
第一发送子单元,用于若所述内容处于有效期内,则将所述内容发送给所述客户端;
第二发送子单元,用于若所述内容不在有效期内,则根据当前参数信息确定第二信息,将所述第二参数消息与所述最优读取值对比,根据对比结果向文件***发起读取请求,并在获取所述内容后,存储所述内容,修改所述记录的有效期信息,其中,所述第二信息是针对所述缓存中是否存有所述客户端需要读取的内容,生成的参数消息。
在第二种可能的实现方式中,结合第二方面,所述设备中获取所述最优读取值具体包括:
第一确定子单元,用于从所述客户端接收确定读取值的请求,并根据所述请求确定最大读取值;
第一发送子单元,用于向所述文件***发送对获取最佳性能大小的请求,所述最佳性能大小基于所述文件***的性能参数,其中所述性能参数至少包括数据块大小;
所述第一确定子单元,还用于确定当前传输协议允许的最大传输载荷;
所述第一确定子单元,还用于确定缓存算法支持的读取值;
所述第一确定子单元,还用于根据所述最大读取值、所述最佳性能大小、所述最大传输载荷、所述缓存算法支持的读取值,结合当前网络的负载系数和性能阈值,确定所述最优读取值,将所述最优读取值发送给所述客户端。
在第三种可能的实现方式中,结合第二方面至第二方面的第二种可能的实现方式,所述设备还包括:
所述第二发送子单元,还用于在获取所述内容的过程中,若接收到除所述客户端以外的其他客户端发送针对所述内容的请求,则建立正在处理所述内容的标签,以便于向所述其他客户端发送正在处理的消息,并在获取并存储所述内容后,将所述内容发送给针对所述内容请求的客户端。
本发明提供一种文件目录的读取方法和设备,通过客户端接收包含最优读取值的第一文件目录读取请求,根据该最优读取值,确定缓存中是否存在客户端需要读取的内容,当缓存中没有存储客户端需要读取的内容时,则根据当前参数信息确定第一信息,将第一信息与最优读取值对比,根据对比结果向文件***发起读取请求,在获取内容后,存储内容,并将内容发送给客户端;能够减少***资源的利用率,节省了时间,提高了对文件目录的访问效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的客户端、服务器以及存储***之间的关系;
图2为本发明实施例提供的一种文件目录的读取方法的流程图;
图3为本发明实施例提供的一种文件目录的读取方法的流程图;
图4为本发明实施例提供的一种文件目录的读取方法的流程图;
图5为本发明实施例提供的另一种文件目录的读取方法的流程图;
图6为本发明提供一种文件目录的读取设备的结构示意图;
图7为本发明提供一种文件目录的读取设备的详细结构示意图;
图8为本发明实施例还提供一种文件目录的读取装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明主要应用场景是在客户端通过存储协议访问存储***中的文件,尤其是有多个客户端通过多协议对存储***进行访问的时候,服务器无法根据当前客户端对应协议的传输载荷以及服务器自身缓冲区buffer的大小进行均衡,也就是无法达到当前情况下传输的最优性能。
客户端、服务器以及存储***之间的关系如图1所述。在图1中,服务器接收客户端发送的读取请求,并将该请求转发至文件***,文件***根据接收到的读取请求,确定客户端需要获取的文件目录,将确定的文件目录通过服务器转发至发起请求的客户端。
以上描述的应用场景是目前对于存储***中文件目录的常用的访问方法,上述访问步骤虽然简单明确,但是服务器需要将客户端发送的每一个读取请求都要转发至存储***,并在存储***根据读取请求确认需要获取的文件目录后,将文件目录发送通过服务器转发至客户端。这样针对客户端的每一个读取请求均需要存储***进行内容确认并发送的步骤,这样在无形中会增加了访问的时间和步骤,尤其存在多个客户端同时发起能读取请求时,会极大的增加存储***的负载,降低文件目录的访问效率。
对于前述缺陷并且结合本发明的应用场景,本发明实施例提出一种文件目录的读取方法,如图2所示。该方法包括:
101、服务器接收客户端发送的第一文件目录读取请求,所述第一文件目录读取请求中至少携带有最优读取值。
102、根据所述最优读取值,服务器确定缓存中是否存储所述客户端需要读取的内容。
103、当所述缓存中没有存储所述客户端需要读取的内容时,则服务器根据当前参数信息确定第一信息,将所述第一信息与所述最优读取值对比,根据对比结果向文件***发起读取请求,获取所述内容,并在获取所述内容后,存储所述内容,建立与所述内容对应的第一标签,将所述存储的内容发送给所述客户端,其中,所述当前参数信息为确认所述缓存中是否存在所述客户端需要读取的内容后,获取到的包含所述客户端网络参数在内的参数信息,所述第一信息是针对所述缓存中是否存有所述客户端需要读取的内容,生成的确认消息,所述第一标签用于记录所述内容的有效期。
本发明实施例提供一种文件目录的读取方法,通过客户端接收包含最优读取值的第一文件目录读取请求,根据该最优读取值,确定缓存中是否存在客户端需要读取的内容,当缓存中没有存储客户端需要读取的内容时,则根据当前参数信息确定第一信息,将第一信息与最优读取值对比,根据对比结果向文件***发起读取请求,在获取内容后,存储内容,并将内容发送给客户端;能够减少***资源的利用率,节省了时间,提高了对文件目录的访问效率。
进一步的,为了详细的解释本发明提出的方法,本发明实施例提供一种文件目录的读取方法,该方法包括:
201、服务器接收客户端发送的第一文件目录读取请求,所述第一文件目录读取请求中至少携带有最优读取值。
如图3所示,获取其中的最优读取值,具体包括:
2011、服务器从所述客户端接收确定读取值的请求,并根据所述请求确定最大读取值,该最大读取值为客户端能够支持的最大数据长度,通常记作max_count。
2012、服务器向文件***发送对获取最佳性能大小的请求,所述最佳性能大小基于所述文件***的性能参数,其中所述性能参数至少包括数据块大小,通常记作fs_dtpref。
2013、服务器确定当前传输协议允许的最大传输载荷,通常该传输载荷记作pro_max_playload。
2014、服务器确定缓存算法支持的读取值。
当前常用的缓存算法以LRU为主,这里的LRU是Least RecentlyUsed即近期最少使用算法,是内存管理的一种页面置换算法,对于在内存中但又不用的数据块(或内存块)叫做LRU块,根据哪些数据属于LRU块,而将其移出内存而腾出空间来加载另外的数据。
对于LRU算法,即最少使用页面置换算法,是为虚拟页式存储管理服务的。这里通过该算法可以计算出缓存支持的最佳readdir值,记作algo_cache_size。
2015、服务器至少根据所述最大读取值、所述最佳性能大小、所述最大传输载荷、所述缓存算法支持的读取值,结合当前网络的负载系数和性能阈值,确定所述最优读取值,将所述最优读取值发送给所述客户端。
其中的当前网络载荷记作k,而服务器的性能阈值则记作SYS_k,之后通过上述所有参数值确定最优读取值,记作pro_dtpref。
具体确定的方法如下:
首先,确定max_count、fs_dtpref、pro_max_playload、algo_cache_size中的最小值Min;
接着,将参数k与SYS_k做除法,并将上一步获取到的最小值Min与除法得到的上相乘,最终得到的值记为最优读取值pro_dtpref,具体过程可用如下公式表示:
上述通过一系列参数值确定最优读取值的方法仅为一种常用的方法,不是对本发明中获取最优读取值的方法进行限定,对于其他获取最优读取值的方法,由于篇幅关系,就不在一一赘述。
202、根据所述最优读取值,服务器确定缓存中是否存储客户端需要读取的内容。
实际确定缓存中是否有客户端需要读取的内容,还需要客户端发送的第一文件目录读取请求中的其他参数辅助进行确定,这些其他参数中至少包括偏移量offset等,也就是根据最优读取值以及偏移量等参数,共同确定缓存中是否有客户端需要读取的内容。
203、当所述缓存中没有存储所述客户端需要读取的内容时,则服务器根据当前参数信息确定第一信息,将所述第一信息与所述最优读取值对比,根据对比结果向文件***发起读取请求,并在获取所述内容后,存储所述内容,建立与所述内容对应的第一标签,将所述存储的内容发送给所述客户端,其中,所述当前参数信息为确认所述缓存中是否存在所述客户端需要读取的内容后,获取到的包含所述客户端网络参数在内的参数信息,所述第一信息是针对所述缓存中是否存有所述客户端需要读取的内容,生成的确认消息,所述第一标签用于记录所述内容的有效期。
详细的,步骤203中将第一信息与最优读取值进行对比具体包括:
当第一信息的数值小于最优读取值时,则采用第一信息向文件***发起读取请求;
当第一信息的数值大于最优读取值时,则采用最优读取值向文件***发起读取请求;
当第一信息的数值等于最优读取值时,采用两者中的任意一个向文件***发起读取请求。
上述步骤中之所以需要将根据当前参数获取到的第一信息与客户端发送的文件目录读取请求中的最优读取值进行对比,是因为之前在服务器的缓存中已经没有与文件目录读取请求中对应的文件目录的内容,并且由于客户端与服务器之前的网络连接状态一直处于动态变化的过程,因此,当服务器缓存中没有客户端需要读取的文件目录时,需要根据客户端与服务器间最新的网络情况等步骤2011至2015中涉及到的当前参数,重新确定最新的第一信息,并将确定的第一信息与客户端发送的文件目录读取请求中的最优读取值进行对比后,获取到符合最新网络情况及当前负载下的读取值,进而将该读取值向文件***发起文件目录读取请求,以便获取到文件***根据该读取值返回的文件目录内容。
与步骤203相对的,
204、当所述缓存中存储有所述客户端需要读取的内容时,如图4所示,该方法具体包括:
2041、若所述内容处于所述有效期内,则直接将所述内容发送给所述客户端;
2042、若所述内容不在所述有效期内,则重新根据所述当前参数确定第二信息,将所述第二参数消息与所述最优读取值对比,根据对比结果向所述文件***发起读取请求,并在获取所述内容后,存储所述内容,修改所述第一标签记录的所述有效期信息,其中,所述第二信息是针对所述缓存中是否存有所述客户端需要读取的内容,生成的确认消息。
上述第一标签记录的有效期,是指服务器针对当前的网络情况以及当前负载等信息,并结合文件***的存储情况,在最大保证文件目录内容的前提下,确定获取到的文件目录内容的有效期限,当确定的文件目录存在的时间超过了该有效期后,意味着文件***中存储的文件目录可能会有所改变,或客户端与服务器间网络连接状态有所变动,最终都会令客户端请求的文件目录内容的准确性有多变化,因此需要设立针对于已获取文件目录的第一标签,用于记录该文件目录的有效期。
如步骤2042所示,当缓存中存储的文件目录内容超出了第一标签记录的有效期,需要根据当前参数信息重新确定第二信息,并在第二信息和最优读取值对比后,以类似上文步骤203中具体的对比过程,获取对比结果并根据该对比结果向文件***再次发送文件目录访问请求,在获取文件目录内容后,将新获取的文件目录内容存储在缓存中,并修改与该内容对应的第一标签的有效期限。
在本实施例中提到的缓存,是服务器缓存中的逻辑分块,其中的服务器主要为协议适配层服务器,用于在协议层连接客户端和文件***,并传输相关文件,对应的缓存也称为协议适配层服务器缓存,但这里的服务器也并不仅限于协议适配层服务器,在实际应用场景中,计算机集群中的任意一台均可以担任协议适配层服务器的工作,也可以由多台计算机联合担任。
如上文所述,在说明书部分的实施例中,为了便于描述,特将协议层服务器独立成一单独器件,但并不限定协议服务器仅仅为一单独器件,为了产生不必要的限定,特在此进行说明。
本发明实施例提供一种文件目录的读取方法,通过客户端接收包含最优读取值的第一文件目录读取请求,根据该最优读取值,确定缓存中是否存在客户端需要读取的内容,当缓存中没有存储客户端需要读取的内容时,则根据当前参数信息确定第一信息,将第一信息与最优读取值对比,根据对比结果向文件***发起读取请求,在获取内容后,存储内容,并将内容发送给客户端;能够减少***资源的利用率,节省了时间,提高了对文件目录的访问效率。
上个实施例描述的是单个客户端对文件***中文件目录访问的方法,但是在实际的应用场景中,更多的是同时有多个客户端对文件***进行访问,基于这一应用场景,下边通过另一个实施例,提供一种文件目录的读取方法,如图5所示,该方法包括:
301、服务器接收客户端发送的第一文件目录读取请求,所述第一文件目录请求中至少携带有最优读取值。
302、服务器根据第一文件目录读取请求,确定缓存中是否存储客户端需要读取的内容。
其中,实际确定缓存中是否有客户端需要读取的内容,还需要客户端发送的第一文件目录读取请求中的其他参数辅助进行确定,这些其他参数中至少包括偏移量offset等,也就是根据最优读取值以及偏移量等参数,共同确定缓存中是否有客户端需要读取的内容。
303、当所述缓存中没有存储所述客户端需要读取的内容时,服务器则根据当前参数信息确定第一信息,将所述第一信息与所述最优读取值对比,根据对比结果向文件***发起读取请求,获取所述内容,并在获取所述内容后,存储所述内容,建立与所述内容对应的第一标签,将所述内容发送给所述客户端;其中,所述当前参数信息为确认所述缓存中是否存在所述客户端需要读取的内容后,获取到的包含所述客户端网络参数在内的参数信息,所述第一信息是针对所述缓存中是否存有所述客户端需要读取的内容,生成的确认消息,所述第一标签用于记录所述内容的有效期。
304、在获取所述内容的过程中,若接收到除所述客户端以外的其他客户端发送针对所述内容的请求,服务器则建立正在处理所述内容的标签,以便于向所述其他客户端发送正在处理的消息,并在获取并存储所述内容后,将所述内容发送给针对所述内容请求的客户端。
具体的,建立第三标签,用于标记所述内容正在被处理。
当所述缓存中存在所述内容时,具体包括:
305、若根据所述第一标签,所述内容处于所述有效期内,则将所述内容发送给所述发送所述第一文件目录读取请求的客户端;
306、若根据所述第一标签,所述内容超出所述有效期,则根据权利要求1所述的方法重新获取所述内容,并在获取到所述内容后,将所述内容存储在所述缓存中,发送所述内容至所述发送所述第一文件目录读取请求的客户端。
其中,根据是否有其他客户端针对所述内容发起读取请求,具体还分为:
若有其他所述客户端发起针对所述内容的读取请求时,则服务器建立第二标签,所述第二标签用于确定等待时间,在所述等待时间内,当所述内容已经被存储在所述缓存中时,则将所述内容发送给所述发送第一文件目录读取请求的客户端;
上述第二标签确定的等待时间,是指在所述缓存中没有存储客户端通过文件目录读取请求的文件目录时,服务器根据所述文件目录读取请求中包含的最优读取值等信息向服务器转发了读取请求,并在从文件***获取到文件目录前的这一时间段内,若还有其他客户端针对正在处理的文件目录内容发送了读取请求,则服务器需要建立第二标签来确定一个等待时间,用于表明当前服务器正在处理针对该内容的请求。
若在该等待时间内,服务器成功从文件***获取到文件目录内容,并且已经将该文件目录内容存储到缓存后,服务器将已经存储的文件目录内容发送给在等待时间内发起请求的客户端;
若在该等待时间内,服务器没有从文件***获取到文件目录内容,则根据上一实施例中步骤2011-2015的内容,重新获取最优读取值,并根据该最优读取值,再次向文件***发送文件目录读取请求,并重新建立第二标签中的等待时间。
上述步骤中,重新获取所述内容的步骤如下所示:
服务器从所述客户端接收确定读取值的请求,并根据所述请求确定最大读取值,该最大读取值为客户端能够支持的最大数据长度,通常记作max_count。
服务器向文件***发送对获取最佳性能大小的请求,所述最佳性能大小基于所述文件***的性能参数,其中所述性能参数至少包括数据块大小,通常记作fs_dtpref。
服务器确定当前传输协议允许的最大传输载荷,通常该传输载荷记作pro_max_playload。
服务器确定缓存算法支持的读取值。
服务器至少根据所述最大读取值、所述最佳性能大小、所述最大传输载荷、所述缓存算法支持的读取值,结合当前网络的负载系数和性能阈值,确定所述最优读取值,将所述最优读取值发送给所述客户端。
其中的当前网络载荷记作k,而服务器的性能阈值则记作SYS_k,之后通过上述所有参数值确定最优读取值,记作pro_dtpref。
示例性的,首先,确定max_count、fs_dtpref、pro_max_playload、algo_cache_size中的最小值Min;
接着,将参数k与SYS_k做除法,并将上一步获取到的最小值Min与除法得到的上相乘,最终得到的值记为最优读取值pro_dtpref,具体过程可用如下公式表示:
上述通过一系列参数值确定最优读取值的方法仅为一种常用的方法,不是对本发明中获取最优读取值的方法进行限定,对于其他获取最优读取值的方法,由于篇幅关系,就不在一一赘述。
在确定了最优读取值后,通过该最优读取值,向文件***转发读取请求,并在从文件***获取到文件目录内容后,将文件目录内容存储在缓存中。
当发起请求的为多个客户端并且是通过多协议发起请求时,服务器根据具体的请求内容判断在协议适配层服务器缓存中是否存在,若该内容存在时并且没有过期时,则将该请求内容发送给发起请求的对应客户端,若该内容已经过期,则根据获取内容的步骤重新获取请求内容,将该请求内容存储在协议适配层服务器的缓存中,接着在将请求内容发送给对应的客户端;对立的,若请求的内容没有在协议适配层缓存中存在,则服务器通过获取内容的步骤去确定请求的内容,同时将针对该内容的处理过程标记为已处理,在获取到内容后,将获取得到的内容存储在协议适配层服务器缓存中,并发送给对应的客户端。
上段描述中之所以将请求内容进行存储,是为了接下来若有针对相同内容的请求,就不需要再次进行获取内容的步骤,可以直接将缓存中的内容发送给客户端,从而提高了文件访问效率,而将处理过程标记为已处理,是为了避免同时处理多个针对同一内容的请求,造成资源浪费。
根据上述详细步骤,令服务器在处理文件访问请求时,通过将获取到的客户端请求内容存储在协议适配层缓存中的方式,结合判断协议适配层缓存中的内容是否过期的方式,可以在增加服务器处理客户端发送的访问请求的数量,同时提高了对访问内容的命中率,最终能够提高处理客户端发送的访问请求的效率。
本发明实施例提供一种文件目录的读取方法,通过服务器接收到客户端发送的第一文件目录读取请求后,根据该请求,确定缓存中是否存在客户端需要读取的内容,当缓存中不存在时,若还有其他客户端发起针对该内容的请求,则服务器建立用于确定等待时间的第二标签,并在等待时间内获取到所述内容,将其发送给发起读取请求的客户端,若没有其他客户端发起针对该内容的请求,则服务器建立标识正在处理的第三标签,并在获取所述内容后,将其发送给客户端;当在缓存中存在,并且所述内容处于第一标签规定的有效期内,则直接将该内容发送给发起请求的客户端,若所述内容超出了第一标签规定的有效期,则服务器重新获取最优读取值,并在获取文件目录内容后,将其发送给发起请求的客户端;从而能够在多客户端进行访问的场景中,减少***资源的利用率,节省了时间,提高了对文件目录的访问效率。
本发明提供一种文件目录的读取设备1,如图6所示,该设备1包括:
接收单元11,用于接收客户端发送的第一文件目录读取请求,所述第一文件目录读取请求中至少携带有最优读取值;
判断单元12,用于根据所述最优读取值,确定缓存中是否存储所述客户端需要读取的内容;
处理单元13,用于当所述缓存中没有存储所述客户端需要读取的内容时,则根据当前参数信息确定第一信息,将所述第一信息与所述最优读取值对比,根据对比结果向文件***发起读取请求,并在获取所述内容后,存储所述内容,建立与所述内容对应的第一标签,将所述存储的内容发送给所述客户端,其中,所述当前参数信息为确认所述缓存中是否存在所述客户端需要读取的内容后,获取到的包含所述客户端网络参数在内的参数信息,所述第一信息是针对所述缓存中是否存有所述客户端需要读取的内容,生成的确认消息,所述第一标签用于记录所述内容的有效期。
其中,处理单元13包括:
第一发送子单元131,用于若所述内容处于所述有效期内,则直接将所述内容发送给所述客户端;
第二发送子单元132,用于若所述内容不在所述有效期内,则重新根据所述当前参数信息确定第二信息,将所述第二参数消息与所述最优读取值对比,根据对比结果向所述文件***发起读取请求,并在获取所述内容后,存储所述内容,修改所述第一标签记录的所述有效期信息,其中,所述第二信息是针对所述缓存中是否存有所述客户端需要读取的内容,生成的确认消息。
如图7所示,在处理单元13中,获取最优读取值具体包括:
第一确定子单元133,用于从所述客户端接收确定读取值的请求,并根据所述请求确定最大读取值;
第一发送子单元131,用于向所述文件***发送对获取最佳性能大小的请求,所述最佳性能大小基于所述文件***的性能参数,其中所述性能参数至少包括数据块大小;
所述第一确定子单元133,还用于确定当前传输协议允许的最大传输载荷;
所述第一确定子单元133,还用于确定缓存算法支持的读取值;
所述第一确定子单元133,还用于至少根据所述最大读取值、所述最佳性能大小、所述最大传输载荷、所述缓存算法支持的读取值,结合当前网络的负载系数和性能阈值,确定所述最优读取值。
当至少有两个客户端发送所述第一文件目录读取请求时,所述处理单元13包括:
所述判断子单元134,用于根据所述第一文件目录读取请求,确定所述缓存中是否存在所述客户端需要读取的内容;
所述判断子单元134,还用于当当所述缓存中不存在所述内容时,根据所述第一文件目录读取请求中的内容,判断是否有其他所述客户端发起针对所述内容的请求;
发送子单元135,用于向所述文件***发送获取所述内容的请求,并将获取到的所述内容存储在所述缓存中。
进一步的,在所述处理单元13中:
所述第二发送子单元132,用于在获取所述内容的过程中,若接收到除所述客户端以外的其他客户端发送针对所述内容的请求,则建立正在处理所述内容的标签,以便于向所述其他客户端发送正在处理的消息,并在获取并存储所述内容后,将所述内容发送给针对所述内容请求的客户端。
本发明提供一种文件目录的读取设备,通过客户端接收包含最优读取值的第一文件目录读取请求,根据该最优读取值,确定缓存中是否存在客户端需要读取的内容,当缓存中没有存储客户端需要读取的内容时,则根据当前参数信息确定第一信息,将第一信息与最优读取值对比,根据对比结果向文件***发起读取请求,在获取内容后,存储内容,并将内容发送给客户端;能够减少***资源的利用率,节省了时间,提高了对文件目录的访问效率。
本发明实施例还提供一种文件目录的读取装置2,如图8所示,该装置2包括:总线21,以及与总线21相连的存储器22、处理器23、接收器24和发射器25,其中存储器22用于存储相关指令,处理器23执行相关指令用于接收客户端发送的第一文件目录读取请求,所述第一文件目录读取请求中至少携带有最优读取值;
处理器23执行相关指令用于根据所述最优读取值,确定缓存中是否存储所述客户端需要读取的内容;
处理器23执行相关指令用于当所述缓存中没有存储所述客户端需要读取的内容时,则根据当前参数信息确定第一信息,将所述第一信息与所述最优读取值对比,根据对比结果向文件***发起读取请求,并在获取所述内容后,存储所述内容,建立与所述内容对应的第一标签,将所述存储的内容发送给所述客户端,其中,所述当前参数信息为确认所述缓存中是否存在所述客户端需要读取的内容后,获取到的包含所述客户端网络参数在内的参数信息,所述第一信息是针对所述缓存中是否存有所述客户端需要读取的内容,生成的确认消息,所述第一标签用于记录所述内容的有效期。
在本发明实施例中,可选的,当所述缓存中存储有所述客户端需要读取的内容时,处理器23还用于:
若所述内容处于所述有效期内,则直接将所述内容发送给所述客户端;
若所述内容不在所述有效期内,则重新根据所述当前参数信息确定第二信息,将所述第二参数消息与所述最优读取值对比,根据对比结果向所述文件***发起读取请求,并在获取所述内容后,存储所述内容,修改所述第一标签记录的所述有效期信息,其中,所述第二信息是针对所述缓存中是否存有所述客户端需要读取的内容,生成的确认消息。
在本发明实施例中,可选的,处理器23执行相关指令用于获取所述最优读取值具体包括:
从所述客户端接收确定读取值的请求,并根据所述请求确定最大读取值;
向所述文件***发送对获取最佳性能大小的请求,所述最佳性能大小基于所述文件***的性能参数,其中所述性能参数至少包括数据块大小;
确定当前传输协议允许的最大传输载荷;
确定缓存算法支持的读取值;
至少根据所述最大读取值、所述最佳性能大小、所述最大传输载荷、所述缓存算法支持的读取值,结合当前网络的负载系数和性能阈值,确定所述最优读取值,将所述最优读取值发送给所述客户端。
在本发明实施例中,可选的,处理器23还用于在获取所述内容的过程中,若接收到除所述客户端以外的其他客户端发送针对所述内容的请求,则建立正在处理所述内容的标签,以便于向所述其他客户端发送正在处理的消息,并在获取并存储所述内容后,将所述内容发送给针对所述内容请求的客户端。
本发明提供一种文件目录的读取装置,通过客户端接收包含最优读取值的第一文件目录读取请求,根据该最优读取值,确定缓存中是否存在客户端需要读取的内容,当缓存中没有存储客户端需要读取的内容时,则根据当前参数信息确定第一信息,将第一信息与最优读取值对比,根据对比结果向文件***发起读取请求,在获取内容后,存储内容,并将内容发送给客户端;能够减少***资源的利用率,节省了时间,提高了对文件目录的访问效率。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法,装置,和***,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (8)
1.一种文件目录的读取方法,其特征在于,所述方法包括:
接收客户端发送的第一文件目录读取请求,所述第一文件目录读取请求中至少携带有最优读取值;
根据所述最优读取值,确定缓存中是否存储所述客户端需要读取的内容;
当所述缓存中没有存储所述客户端需要读取的内容时,则根据当前参数信息确定第一信息,将所述第一信息与所述最优读取值对比,根据对比结果向文件***发起读取请求,获取所述内容,并在获取所述内容后,存储所述内容,建立与所述内容对应的第一标签,将所述内容发送给所述客户端;其中,所述当前参数信息为确认所述缓存中是否存在所述客户端需要读取的内容后,获取到的包含所述客户端网络参数在内的参数信息,所述第一信息是针对所述缓存中是否存有所述客户端需要读取的内容,生成的确认消息,所述第一标签用于记录所述内容的有效期。
2.根据权利要求1所述的方法,其特征在于,当所述缓存中存储有所述客户端需要读取的内容时,所述方法还包括:
若所述内容处于有效期内,则将所述内容发送给所述客户端;
若所述内容不在有效期内,则根据当前参数信息确定第二信息,将所述第二信息与所述最优读取值对比,根据对比结果向文件***发起读取请求,并在获取所述内容后,存储所述内容,修改所述记录的有效期信息,其中,所述第二信息是针对所述缓存中是否存有所述客户端需要读取的内容,生成的确认消息。
3.根据权利要求1所述的方法,其特征在于,获取所述最优读取值具体包括:
从所述客户端接收确定读取值的请求,并根据所述请求确定最大读取值;
向所述文件***发送对获取最佳性能大小的请求,所述最佳性能大小基于所述文件***的性能参数,其中所述性能参数至少包括数据块大小;
确定当前传输协议允许的最大传输载荷;
确定缓存算法支持的读取值;
根据所述最大读取值、所述最佳性能大小、所述最大传输载荷、所述缓存算法支持的读取值,结合当前网络的负载系数和性能阈值,确定所述最优读取值,将所述最优读取值发送给所述客户端。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在获取所述内容的过程中,若接收到除所述客户端以外的其他客户端发送针对所述内容的请求,则建立正在处理所述内容的标签,以便于向所述其他客户端发送正在处理的消息,并在获取并存储所述内容后,将所述内容发送给针对所述内容请求的客户端。
5.一种文件目录的读取设备,其特征在于,所述设备包括:
接收单元,用于接收客户端发送的第一文件目录读取请求,所述第一文件目录读取请求中至少携带有最优读取值;
判断单元,用于根据所述最优读取值,确定缓存中是否存储所述客户端需要读取的内容;
处理单元,用于当所述缓存中没有存储所述客户端需要读取的内容时,则根据当前参数信息确定第一信息,将所述第一信息与所述最优读取值对比,根据对比结果向文件***发起读取请求,获取所述内容,并在获取所述内容后,存储所述内容,建立与所述内容对应的第一标签,将所述内容发送给所述客户端,其中,所述当前参数信息为确认所述缓存中是否存在所述客户端需要读取的内容后,获取到的包含所述客户端网络参数在内的参数信息,所述第一信息是针对所述缓存中是否存有所述客户端需要读取的内容,生成的确认消息,所述第一标签用于记录所述内容的有效期。
6.根据权利要求5所述的设备,其特征在于,所述处理单元具体包括:
第一发送子单元,用于若所述内容处于有效期内,则将所述内容发送给所述客户端;
第二发送子单元,用于若所述内容不在有效期内,则根据当前参数信息确定第二信息,将所述第二信息与所述最优读取值对比,根据对比结果向文件***发起读取请求,并在获取所述内容后,存储所述内容,修改所述记录的有效期信息,其中,所述第二信息是针对所述缓存中是否存有所述客户端需要读取的内容,生成的确认消息。
7.根据权利要求5所述的设备,其特征在于,所述设备中获取所述最优读取值具体包括:
第一确定子单元,用于从所述客户端接收确定读取值的请求,并根据所述请求确定最大读取值;
第一发送子单元,用于向所述文件***发送对获取最佳性能大小的请求,所述最佳性能大小基于所述文件***的性能参数,其中所述性能参数至少包括数据块大小;
所述第一确定子单元,还用于确定当前传输协议允许的最大传输载荷;
所述第一确定子单元,还用于确定缓存算法支持的读取值;
所述第一确定子单元,还用于根据所述最大读取值、所述最佳性能大小、所述最大传输载荷、所述缓存算法支持的读取值,结合当前网络的负载系数和性能阈值,确定所述最优读取值,将所述最优读取值发送给所述客户端。
8.根据权利要求6所述的设备,其特征在于,在所述设备中:
所述第二发送子单元,还用于在获取所述内容的过程中,若接收到除所述客户端以外的其他客户端发送针对所述内容的请求,则建立正在处理所述内容的标签,以便于向所述其他客户端发送正在处理的消息,并在获取并存储所述内容后,将所述内容发送给针对所述内容请求的客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410086430.XA CN103838682B (zh) | 2014-03-10 | 2014-03-10 | 一种文件目录的读取方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410086430.XA CN103838682B (zh) | 2014-03-10 | 2014-03-10 | 一种文件目录的读取方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103838682A CN103838682A (zh) | 2014-06-04 |
CN103838682B true CN103838682B (zh) | 2017-01-04 |
Family
ID=50802203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410086430.XA Active CN103838682B (zh) | 2014-03-10 | 2014-03-10 | 一种文件目录的读取方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103838682B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105279103A (zh) * | 2015-09-29 | 2016-01-27 | 浪潮集团有限公司 | 一种数据管理方法及装置 |
CN107305580A (zh) * | 2016-04-25 | 2017-10-31 | 西门子公司 | 一种数据调度的方法及装置 |
CN108108310A (zh) * | 2016-11-24 | 2018-06-01 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及服务器 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120137079A1 (en) * | 2010-11-26 | 2012-05-31 | International Business Machines Corporation | Cache coherency control method, system, and program |
CN103186621B (zh) * | 2011-12-30 | 2016-07-06 | 北大方正集团有限公司 | 一种目录生成方法和装置 |
CN103279568A (zh) * | 2013-06-18 | 2013-09-04 | 无锡紫光存储***有限公司 | 一种元数据管理***及方法 |
CN103544269B (zh) * | 2013-10-17 | 2017-02-01 | 华为技术有限公司 | 目录的存储方法、查询方法及节点控制器 |
-
2014
- 2014-03-10 CN CN201410086430.XA patent/CN103838682B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN103838682A (zh) | 2014-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9832275B2 (en) | Message processing method, device and system for internet of things | |
EP2002343B1 (en) | Multi-cache cooperation for response output caching | |
CN103312624B (zh) | 一种消息队列服务***和方法 | |
US20110119444A1 (en) | Adaptive caching of data | |
CN105635196B (zh) | 一种获取文件数据的方法、***和应用服务器 | |
CN102984286A (zh) | 一种dns服务器的缓存更新方法、装置及*** | |
CN106331148A (zh) | 一种客户端数据读取时的缓存管理方法及其装置 | |
CN101662483A (zh) | 云计算网络的缓存***及其方法 | |
CN106899643A (zh) | 一种用户日志存储方法及设备 | |
CN108920616A (zh) | 一种元数据访问性能优化方法、***、装置及存储介质 | |
CN107729331A (zh) | 一种移动应用高速缓存html5页面资源的方法 | |
CN103491075A (zh) | 动态调整dns递归服务器缓存资源记录的方法和*** | |
CN103294609B (zh) | 信息处理装置和存储器管理方法 | |
CN107368608A (zh) | 基于arc替换算法的hdfs小文件缓存管理方法 | |
CN103838682B (zh) | 一种文件目录的读取方法和设备 | |
CN105095495B (zh) | 一种分布式文件***缓存管理方法和*** | |
CN106802955A (zh) | 一种图片数据缓存方法 | |
CN106446097A (zh) | 一种文件读取方法及*** | |
CN108900626A (zh) | 一种云环境下数据存储方法、装置及*** | |
CN112035766A (zh) | 网页访问方法、装置、存储介质及电子设备 | |
US20150006622A1 (en) | Web contents transmission method and apparatus | |
CN111143733A (zh) | 一种本地数据缓存方法、装置、电子设备及可读存储介质 | |
CN104737505A (zh) | 基于缓存的路由方法及路由节点 | |
CN109063140A (zh) | 一种数据查询方法、中转服务器及计算机可读存储介质 | |
JP2004527820A (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 |