[发明专利]Linux内核文件系统异步写缓存方法、装置及介质有效
申请号: | 201911398160.5 | 申请日: | 2019-12-30 |
公开(公告)号: | CN111159124B | 公开(公告)日: | 2022-04-22 |
发明(设计)人: | 顾长顺;张端 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
主分类号: | G06F16/172 | 分类号: | G06F16/172 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 刘新雷 |
地址: | 250101 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | linux 内核 文件系统 异步 缓存 方法 装置 介质 | ||
本申请公开了一种Linux内核文件系统异步写缓存方法、装置及计算机可读存储介质。其中,方法包括预先在虚拟文件系统的buffer IO的写接口处定义聚合空间的文件扩展属性,若文件条带的空间容量占用值小于聚合空间的空间容量占用值,则在待写入文件进入写接口后先存储至聚合空间;若检测到聚合空间的剩余空间容量占用值是0,则发送内存空间写缓存申请请求。本申请降低了内存操作频率和系统资源开销,提高了写缓存效率,提升文件系统写性能。
技术领域
本申请涉及Linux系统的读写缓存技术领域,特别是涉及一种Linux内核文件系统异步写缓存方法、装置及计算机可读存储介质。
背景技术
在Linux系统中,文件系统写模型包括direct IO方式和buffer IO方式。directIO方式不经过缓存,数据从用户态经过内核态直接落盘或者发至网络文件系统后端;buffer IO方式为用户数据先写到本地高速缓存,如Linux Page Cache,然后当Page Cache数据达到内核一定阈值,该阈值可为时间维度上的阈值,也可为空间维度上的阈值,最后由内核回写进程将数据落盘或发送到网络文件系统后端。
但是,对于这种文件系统异步写方式来说,在数据写入过程中,虚拟文件系统的异步写接口每次只处理文件一个块/数据块到缓存。对于文件条带很小的文件写缓存场景,大文件写过程会有大量缓存操作,内存操作频率很高,写缓存效率比较低且消耗系统CPU(中央处理器)的资源。
发明内容
本申请提供了一种Linux内核文件系统异步写缓存方法、装置及计算机可读存储介质,降低了内存操作频率和系统资源开销,提高了写缓存效率,提升文件系统写性能。
为解决上述技术问题,本发明实施例提供以下技术方案:
本发明实施例一方面提供了一种Linux内核文件系统异步写缓存方法,包括:
判断当前待写入文件的文件条带的空间容量占用值是否小于聚合空间的空间容量占用值;所述聚合空间为预先在虚拟文件系统的buffer IO的写接口处定义的文件扩展属性;
若是,则在所述待写入文件进入所述写接口后先存储至所述聚合空间;
若所述聚合空间的剩余空间容量占用值为0,则发送内存空间写缓存申请请求,以将所述聚合空间存储数据写入至所述内存空间。
可选的,所述判断当前待写入文件的文件条带的空间容量占用值是否小于聚合空间的空间容量占用值之后,还包括:
获取所述当前待写入文件的空间容量占用值;
基于预先设置的聚合空间容量与写入文件容量值的对应关系表,自动调整所述聚合空间的空间容量占用值。
可选的,所述判断当前待写入文件的文件条带的空间容量占用值是否小于聚合空间的空间容量占用值之前,还包括:
当接收到用户调整空间占用容量的请求指令,将所述聚合空间的当前空间占用容量调整至所述请求指令中的目标空间容量占用值。
可选的,所述发送内存空间写缓存申请请求之后,还包括:
判断所述聚合空间的写缓存是否结束;
若是,则释放所述聚合空间,以便后续文件数据写入。
可选的,所述若所述聚合空间的剩余空间容量占用值为0,则发送内存空间写缓存申请请求包括:
判断所述聚合空间中是否存在时间戳超过预设时间阈值的目标存储数据;
若是,则发送内存空间写缓存申请请求,以优先将所述目标存储数据存储至所述内存空间;
若否,则当检测到所述聚合空间的剩余空间容量占用值为0时,发送内存空间写缓存申请请求。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911398160.5/2.html,转载请声明来源钻瓜专利网。