一种文件预读方法技术

技术编号:7468496 阅读:200 留言:0更新日期:2012-06-30 05:15
本发明专利技术提供了一种文件预读方法,包括如下步骤:A、文件系统判断要执行打开操作的文件的数据大小和预先配置的预读数据大小,如果前者大于或等于后者,则预读文件开始部分的大小等于预先配置的预读数据大小的数据到操作文件系统缓存中;如果前者小于后者,则直接将该文件预读到操作文件系统缓存中;B、文件系统收到文件读操作,判断该读操作的目标数据是否已在缓存中,若是,直接从缓存中获取相应数据,并响应该读操作;否则从磁盘中读取相应数据。

【技术实现步骤摘要】

本专利技术涉及计算机文件处理技术,特别涉及。
技术介绍
目前传统的读写文件操作过程基本上是先对存储在硬盘上的文件做打开(open) 文件操作,其实质是将文件在硬盘的存储区域与文件系统内存作一个映射;以后需要对该文件读写时候再做读写操作,即将硬盘上存储的文件读取到映射的内存中或者将内存中的数据写入硬盘。很多业务存在需要大量并发读写小文件的操作,虽然数据量不大,但是每个文件存放磁盘位置不一样,这会严重影响读操作的性能。如果出现这种情况,可能无法同时执行这些读写操作,而需要将读写操作建立一个序列,并依次执行这些读写操作。多数业务对于读写性能要求具有一定的容忍度,因此并发大量读写操作的后果无非是等待时间长一些。 但是在某些情况下,对数据读操作有时候具有较高性能的要求,因为做读操作之后,如果数据不能及时读出来,客户业务很多时候就一直处于阻塞状态,不能继续下去,如果客户业务实时性要求较高,则会对业务造成严重影响。
技术实现思路
本专利技术提供了,可以提高并发读写大量小文件时的读写性能。本专利技术实施例提供,包括如下步骤A、文件系统判断要执行打开操作的文件的数据大小和预先配置的预读数据大小, 如果前者大于或等于后者,则预读文件开始部分的大小等于预先配置的预读数据大小的数据到操作文件系统缓存中;如果前者小于后者,则直接将该文件预读到操作文件系统缓存中;B、文件系统收到文件读操作,判断该读操作的目标数据是否已在缓存中,若是,直接从缓存中获取相应数据,并响应该读操作;否则从磁盘中读取相应数据。较佳地,所述步骤A之前进一步包括文件系统发现要对文件进行打开操作时,判断是否启动预读机制,如果不启动,按照文件系统正常机制进行打开操作并退出本流程;如果启动则执行所述步骤A。较佳地,所述步骤A之前进一步包括配置预读数据大小,所述预读数据大小为1 字节、3 字节、64k字节或12 字节。较佳地,步骤B之后进一步包括文件系统判断缓存中的预读数据未被访问的时间是否达到预定时限,若是,则回收所述预读数据对应的缓存。从以上技术方案可以看出,当对文件做打开的时候,就直接先预读文件开始一部分文件内容到文件系统内存中。这样操作后,下次文件系统读取该文件的时候,如果数据在文件系统内存中,就不需要再从磁盘读取数据,直接从文件系统内存中读取该数据,效率会得到较好的提高。附图说明图1为本专利技术实施例提供的文件预读方法流程图。 具体实施例方式本专利技术方案主要针对并发读写大量小文件的应用场景,当对文件做打开的时候, 就直接先预读文件开始一部分文件内容到文件系统内存中。这样操作后,下次文件系统读取该文件的时候,如果数据在文件系统内存中,就不需要再从磁盘读取数据,直接从文件系统内存中读取该数据,效率会得到较好的提高。本专利技术实施例提供的文件预读方法流程如图1所示,包括如下步骤步骤101 预先配置预读数据大小。预读数据大小可以通过配置文件根据需求配置,例如可以配置为16k字节、32k字节、64k字节、128k字节等等。步骤102 当文件系统发现要对文件进行打开操作时候,判断是否启动预读机制, 如果不启动,按照文件系统正常机制进行打开操作并退出本流程;如果启动,则继续执行步骤 102。文件系统可以提供预读的设置选项,如果用户将该选项设置为开启,则文件系统根据该项设置信息,判断需要启动预读机制。步骤103 比较要打开的文件的数据大小和预先配置的预读数据大小,如果前者大于或等于后者,则预读文件开始部分的大小等于预先配置的预读数据大小的数据到操作文件系统缓存中;如果前者小于后者,则直接将该文件预读到操作文件系统缓存中。步骤104 文件系统收到文件读操作,判断该读操作的目标数据是否已在缓存中, 若是,直接从缓存中获取相应数据,并响应该读操作;否则从磁盘中读取相应数据。步骤105 文件系统判断缓存中的预读数据未被访问的时间是否达到预定时限, 若是,则回收所述预读数据对应的缓存。该步骤的目的是为了防止长期占用系统内存,为可选步骤。本专利技术方案特别适用于并发读写大量小文件的应用场景,可以省去大量对磁盘寻址的时间,直接从内存中读取相应数据;通过设置合适的预读数据大小,可以提高读文件时在内存中的命中率的同时,又避免占用过多的系统缓存。以上所述仅为本专利技术的较佳实施例而已,并不用以限制本专利技术,凡在本专利技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本专利技术保护的范围之内。权利要求1.,其特征在于,包括如下步骤A、文件系统判断要执行打开操作的文件的数据大小和预先配置的预读数据大小,如果前者大于或等于后者,则预读文件开始部分的大小等于预先配置的预读数据大小的数据到操作文件系统缓存中;如果前者小于后者,则直接将该文件预读到操作文件系统缓存中;B、文件系统收到文件读操作,判断该读操作的目标数据是否已在缓存中,若是,直接从缓存中获取相应数据,并响应该读操作;否则从磁盘中读取相应数据。2.根据权利要求1所述的方法,其特征在于,所述步骤A之前进一步包括文件系统发现要对文件进行打开操作时,判断是否启动预读机制,如果不启动,按照文件系统正常机制进行打开操作并退出本流程;如果启动则执行所述步骤A。3.根据权利要求1所述的方法,其特征在于,所述步骤A之前进一步包括 配置预读数据大小,所述预读数据大小为1 字节、3 字节、64k字节或12 字节。4.根据权利要求1所述的方法,其特征在于,步骤B之后进一步包括文件系统判断缓存中的预读数据未被访问的时间是否达到预定时限,若是,则回收所述预读数据对应的缓存。全文摘要本专利技术提供了,包括如下步骤A、文件系统判断要执行打开操作的文件的数据大小和预先配置的预读数据大小,如果前者大于或等于后者,则预读文件开始部分的大小等于预先配置的预读数据大小的数据到操作文件系统缓存中;如果前者小于后者,则直接将该文件预读到操作文件系统缓存中;B、文件系统收到文件读操作,判断该读操作的目标数据是否已在缓存中,若是,直接从缓存中获取相应数据,并响应该读操作;否则从磁盘中读取相应数据。文档编号G06F17/30GK102521349SQ201110412158公开日2012年6月27日 申请日期2011年12月12日 优先权日2011年12月12日专利技术者金振成 申请人:云海创想信息技术(天津)有限公司, 深圳市创新科信息技术有限公司本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:金振成
申请(专利权)人:深圳市创新科信息技术有限公司云海创想信息技术天津有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术