一种用户文件读取、写入方法及装置制造方法及图纸

技术编号:28147251 阅读:17 留言:0更新日期:2021-04-21 19:33
本申请公开一种用户文件读取方法,包括如下步骤:S11.获取用户文件的第X次文件读取请求;S12.读取预设大小的数据作为预读数据;S13.从所述预读数据中返回所述读取请求所对应的数据量;S14.缓存所述预读数据中的剩余数据作为缓存读数据;S15.获取此用户文件的第X+1次文件读取请求;S16.从所述缓存读数据中返回所述读取请求所对应的数据量;S17.将所述缓存读数据中的剩余数据作为新的所述缓存读数据;S18.判断所述缓存读数据是否全部返回;若否,则返回步骤S15;若是,则返回步骤S12。本申请提供的用户文件读取方法,在不修改内核FUSE模块的前提下,能够提高多处理器之间的数据传输能力,从而提升FUSE文件系统文件读写性能。从而提升FUSE文件系统文件读写性能。从而提升FUSE文件系统文件读写性能。

【技术实现步骤摘要】
一种用户文件读取、写入方法及装置


[0001]本申请涉及用户文件系统
,更具体地说,尤其涉及一种用户文件读取、写入方法及装置。

技术介绍

[0002]一般地,文件系统是在linux操作系统内核中实现。但是在内核中开发一种新的文件系统,难度非常大。为了降低这种开发难度,用户空间文件系统应运而生。用户空间文件系统由内核FUSE模块和用户空间应用程序两部分组成。
[0003]用户文件系统由内核程序和用户空间应用程序两部分组成。传统的用户文件系统内核FUSE模块只支持最大128KB的数据块读写,在很多应用场景中,由于存储设备是挂载在另一个处理器上,为了读写数据,FUSE应用程序需要通过核间通信的方式与另一个处理器传输数据,在单位时间内,每次最多传输128KB数据,远远无法满足数据传输性能要求,多处理器之间的数据传输受到很大的限制。
[0004]现有的针对这种问题的解决办法是修改内核FUSE模块。提高单次最大传输大小。但是这个办法具有三个缺点:1.修改内核,开发调试难度大,甚至还可能影响内核稳定;2.大小修改也还是有限制,不能修改太大;3.对于非开源的操作系统,无法修改其内核FUSE模块。所以没有普适性。
[0005]因此,设计一种在不修改内核FUSE模块的前提下,能够提高多处理器之间的数据传输能力的用户文件读取方法和用户文件写入方法,是本领域技术人员函待解决的问题。

技术实现思路

[0006]为解决上述技术问题,本申请提供的用户文件读取方法和用户文件写入方法,在不修改内核FUSE模块的前提下,能够提高多处理器之间的数据传输能力,从而提升FUSE文件系统文件读写性能,解决现有FUSE模块只支持最大128KB的数据块读写,所造成的无法满足数据传输性能要求,多处理器之间的数据传输受到很大限制的问题。
[0007]本申请提供的技术方案如下:
[0008]一种用户文件读取方法,包括如下步骤:
[0009]S11.获取用户文件的第X次文件读取请求;
[0010]S12.读取预设大小的数据作为预读数据;
[0011]S13.从所述预读数据中返回所述读取请求所对应的数据量;
[0012]S14.缓存所述预读数据中的剩余数据作为缓存读数据;
[0013]S15.获取此用户文件的第X+1次文件读取请求;
[0014]S16.从所述缓存读数据中返回所述读取请求所对应的数据量;
[0015]S17.将所述缓存读数据中的剩余数据作为新的所述缓存读数据;
[0016]S18.判断所述缓存读数据是否全部返回;
[0017]若否,则返回步骤S15;
[0018]若是,则返回步骤S12。
[0019]优选的,当所述文件读取请求完毕后,删除所述缓存读数据。
[0020]优选的,在步骤S15之前,还包括:
[0021]S141.记录所述缓存读数据的存在时间;
[0022]S142.判断所述存在时间是否大于时间阈值;
[0023]S143.若是,则删除所述缓存读数据;
[0024]S144.若否,则进入步骤S15。
[0025]一种用户文件写入方法,包括如下步骤:
[0026]S21.获取用户文件的第Y次文件写入请求;
[0027]S22.缓存所述写入请求所对应的数据量作为缓存写数据;
[0028]S23.获取用户文件的第Y+1次文件写入请求;
[0029]S24.在所述缓存写数据中写入所述写入请求所对应的数据量,作为新的所述缓存写数据;
[0030]S25.判断所述缓存写数据是否大于预设大小;
[0031]S251.若是,则将所述缓存写数据写入用户文件;
[0032]S252.若否,则返回步骤S24。
[0033]优选的,当所述文件写入请求完毕后,将所述缓存写数据写入用户文件。
[0034]优选的,在步骤S23之前,还包括:
[0035]S221.记录所述缓存写数据的保留时间;
[0036]S222.判断所述保留时间是否大于时间阈值;
[0037]S223.若是,则删除所述缓存写数据;
[0038]S224.若否,则进入步骤S23。
[0039]一种基于上述任一用户文件读取方法的用户文件读取装置,包括:
[0040]获取模块,用于获取用户文件的文件读取请求;
[0041]读取模块,用于读取预设大小的数据作为预读数据;
[0042]返回模块,用于从所述预读数据中返回所述读取请求所对应的数据量;
[0043]缓存模块,用于缓存所述预读数据中的剩余数据作为缓存读数据;
[0044]判断模块,用于判断所述缓存读数据是否全部返回;
[0045]循环模块,用于根据所述判断模块的判断结果,将后续处理信号发送至所述获取模块或者所述读取模块。
[0046]优选的,还包括:
[0047]记录模块,用于记录所述缓存读数据的存在时间;
[0048]删除模块,用于删除所述缓存读数据;
[0049]所述判断模块还用于判断所述存在时间是否大于时间阈值。
[0050]一种基于上述任一用户文件写入方法的用户文件写入装置,包括:
[0051]获取模块,用于获取用户文件的第Y次文件写入请求;
[0052]缓存模块,用于缓存所述写入请求所对应的数据量作为缓存写数据;
[0053]缓存写入模块,用于在所述缓存写数据中写入所述写入请求所对应的数据量;
[0054]判断模块,用于判断所述缓存写数据是否大于预设大小;
[0055]文件写入模块,用于将所述缓存写数据写入用户文件。
[0056]优选的,还包括:
[0057]记录模块,用于记录所述缓存写数据的保留时间;
[0058]删除模块,用于删除所述缓存写数据;
[0059]所述判断模块还用于判断所述保留时间是否大于时间阈值。
[0060]本专利技术采用的用户文件读取方法和用户文件写入方法,实现在不修改内核FUSE模块的前提下,能够提高多处理器之间的数据传输能力,从而提升FUSE文件系统文件读写性能,解决现有FUSE模块只支持最大128KB的数据块读写,所造成的无法满足数据传输性能要求,多处理器之间的数据传输受到很大限制的问题。
附图说明
[0061]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0062]图1为本专利技术实施例提供的用户文件读取方法的一种流程示意图;
[0063]图2为本专利技术实施例提供的用户文件读取装置的一种结构示意图;
[0064]图3为本专利技术实施例提供的用户文本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用户文件读取方法,其特征在于,包括如下步骤:S11.获取用户文件的第X次文件读取请求;S12.读取预设大小的数据作为预读数据;S13.从所述预读数据中返回所述读取请求所对应的数据量;S14.缓存所述预读数据中的剩余数据作为缓存读数据;S15.获取此用户文件的第X+1次文件读取请求;S16.从所述缓存读数据中返回所述读取请求所对应的数据量;S17.将所述缓存读数据中的剩余数据作为新的所述缓存读数据;S18.判断所述缓存读数据是否全部返回;若否,则返回步骤S15;若是,则返回步骤S12。2.根据权利要求1所述的用户文件读取方法,其特征在于,当所述文件读取请求完毕后,删除所述缓存读数据。3.根据权利要求1所述的用户文件读取方法,其特征在于,在步骤S15之前,还包括:S141.记录所述缓存读数据的存在时间;S142.判断所述存在时间是否大于时间阈值;S143.若是,则删除所述缓存读数据;S144.若否,则进入步骤S15。4.一种用户文件写入方法,其特征在于,包括如下步骤:S21.获取用户文件的第Y次文件写入请求;S22.缓存所述写入请求所对应的数据量作为缓存写数据;S23.获取用户文件的第Y+1次文件写入请求;S24.在所述缓存写数据中写入所述写入请求所对应的数据量,作为新的所述缓存写数据;S25.判断所述缓存写数据是否大于预设大小;S251.若是,则将所述缓存写数据写入用户文件;S252.若否,则返回步骤S24。5.根据权利要求4所述的用户文件写入方法,其特征在于,当所述文件写入请求完毕后,将所述缓存写数据写入用户文件。6.根据权利要求4所述的用户文件写入方法,其特征...

【专利技术属性】
技术研发人员:谭德辉刘宇洋谢启友
申请(专利权)人:湖南博匠信息科技有限公司
类型:发明
国别省市:

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

1