本发明涉及计算机,特别涉及一种缓存管理方法、装置、设备及介质。
背景技术:
1、当前,现有的ssd(solid state drives)固态硬盘在设计中,数据的下刷通常以mpwl(multi-plane wordline)(即一个后端写单元)为单位进行,数据的读取以nvml(non-volatile memory location)为单位,对于所述缓存数据量大的大io(input/output))请求,若其落盘分布在多个nvml,则读写性能必然会有影响。
2、综上所述,如何提高缓存中的数据读写性能是当前亟待解决的问题。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种缓存管理方法、装置、设备及介质,能够提高缓存中的数据读写性能,其具体方案如下:
2、第一方面,本申请公开了一种缓存管理方法,包括:
3、在当前缓存模式下为主机发送的目标请求分配缓存得到已分配缓存;
4、若所述目标请求为写请求,则将所述写请求对应的写数据存放至所述已分配缓存,并记录所述已分配缓存的缓存分配顺序;
5、在所述已分配缓存中的脏数据达到预设阈值时,按照所述缓存分配顺序下刷所述脏数据。
6、可选的,所述当前缓存模式为从总缓存中,以第一数据量为单位为每个第一请求分配缓存的第一缓存模式,或,以第二数据量为单位为每个第二请求分配缓存的第二缓存模式,或,以第一数据量为单位为每个所述第一请求分配缓存和以第二数据量为单位为每个所述第二请求分配缓存的第三缓存模式;所述第一请求为所需缓存小于预设缓存数据量的请求;所述第二请求为所需缓存不小于所述预设缓存数据量的请求。
7、可选的,所述若所述目标请求为写请求,则将所述写请求对应的写数据存放至所述已分配缓存,并记录所述已分配缓存的缓存分配顺序,包括:
8、若所述目标请求为写请求且所述当前缓存模式为所述第一缓存模式或所述第二缓存模式,则将所述写请求对应的写数据存放至所述已分配缓存,并直接将所述已分配缓存的第一缓存分配顺序记录至缓存池中;
9、若所述目标请求为写请求且所述当前缓存模式为所述第三缓存模式,则将所述写请求对应的写数据存放至所述已分配缓存,然后将所述写请求中的所述第一请求对应的第二缓存分配顺序记录至所述缓存池中的第一部分,并将所述写请求中的所述第二请求对应的第三缓存分配顺序记录至所述缓存池中的第二部分。
10、可选的,所述按照所述缓存分配顺序下刷所述脏数据,包括:
11、若所述目标请求为写请求且所述当前缓存模式为所述第一缓存模式或所述第二缓存模式,则基于所述缓存池记录的所述第一缓存分配顺序依次下刷所述写请求对应的所述已分配缓存中的脏数据;
12、若所述目标请求为写请求且所述当前缓存模式为所述第三缓存模式,则基于所述第一部分记录的所述第二缓存分配顺序依次下刷所述第一请求对应的所述已分配缓存中的脏数据,并基于所述第二部分记录的所述第三缓存分配顺序依次下刷所述第二请求对应的所述已分配缓存中的脏数据。
13、可选的,所述缓存管理方法,还包括:
14、若所述当前缓存模式为所述第一缓存模式或所述第二缓存模式,则基于所述当前缓存模式以及实时统计的所述当前缓存模式下所述第一请求对应的第一所需缓存和所述第二请求对应的第二所需缓存,实时确定下一缓存模式;
15、若所述下一缓存模式与所述当前缓存模式一致,则继续利用当前缓存模式,若所述下一缓存模式与所述当前缓存模式不一致,则利用所述下一缓存模式替换所述当前缓存模式。
16、可选的,所述缓存管理方法,还包括:
17、若所述当前缓存模式为所述第三缓存模式,则基于所述当前缓存模式以及实时统计的所述当前缓存模式下预设时间内所述第一请求对应的第一所需缓存和所述第二请求对应的第二所需缓存,实时确定下一缓存模式;
18、若所述下一缓存模式与所述当前缓存模式一致,则继续利用当前缓存模式,若所述下一缓存模式与所述当前缓存模式不一致,则利用所述下一缓存模式替换所述当前缓存模式。
19、可选的,所述若所述下一缓存模式与所述当前缓存模式不一致,则利用所述下一缓存模式替换所述当前缓存模式,包括:
20、若所述下一缓存模式与所述当前缓存模式不一致,则根据记录的所述缓存分配顺序下刷所述当前缓存模式下所述写请求对应的所述已分配缓存中的脏数据,并将所述当前缓存模式下的所述第一所需缓存和第二所需缓存清零,然后利用所述下一缓存模式替换所述当前缓存模式。
21、第二方面,本申请公开了一种缓存管理装置,包括:
22、缓存分配模块,用于在当前缓存模式下为主机发送的目标请求分配缓存得到已分配缓存;
23、存放及记录模块,用于若所述目标请求为写请求,则将所述写请求对应的写数据存放至所述已分配缓存,并记录所述已分配缓存的缓存分配顺序;
24、下刷模块,用于在所述已分配缓存中的脏数据达到预设阈值时,按照所述缓存分配顺序下刷所述脏数据。
25、第三方面,本申请公开了一种电子设备,包括:
26、存储器,用于保存计算机程序;
27、处理器,用于执行所述计算机程序,以实现前述公开的缓存管理方法。
28、第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的缓存管理方法。
29、可见,本申请在当前缓存模式下为主机发送的目标请求分配缓存得到已分配缓存;若所述目标请求为写请求,则将所述写请求对应的写数据存放至所述已分配缓存,并记录所述已分配缓存的缓存分配顺序;在所述已分配缓存中的脏数据达到预设阈值时,按照所述缓存分配顺序下刷所述脏数据。由此可见,在所述写请求对应的所述已分配缓存中的脏数据达到预设阈值时下刷数据,使得已分配缓存得到空闲有利于后续的写请求的处理;另外,本申请按照所述缓存分配顺序下刷所述写请求对应的所述已分配缓存中的脏数据,使得同一请求的数据集中下刷落盘,有利于后续读请求的处理;综上本申请有利于提高缓存的数据读写性能。
1.一种缓存管理方法,其特征在于,包括:
2.根据权利要求1所述的缓存管理方法,其特征在于,所述当前缓存模式为从总缓存中,以第一数据量为单位为每个第一请求分配缓存的第一缓存模式,或,以第二数据量为单位为每个第二请求分配缓存的第二缓存模式,或,以第一数据量为单位为每个所述第一请求分配缓存和以第二数据量为单位为每个所述第二请求分配缓存的第三缓存模式;所述第一请求为所需缓存小于预设缓存数据量的请求;所述第二请求为所需缓存不小于所述预设缓存数据量的请求。
3.根据权利要求2所述的缓存管理方法,其特征在于,所述若所述目标请求为写请求,则将所述写请求对应的写数据存放至所述已分配缓存,并记录所述已分配缓存的缓存分配顺序,包括:
4.根据权利要求3所述的缓存管理方法,其特征在于,所述按照所述缓存分配顺序下刷所述脏数据,包括:
5.根据权利要求2所述的缓存管理方法,其特征在于,还包括:
6.根据权利要求2所述的缓存管理方法,其特征在于,还包括:
7.根据权利要求5或6所述的缓存管理方法,其特征在于,所述若所述下一缓存模式与所述当前缓存模式不一致,则利用所述下一缓存模式替换所述当前缓存模式,包括:
8.一种缓存管理装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的缓存管理方法。