CN111159124B - Linux内核文件系统异步写缓存方法、装置及介质 - Google Patents
Linux内核文件系统异步写缓存方法、装置及介质 Download PDFInfo
- Publication number
- CN111159124B CN111159124B CN201911398160.5A CN201911398160A CN111159124B CN 111159124 B CN111159124 B CN 111159124B CN 201911398160 A CN201911398160 A CN 201911398160A CN 111159124 B CN111159124 B CN 111159124B
- Authority
- CN
- China
- Prior art keywords
- space
- file
- aggregation
- capacity
- written
- 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
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000002776 aggregation Effects 0.000 claims abstract description 119
- 238000004220 aggregation Methods 0.000 claims abstract description 119
- 238000004590 computer program Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000006116 polymerization reaction Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种Linux内核文件系统异步写缓存方法、装置及计算机可读存储介质。其中,方法包括预先在虚拟文件系统的buffer IO的写接口处定义聚合空间的文件扩展属性,若文件条带的空间容量占用值小于聚合空间的空间容量占用值,则在待写入文件进入写接口后先存储至聚合空间;若检测到聚合空间的剩余空间容量占用值是0,则发送内存空间写缓存申请请求。本申请降低了内存操作频率和系统资源开销,提高了写缓存效率,提升文件系统写性能。
Description
技术领域
本申请涉及Linux系统的读写缓存技术领域,特别是涉及一种Linux内核文件系统异步写缓存方法、装置及计算机可读存储介质。
背景技术
在Linux系统中,文件系统写模型包括direct IO方式和buffer IO方式。directIO方式不经过缓存,数据从用户态经过内核态直接落盘或者发至网络文件系统后端;buffer IO方式为用户数据先写到本地高速缓存,如Linux Page Cache,然后当Page Cache数据达到内核一定阈值,该阈值可为时间维度上的阈值,也可为空间维度上的阈值,最后由内核回写进程将数据落盘或发送到网络文件系统后端。
但是,对于这种文件系统异步写方式来说,在数据写入过程中,虚拟文件系统的异步写接口每次只处理文件一个块/数据块到缓存。对于文件条带很小的文件写缓存场景,大文件写过程会有大量缓存操作,内存操作频率很高,写缓存效率比较低且消耗系统CPU(中央处理器)的资源。
发明内容
本申请提供了一种Linux内核文件系统异步写缓存方法、装置及计算机可读存储介质,降低了内存操作频率和系统资源开销,提高了写缓存效率,提升文件系统写性能。
为解决上述技术问题,本发明实施例提供以下技术方案:
本发明实施例一方面提供了一种Linux内核文件系统异步写缓存方法,包括:
判断当前待写入文件的文件条带的空间容量占用值是否小于聚合空间的空间容量占用值;所述聚合空间为预先在虚拟文件系统的buffer IO的写接口处定义的文件扩展属性;
若是,则在所述待写入文件进入所述写接口后先存储至所述聚合空间;
若所述聚合空间的剩余空间容量占用值为0,则发送内存空间写缓存申请请求,以将所述聚合空间存储数据写入至所述内存空间。
可选的,所述判断当前待写入文件的文件条带的空间容量占用值是否小于聚合空间的空间容量占用值之后,还包括:
获取所述当前待写入文件的空间容量占用值;
基于预先设置的聚合空间容量与写入文件容量值的对应关系表,自动调整所述聚合空间的空间容量占用值。
可选的,所述判断当前待写入文件的文件条带的空间容量占用值是否小于聚合空间的空间容量占用值之前,还包括:
当接收到用户调整空间占用容量的请求指令,将所述聚合空间的当前空间占用容量调整至所述请求指令中的目标空间容量占用值。
可选的,所述发送内存空间写缓存申请请求之后,还包括:
判断所述聚合空间的写缓存是否结束;
若是,则释放所述聚合空间,以便后续文件数据写入。
可选的,所述若所述聚合空间的剩余空间容量占用值为0,则发送内存空间写缓存申请请求包括:
判断所述聚合空间中是否存在时间戳超过预设时间阈值的目标存储数据;
若是,则发送内存空间写缓存申请请求,以优先将所述目标存储数据存储至所述内存空间;
若否,则当检测到所述聚合空间的剩余空间容量占用值为0时,发送内存空间写缓存申请请求。
可选的,所述聚合空间包括第一聚合空间和第二聚合空间;所述在所述待写入文件进入所述写接口后先存储至所述聚合空间为:
采用数据读取线程将所述待写入文件写入至所述第一聚合空间;
当检测到采用数据写入线程将所述第一聚合空间的存储数据开始写入所述内存空间时,同时采用所述数据读取线程将后续待写入文件写入至所述第二聚合空间。
本发明实施例另一方面提供了一种Linux内核文件系统异步写缓存装置,包括:
判断模块,用于判断当前待写入文件的文件条带的空间容量占用值是否小于聚合空间的空间容量占用值;所述聚合空间为预先在虚拟文件系统的buffer IO的写接口处定义的文件扩展属性;
聚合空间写模块,用于若所述当前待写入文件的文件条带的空间容量占用值小于聚合空间的空间容量占用值,则在所述待写入文件进入所述写接口后先存储至所述聚合空间;
写内存模块,用于若所述聚合空间的剩余空间容量占用值为0,则发送内存空间写缓存申请请求,以将所述聚合空间存储数据写入至所述内存空间。
可选的,还包括聚合空间动态调整模块;
所述聚合空间动态调整模块用于获取所述当前待写入文件的空间容量占用值,并基于预先设置的聚合空间容量与写入文件容量值的对应关系表,自动调整所述聚合空间的空间容量占用值;或者
所述聚合空间动态调整模块用于当接收到用户调整空间占用容量的请求指令,将所述聚合空间的当前空间占用容量调整至所述请求指令中的目标空间容量占用值。
本发明实施例还提供了一种Linux内核文件系统异步写缓存装置,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前任一项所述Linux内核文件系统异步写缓存方法的步骤。
本发明实施例最后还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有Linux内核文件系统异步写缓存程序,所述Linux内核文件系统异步写缓存程序被处理器执行时实现如前任一项所述Linux内核文件系统异步写缓存方法的步骤。
本申请提供的技术方案的优点在于,预先增加文件聚合空间扩展属性,修改Linux内核现有的异步写缓存逻辑,单个条带不需要直接写缓存,而是通过写接口后先写到聚合空间,聚合空间写满后,多个条带数据统一申请内存空间写缓存,这样降低了内存操作频率,减少了系统资源开销,从而可提高写缓存效率和文件系统写性能。
此外,本发明实施例还针对Linux内核文件系统异步写缓存方法提供了相应的实现装置及计算机可读存储介质,进一步使得所述方法更具有实用性,所述装置及计算机可读存储介质具有相应的优点。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
为了更清楚的说明本发明实施例或相关技术的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种Linux内核文件系统异步写缓存方法的流程示意图;
图2为本发明实施例提供的一个示例性应用场景的框架示意图;
图3为本发明实施例提供的另一种Linux内核文件系统异步写缓存方法的流程示意图;
图4为本发明实施例提供的Linux内核文件系统异步写缓存装置的一种具体实施方式结构图;
图5为本发明实施例提供的Linux内核文件系统异步写缓存装置的另一种具体实施方式结构图;
图6为本发明实施例提供的Linux内核文件系统异步写缓存装置的再一种具体实施方式结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。
首先参见图1,图1为本发明实施例提供的一种Linux内核文件系统异步写缓存方法的流程示意图,本发明实施例可包括以下内容:
S101:判断当前待写入文件的文件条带的空间容量占用值是否小于聚合空间的空间容量占用值,若是,则执行S102。
本申请的聚合空间为预先在虚拟文件系统的buffer IO的写接口处定义的文件扩展属性。为了兼顾系统空间容量和内存交互频率,聚合空间的空间容量占用值可动态调整,可根据待写入文件的大小自动调整当前容量值,也可根据用户输入指令进行动态调整,例如可当接收到用户调整空间占用容量的请求指令,将聚合空间的当前空间占用容量调整至请求指令中的目标空间容量占用值。其中,聚合空间的空间容量占用值的动态调整步骤可在本发明实施例的任何一个步骤之前或之前,这均不影响本申请的实现。
需要说明的是,为了更好的体现本申请技术方案的有益效果,本申请可适用于文件条带较小的待写入文件,也即文件条带的空间容量占用值不大于预设容量阈值,例如10K,容量阈值可根据实际应用场合进行确定,本申请对此不作任何限定。文件条带越小,待写入文件越大,那么本申请提供的技术方案相比相关技术,就越是可降低内存交互,对提高文件系统的写性能越是明显。
S102:在待写入文件进入写接口后先存储至聚合空间。
可以理解的是,待写入文件的每个文件条带通过虚拟文件系统VFS的buffer IO写接口进行虚拟文件系统后,可先存储至预先开辟的聚合空间中,如图2所示,然后再由聚合空间统一存储至内存空间中,如图2所示的page cache。
S103:判断聚合空间的剩余空间容量占用值是否为0,若是,则执行S104。
S104:发送内存空间写缓存申请请求,以将聚合空间存储数据写入至内存空间。
其中,聚合空间的剩余空间容量占用值为0,即为聚合空间是否被写满。本申请为了降低内存交互频率以提高系统写性能,故可在聚合空间写满后,再统一执行写内存操作,将多个文件条带同时写进系统内存空间中,避免单个小条带直接写入内存空间导致内存操作频率太高占用系统cpu资源和性能不高的问题。
在本发明实施例提供的技术方案中,预先增加文件聚合空间扩展属性,修改Linux内核现有的异步写缓存逻辑,单个条带不需要直接写缓存,而是通过写接口后先写到聚合空间,聚合空间写满后,多个条带数据统一申请内存空间写缓存,这样降低了内存操作频率,减少了系统资源开销,从而可提高写缓存效率和文件系统写性能。
作为一种可选的实施方式,为了进一步提高系统性能,本申请可在增加文件聚合空间扩展属性时,将聚合空间分为独立互不影响的两部分,即聚合空间包括第一聚合空间和第二聚合空间。也就是说,第一聚合空间的读写操作和第二聚合空间的读写操作互不影响,这样可同时交互对两个聚合空间操作,当待写入文件很大时,可以提高文件写入效率,具体来说:
可采用数据读取线程将待写入文件写入至第一聚合空间;
当检测到采用数据写入线程将第一聚合空间的存储数据开始写入内存空间时,同时采用数据读取线程将后续待写入文件写入至第二聚合空间。
也就是说,第一聚合空间在写文件条带的过程中,若第二聚合空间存储有数据,那么可将第二聚合空间的数据写入至内存空间中,这两个过程可同时执行,从而提升系统写性能,加快待写入文件的写入效率。
考虑到不同用户或者是应用在不同的应用场景,提高灵活性和用户使用体验,扩大应用范围,本申请还提供了另外一个实施例,请参见图3,图3为本发明实施例提供的另一种Linux内核文件系统异步写缓存方法的流程示意图,可包括以下内容:
S301:判断当前待写入文件的文件条带的空间容量占用值是否小于聚合空间的空间容量占用值,若是,则执行S302。
S302:获取当前待写入文件的空间容量占用值。
S303:基于预先设置的聚合空间容量与写入文件容量值的对应关系表,判断聚合空间的空间容量占用值是否需要调整,若是,则执行S304,若否,则直接跳转执行S305。
在本发明实施例中,可预先构建聚合空间容量与写入文件容量值的对应关系表,不同写入文件值对应的聚合空间容量值不同,一般来说,某一个写入文件值范围可对应一个聚合空间容量值,对应关系表可根据实际经验进行确定,也可利用机器学习通过训练大量历史数据得到,本申请对此不作任何限定。
S304:根据对应关系表自动调整聚合空间的空间容量占用值。
在执行S304后,将待写入文件写入至聚合空间中,也即执行S305。
S305:在待写入文件进入写接口后先存储至聚合空间。
S306:判断聚合空间中是否存在时间戳超过预设时间阈值的目标存储数据,若是,则执行S307,若否,则执行S308。
考虑到如果待写入文件太大,需要多次写入聚合空间,最后一次写入聚合空间的数据量较小,聚合空间内还有大量可用空间容量,而短时间内没有需要写入的文件。为了避免这些文件无法导出,在用户调用数据过程中影响整个待写入文件的完整性和用户调用及时性。每个数据在写入聚合空间时,需要添加时间戳,并预设设置时间阈值,例如1h,若聚合空间中有超过1h的数据,那么便优先将这些数据写入至内存空间中,而不需要等到聚合空间写满。
S307:发送内存空间写缓存申请请求,以先将目标存储数据存储至内存空间。
S308:当检测到聚合空间的剩余空间容量占用值为0时,发送内存空间写缓存申请请求。
在申请内存空间后,执行聚合空间的数据写入内存空间操作,可实时判断聚合空间的写缓存是否结束,如果聚合空间的写缓存结束操作,释放聚合空间,以便后续文件数据写入。
本发明实施例与上述发明实施例相同的步骤或实现过程,可参阅上述实施例的描述,此处,便不再赘述。
由上可知,本发明实施例可动态调整聚合空间,降低了内存操作频率和系统资源开销,提高了写缓存效率,提升文件系统写性能,可适用于多种应用场景。
需要说明的是,本申请中各步骤之间没有严格的先后执行顺序,只要符合逻辑上的顺序,则这些步骤可以同时执行,也可按照某种预设顺序执行,图1和图3只是一种示意方式,并不代表只能是这样的执行顺序。
本发明实施例还针对Linux内核文件系统异步写缓存方法提供了相应的装置,进一步使得所述方法更具有实用性。其中,装置可从功能模块的角度和硬件的角度分别说明。下面对本发明实施例提供的Linux内核文件系统异步写缓存装置进行介绍,下文描述的Linux内核文件系统异步写缓存装置与上文描述的Linux内核文件系统异步写缓存方法可相互对应参照。
基于功能模块的角度,参见图4,图4为本发明实施例提供的Linux内核文件系统异步写缓存装置在一种具体实施方式下的结构图,该装置可包括:
判断模块401,用于判断当前待写入文件的文件条带的空间容量占用值是否小于聚合空间的空间容量占用值;聚合空间为预先在虚拟文件系统的buffer IO的写接口处定义的文件扩展属性。
聚合空间写模块402,用于若当前待写入文件的文件条带的空间容量占用值小于聚合空间的空间容量占用值,则在待写入文件进入写接口后先存储至聚合空间。
写内存模块403,用于若聚合空间的剩余空间容量占用值为0,则发送内存空间写缓存申请请求,以将聚合空间存储数据写入至内存空间。
可选的,在本实施例的一些实施方式中,请参阅图5,所述装置可以包括聚合空间动态调整模块404;
聚合空间动态调整模块404可用于获取当前待写入文件的空间容量占用值,并基于预先设置的聚合空间容量与写入文件容量值的对应关系表,自动调整聚合空间的空间容量占用值;或者
聚合空间动态调整模块404可用于当接收到用户调整空间占用容量的请求指令,将聚合空间的当前空间占用容量调整至请求指令中的目标空间容量占用值。
在本实施例的另一些实施方式中,所述装置还可以包括空间释放模块405,所述空间释放模块405可用于当聚合空间的写缓存结束,则释放所述聚合空间,以便后续文件数据写入。
作为一种可选的实施方式,所述写内存模块403可具体包括:
时间判断子模块,用于判断聚合空间中是否存在时间戳超过预设时间阈值的目标存储数据;
优先存储子模块,用于若聚合空间中存在时间戳超过预设时间阈值的目标存储数据,则发送内存空间写缓存申请请求,以先将目标存储数据存储至内存空间;
传统写存储模块,用于若聚合空间中不存在时间戳超过预设时间阈值的目标存储数据,当检测到聚合空间的剩余空间容量占用值为0时,发送内存空间写缓存申请请求。
此外,在另外一种可选的实施方式中,聚合空间写模块402还可为采用数据读取线程将待写入文件写入至第一聚合空间;当检测到采用数据写入线程将第一聚合空间的存储数据开始写入内存空间时,同时采用数据读取线程将后续待写入文件写入至第二聚合空间。
本发明实施例所述Linux内核文件系统异步写缓存装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例降低了内存操作频率和系统资源开销,提高了写缓存效率,提升文件系统写性能。
上文中提到的Linux内核文件系统异步写缓存装置是从功能模块的角度描述,进一步的,本申请还提供一种Linux内核文件系统异步写缓存装置,是从硬件角度描述。图6为本申请实施例提供的另一种Linux内核文件系统异步写缓存装置的结构图。如图6所示,该装置包括存储器60,用于存储计算机程序;
处理器61,用于执行计算机程序时实现如上述任一实施例提到的Linux内核文件系统异步写缓存方法的步骤。
其中,处理器61可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器61可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。在一些实施例中,处理器61可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器61还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器60可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器60还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器60至少用于存储以下计算机程序601,其中,该计算机程序被处理器61加载并执行之后,能够实现前述任一实施例公开的Linux内核文件系统异步写缓存方法的相关步骤。另外,存储器60所存储的资源还可以包括操作系统602和数据603等,存储方式可以是短暂存储或者永久存储。其中,操作系统602可以包括Windows、Unix、Linux等。数据603可以包括但不限于测试结果对应的数据等。
在一些实施例中,Linux内核文件系统异步写缓存装置还可包括有显示屏62、输入输出接口63、通信接口64、电源65以及通信总线66。
本领域技术人员可以理解,图6中示出的结构并不构成对Linux内核文件系统异步写缓存装置的限定,可以包括比图示更多或更少的组件,例如还可包括传感器67。
本发明实施例所述Linux内核文件系统异步写缓存装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例降低了内存操作频率和系统资源开销,提高了写缓存效率,提升文件系统写性能。
可以理解的是,如果上述实施例中的Linux内核文件系统异步写缓存方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。
基于此,本发明实施例还提供了一种计算机可读存储介质,存储有Linux内核文件系统异步写缓存程序,所述Linux内核文件系统异步写缓存程序被处理器执行时如上任意一实施例所述Linux内核文件系统异步写缓存方法的步骤。
本发明实施例所述计算机可读存储介质的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例降低了内存操作频率和系统资源开销,提高了写缓存效率,提升文件系统写性能。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上对本申请所提供的一种Linux内核文件系统异步写缓存方法、装置及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (10)
1.一种Linux内核文件系统异步写缓存方法,其特征在于,包括:
判断当前待写入文件的文件条带的空间容量占用值是否小于聚合空间的空间容量占用值;所述聚合空间为预先在虚拟文件系统的buffer IO的写接口处定义的文件扩展属性;
若是,则在所述待写入文件进入所述写接口后先存储至所述聚合空间;
若所述聚合空间的剩余空间容量占用值为0,则发送内存空间写缓存申请请求,以将所述聚合空间存储数据写入至所述内存空间。
2.根据权利要求1所述的Linux内核文件系统异步写缓存方法,其特征在于,所述判断当前待写入文件的文件条带的空间容量占用值是否小于聚合空间的空间容量占用值之后,还包括:
获取所述当前待写入文件的空间容量占用值;
基于预先设置的聚合空间容量与写入文件容量值的对应关系表,自动调整所述聚合空间的空间容量占用值。
3.根据权利要求1所述的Linux内核文件系统异步写缓存方法,其特征在于,所述判断当前待写入文件的文件条带的空间容量占用值是否小于聚合空间的空间容量占用值之前,还包括:
当接收到用户调整空间占用容量的请求指令,将所述聚合空间的当前空间占用容量调整至所述请求指令中的目标空间容量占用值。
4.根据权利要求3所述的Linux内核文件系统异步写缓存方法,其特征在于,所述发送内存空间写缓存申请请求之后,还包括:
判断所述聚合空间的写缓存是否结束;
若是,则释放所述聚合空间,以便后续文件数据写入。
5.根据权利要求1至4任意一项所述的Linux内核文件系统异步写缓存方法,其特征在于,所述若所述聚合空间的剩余空间容量占用值为0,则发送内存空间写缓存申请请求包括:
判断所述聚合空间中是否存在时间戳超过预设时间阈值的目标存储数据;
若是,则发送内存空间写缓存申请请求,以优先将所述目标存储数据存储至所述内存空间;
若否,则当检测到所述聚合空间的剩余空间容量占用值为0时,发送内存空间写缓存申请请求。
6.根据权利要求1至4任意一项所述的Linux内核文件系统异步写缓存方法,其特征在于,所述聚合空间包括第一聚合空间和第二聚合空间;所述在所述待写入文件进入所述写接口后先存储至所述聚合空间为:
采用数据读取线程将所述待写入文件写入至所述第一聚合空间;
当检测到采用数据写入线程将所述第一聚合空间的存储数据开始写入所述内存空间时,同时采用所述数据读取线程将后续待写入文件写入至所述第二聚合空间。
7.一种Linux内核文件系统异步写缓存装置,其特征在于,包括:
判断模块,用于判断当前待写入文件的文件条带的空间容量占用值是否小于聚合空间的空间容量占用值;所述聚合空间为预先在虚拟文件系统的buffer IO的写接口处定义的文件扩展属性;
聚合空间写模块,用于若所述当前待写入文件的文件条带的空间容量占用值小于聚合空间的空间容量占用值,则在所述待写入文件进入所述写接口后先存储至所述聚合空间;
写内存模块,用于若所述聚合空间的剩余空间容量占用值为0,则发送内存空间写缓存申请请求,以将所述聚合空间存储数据写入至所述内存空间。
8.根据权利要求7所述的Linux内核文件系统异步写缓存装置,其特征在于,还包括聚合空间动态调整模块;
所述聚合空间动态调整模块用于获取所述当前待写入文件的空间容量占用值,并基于预先设置的聚合空间容量与写入文件容量值的对应关系表,自动调整所述聚合空间的空间容量占用值;或者
所述聚合空间动态调整模块用于当接收到用户调整空间占用容量的请求指令,将所述聚合空间的当前空间占用容量调整至所述请求指令中的目标空间容量占用值。
9.一种Linux内核文件系统异步写缓存装置,其特征在于,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至6任一项所述Linux内核文件系统异步写缓存方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有Linux内核文件系统异步写缓存程序,所述Linux内核文件系统异步写缓存程序被处理器执行时实现如权利要求1至6任一项所述Linux内核文件系统异步写缓存方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911398160.5A CN111159124B (zh) | 2019-12-30 | 2019-12-30 | Linux内核文件系统异步写缓存方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911398160.5A CN111159124B (zh) | 2019-12-30 | 2019-12-30 | Linux内核文件系统异步写缓存方法、装置及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111159124A CN111159124A (zh) | 2020-05-15 |
CN111159124B true CN111159124B (zh) | 2022-04-22 |
Family
ID=70559289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911398160.5A Active CN111159124B (zh) | 2019-12-30 | 2019-12-30 | Linux内核文件系统异步写缓存方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111159124B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114780042B (zh) * | 2022-05-06 | 2023-07-28 | 安超云软件有限公司 | 提升nas存储性能的方法及装置、电子设备和存储介质 |
CN115098454A (zh) * | 2022-07-26 | 2022-09-23 | 北京天融信网络安全技术有限公司 | 一种数据处理方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011064742A1 (en) * | 2009-11-25 | 2011-06-03 | Geniedb Limited | Super-records |
CN105426127A (zh) * | 2015-11-13 | 2016-03-23 | 浪潮(北京)电子信息产业有限公司 | 一种分布式集群系统的文件存储方法及装置 |
CN106406981A (zh) * | 2016-09-18 | 2017-02-15 | 深圳市深信服电子科技有限公司 | 一种读、写磁盘数据的方法及虚拟机监视器 |
CN109376100A (zh) * | 2018-11-05 | 2019-02-22 | 浪潮电子信息产业股份有限公司 | 一种缓存写入方法、装置、设备及可读存储介质 |
CN109753446A (zh) * | 2019-01-02 | 2019-05-14 | 郑州云海信息技术有限公司 | 一种存储系统下刷缓存数据的方法 |
-
2019
- 2019-12-30 CN CN201911398160.5A patent/CN111159124B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011064742A1 (en) * | 2009-11-25 | 2011-06-03 | Geniedb Limited | Super-records |
CN105426127A (zh) * | 2015-11-13 | 2016-03-23 | 浪潮(北京)电子信息产业有限公司 | 一种分布式集群系统的文件存储方法及装置 |
CN106406981A (zh) * | 2016-09-18 | 2017-02-15 | 深圳市深信服电子科技有限公司 | 一种读、写磁盘数据的方法及虚拟机监视器 |
CN109376100A (zh) * | 2018-11-05 | 2019-02-22 | 浪潮电子信息产业股份有限公司 | 一种缓存写入方法、装置、设备及可读存储介质 |
CN109753446A (zh) * | 2019-01-02 | 2019-05-14 | 郑州云海信息技术有限公司 | 一种存储系统下刷缓存数据的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111159124A (zh) | 2020-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112363763B (zh) | 数据处理方法、装置及计算机可读存储介质 | |
CN111984610A (zh) | 数据压缩方法、装置及计算机可读存储介质 | |
CN111143272A (zh) | 异构计算平台的数据处理方法、装置及可读存储介质 | |
CN111159124B (zh) | Linux内核文件系统异步写缓存方法、装置及介质 | |
CN113704301B (zh) | 异构计算平台的数据处理方法、装置、系统、设备及介质 | |
CN110750312A (zh) | 硬件资源配置方法、装置、云侧设备和存储介质 | |
CN112100090A (zh) | 数据访问请求处理方法、装置、介质及内存映射控制器 | |
CN112473144A (zh) | 游戏资源数据的处理方法及装置 | |
CN116680060B (zh) | 面向异构计算系统的任务分配方法、装置、设备和介质 | |
CN111625546A (zh) | 一种数据写入方法、装置、设备、介质 | |
CN111858038A (zh) | Fpga板卡内存数据的读取方法、装置及介质 | |
CN110750359A (zh) | 硬件资源配置方法、装置、云侧设备和存储介质 | |
CN111124282A (zh) | 一种对象存储系统中的存储方法、存储装置及存储设备 | |
US20170018052A1 (en) | Method and Apparatus for Data Communication in Virtualized Environment, and Processor | |
CN109521970A (zh) | 一种数据处理方法及相关设备 | |
CN109039944B (zh) | 一种数据包的分流方法、装置及设备 | |
CN111966301B (zh) | 分布式对象存储系统的迁移速度控制方法、装置及介质 | |
CN106782668B (zh) | 一种测试内存读写极限速度的方法及装置 | |
CN110378037B (zh) | 基于Ceph的CFD仿真数据存储方法、装置及服务器 | |
CN112269535A (zh) | 存储系统的空间资源分配方法、装置及可读存储介质 | |
CN112748880A (zh) | 存储系统中的io通道均衡控制方法、装置及可读存储介质 | |
CN112162696A (zh) | 自精简卷头部容量分配方法、装置及计算机可读存储介质 | |
CN112416826A (zh) | 专用计算芯片、dma数据传输系统及方法 | |
CN112269538B (zh) | 一种数据读取方法、装置、设备及介质 | |
CN111625192B (zh) | 一种元数据对象访问方法、装置、设备以及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |