CN109684236A - 一种数据写缓存控制方法、装置、电子设备和存储介质 - Google Patents

一种数据写缓存控制方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN109684236A
CN109684236A CN201811593599.9A CN201811593599A CN109684236A CN 109684236 A CN109684236 A CN 109684236A CN 201811593599 A CN201811593599 A CN 201811593599A CN 109684236 A CN109684236 A CN 109684236A
Authority
CN
China
Prior art keywords
write
data
type
writing
cache
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.)
Pending
Application number
CN201811593599.9A
Other languages
English (en)
Inventor
施培任
杨善松
张璐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Inspur Smart Computing Technology Co Ltd
Original Assignee
Guangdong Inspur Big Data Research Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong Inspur Big Data Research Co Ltd filed Critical Guangdong Inspur Big Data Research Co Ltd
Priority to CN201811593599.9A priority Critical patent/CN109684236A/zh
Publication of CN109684236A publication Critical patent/CN109684236A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请提供一种数据写缓存控制方法,包括:接收写请求指令;确定所述写请求指令的写类型;其中,所述写类型为随机写或顺序写;根据所述写类型将所述写请求指令对应的写数据写入缓存存储模块中。可见,本申请通过确定所述写请求指令的写类型来区分随机写和顺序写,进而实现对数据写缓存的控制,避免了相关技术中按照逻辑单元的逻辑地址顺序刷写,进而当需要刷写清空缓存时清空效率的问题,能够减小整体性能波动,提高清空写缓存效率。本申请同时还提供了一种数据写缓存控制装置、电子设备和计算机可读存储介质,均具有上述有益效果。

Description

一种数据写缓存控制方法、装置、电子设备和存储介质
技术领域
本申请涉及缓存技术领域,特别涉及一种数据写缓存控制方法、数据写缓存控制装置、电子设备和计算机可读存储介质。
背景技术
在计算机存储区域网络(SAN,Storage Area Network)类型的存储系统中,为了提高数据读写性能往往提供了数据缓存功能,即把主机的写请求数据存放到DRAM介质的缓存后即应答主机完成写请求,在处理读请求时若请求的数据不在缓存中则从后端介质读出后存放到缓存中并应答给主机,若请求的数据在缓存中则从缓存中获取应答给主机。
存放在缓存中的写入的数据称为写缓存,写缓存异步地刷写到后端磁盘介质上,这样可以合并顺序写数据提高性能,也可以对随机写做缓存和排序后提高刷写性能。写缓存在没有刷写到后端磁盘介质前也称为脏缓存。
一般SAN存储系统是基于逻辑单元(LU,Logical Unit)进行缓存管理,传统的缓存管理方法是固定总体的写缓存比率或者数量,刷写缓存的方法是按照逻辑单元的逻辑地址顺序刷写,易造成性能波动性不可控,当需要尽快刷写清空写缓存时清空效率低。
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
发明内容
本申请的目的是提供一种数据写缓存控制方法、数据写缓存控制装置、电子设备和计算机可读存储介质,能够减小整体性能的波动,提高清空写缓存效率。其具体方案如下:
本申请提供一种数据写缓存控制方法,包括:
接收写请求指令;
确定所述写请求指令的写类型;其中,所述写类型为随机写或顺序写;
根据所述写类型将所述写请求指令对应的写数据写入缓存存储模块中。
优选地,确定所述写请求指令的写类型,包括:
判断所述写数据的长度是否大于预设阈值;
若大于所述预设阈值,则所述写类型为所述顺序写;
若小于所述预设阈值,则查询顺序写缓存信息库中是否存在重叠或相邻的数据信息;若存在,则所述写类型为顺序写。
优选地,根据所述写类型将所述写请求指令对应的写数据写入缓存存储模块中之后,还包括:
从与所述写类型对应的缓存信息库中获取预设信息;
将与所述预设信息对应的数据刷写入磁盘介质,并将所述缓存信息库中的所述预设信息删除。
优选地,根据所述写类型将所述写请求指令对应的写数据写入缓存存储模块中,包括:
在当前负载特征下确定最优刷写粒度;
采用所述最优刷写粒度根据所述写类型将所述写数据写入所述缓存存储模块中。
优选地,接收写请求指令之前,还包括:
设置所述缓存存储模块中所述随机写的存储容量与所述顺序写的存储容量的比例。
本申请提供一种数据写缓存控制装置,包括:
接收模块,用于接收写请求指令;
确定模块,用于确定所述写请求指令的写类型;其中,所述写类型为随机写或顺序写;
写入模块,用于根据所述写类型将所述写请求指令对应的写数据写入缓存存储模块中。
优选地,所述确定模块包括:
判断单元,用于判断判断所述写数据的长度是否大于预设阈值;
确定单元,用于若大于所述预设阈值,则所述写类型为所述顺序写;若小于所述预设阈值,则查询顺序写缓存信息库中是否存在重叠或相邻的数据信息,若存在,则所述写类型为顺序写。
优选地,还包括:
获取模块,用于从与所述写类型对应的缓存信息库中获取预设信息;
删除模块,用于将与所述预设信息对应的数据刷写入磁盘介质,并将所述缓存信息库中的所述预设信息删除。
本申请提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述数据写缓存控制方法的步骤。
本申请提供种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述数据写缓存控制方法的步骤。
本申请提供一种数据写缓存控制方法,包括:接收写请求指令;确定所述写请求指令的写类型;其中,所述写类型为随机写或顺序写;根据所述写类型将所述写请求指令对应的写数据写入缓存存储模块中。
可见,本申请通过确定所述写请求指令的写类型来区分随机写和顺序写,进而实现对数据写缓存的控制,避免了相关技术中按照逻辑单元的逻辑地址顺序刷写,进而当需要刷写清空缓存时清空效率的问题,能够减小整体性能波动,提高清空写缓存效率,改善用户体验。本申请同时还提供了一种数据写缓存控制装置、电子设备和计算机可读存储介质,均具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种数据写缓存控制方法的流程图;
图2为本申请实施例所提供的另一种数据写缓存控制方法的流程图;
图3为本申请实施例所提供的另一种数据写缓存控制方法的流程图;
图4为本申请实施例所提供的另一种数据写缓存控制方法的流程图;
图5为本申请实施例提供的一种数据写缓存控制装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在常见的缓存管理方法是固定总体的写缓存比率或者数量,刷写缓存的方法是按照逻辑单元的逻辑地址顺序刷写,刷写性能波动性以及无法保证缓存刷写清空速度。基于上述技术问题,本实施例提供一种数据写缓存控制方法,确定所述写请求指令的写类型来区分随机写和顺序写,进而实现对数据写缓存的控制,避免了相关技术中按照逻辑单元的逻辑地址顺序刷写,进而当需要刷写清空缓存时清空效率的问题,能够减小整体性能波动,提高清空写缓存效率,改善用户体验。具体请参考图1,图1为本申请实施例所提供的一种数据写缓存控制方法的流程图,具体包括:
S101、接收写请求指令。
本步骤的目的是接收到写请求指令,以便根据写请求指令进行操作。本实施例不对接收的方式进行限定,用户可根据实际需求进行设置,只要能够满足本实施例的目的即可。本实施例不对写请求指令对应的写数据大小进行限定,用户可根据实际需求设置。
进一步地,在接受写请求指令前,设置缓存存储模块中随机写的存储容量与顺序写的存储容量的比例。
对于大量随机写的场景,写缓存达到一定数量后写性能提高不明显,因为硬盘写延迟包括数据传输时间、寻道时间、磁道内旋转定位扇区和写入数据时间,较大的缓存理论上虽然可以减小磁头移动距离和时间,但实际上磁头移动定位的时间更多的在于稳定时间、磁道内旋转定位时间,同时一般系统的最大写缓存量相比磁盘介质总容量比例很小,在一定范围内变化对改变寻道距离影响不明显,并且系统同时处理读请求也会对磁头位置和刷写缓存造成干扰。另一方面,随机写缓存过多,会造成当需要清空缓存时刷写时间变长,例如当发生单控运行,或者双控运行但部分或全部BBU(Battery Backup Unit,电池备援单元)失效时需要尽快将缓存刷入磁盘上转成写透(write through)模式以保证数据安全,若随机写缓存过大,则刷入时间很久,无掉电保护的风险窗口加大。以单盘200 IOPS计算,10块盘写入速度为10×200×4KB=8MB/s,则刷入10GB需要1280秒,如果是RAID5,由于条带读改写造成的写放大,则时间进一步增大2倍达到1小时以上。为了降低清缓存时刷写时间,在接受写请求指令前,设置缓存存储模块中随机写的存储容量与顺序写的存储容量的比例,能够动态设置随机写缓存量或比例来调节性能与清空缓存速度。
具体的,设置缓存存储模块中随机写的存储容量与顺序写的存储容量的比例的方法为:以随机写的存储容量为例,当随机写的存储容量增大时顺序写的存储容量减小;当随机写的存储容量减小时顺序写的存储容量增大。增大随机写的缓存容量的方法只需要增大随机写的缓存量即数据的长度的预设阈值,当处理写请求时根据步骤,判断当前随机写的缓存量低于预设阈值时,立即从空闲缓存分配写缓存、接收写数据通过缓存存储模块加入到写缓存中,从而增大随机写的存储容量。减小随机写的存储容量的方法是:(1)修改随机写的缓存量的预设阈值为新的阈值;(2)开始刷写随机写缓存,并统计刷写的性能,包括IOPS((Input/Output Operations Per Second,每秒进行读写操作的次数)、KBPS(带宽,每秒读/写千字节数,单位1024Byte)、平均延时、平均块大小,以及统计随机写缓存减小的速度(单位KBPS);(3)开始统计主机或上层应用写入的随机写的次数、数据量、处理时间(延迟),每隔设定周期例如1秒计算写入的IOPS、KBPS、平均延时、平均块大小;(4)对于一个新的随机写请求,当完成写入缓存后,进行延迟等待一段时间即Adjusting_Delay再应答主机或上层应用,Adjusting_Delay的计算方法为:Adjusting_Delay=本次写请求大小/(期望写入带宽),期望写入带宽=随机缓存刷写带宽×预设百分比,也就是通过延迟Adjusting_Delay达到控制在调整随机写缓存量的过程中随机写的带宽是刷写带宽的预设某个百分比。每个写请求进行延时只是示例的最小粒度,该算法可进一步地调整为应答多个写请求后进行一次总的延时,延时的计算方法为:Adjusting_Delay=(多次写请求大小/期望写入带宽-自该批写请求的第一个请求应答以来的时间)。进一步的,上述方法可能存在误差,因为IO延迟还包括传输延时和处理延时等,在实现时可根据上个周期调节后的实际写入带宽对计算的Adjusting_Delay做增大或减小,从而使实际写入带宽趋近期望写入带宽,本实施例不再进行赘述,实现动态设置随机小块写缓存量或比例来调节性能与清空缓存速度。
上述调整随机写缓存量的方法同样适用于调整顺序写缓存量。当然也可以使用其他的手段,只要满足本实施例的目的即可,本实施例不再进行限定。
通过上述技术手段,通过设置缓存存储模块中随机写的存储容量与顺序写的存储容量的比例能够动态设置随机写缓存量或比例来调节性能与清空缓存速度。
进一步的,可以通过设置清空缓存时间来满足用户的实际需求,提高客户体验。具体的可以是:(1)设置清空缓存的时间Total_Flush_Time和随机缓存刷写时间Rand_Flush_Time。(2)统计当前随机写缓存和顺序写缓存的刷写性能,包括IOPS,KBPS,根据刷写性能计算Total_Flush_Time时长的刷写数据量:Threshold_Rand=Rand_Flush_Time×KBPS_Rand;Threshold_Seq=(Total_Flush_Time–Rand_Flush_Time)×KBPS_Seq;其中,KBPS_Rand和KBPS_Seq分别为随机缓存刷写带宽和顺序缓存刷写带宽;Threshold_Rand和Threshold_Seq分别为随机写的缓存量的预设阈值和顺序写的缓存量的预设阈值。(3)动态调整随机写的缓存量为Threshold_Rand,调整顺序写的缓存量为Threshold_Seq。(4)调整完后根据调整后的随机写缓存和顺序写缓存的刷写性能计算刷写时间,若结果与Total_Flush_Time偏差超过阈值,重复步骤2到4直到偏差小于阈值。
值得注意的是,由于系统负载特征可能动态变化,包括随机、顺序比例、块大小,为了保证在极端情况下的缓存刷写时间,持续识别统计系统不同负载特征下的刷写性能,按照读比例<10%下,随机写比例最高时的性能值作为计算参数。
S102、确定所述写请求指令的写类型;其中,写类型为随机写或顺序写。
本步骤的目的是区分写数据以便能够获得最有的刷写类型,确定是随机写还是顺序写。由于存在随机写的逻辑区域时,持续刷写该逻辑区域时性能低、延迟大,甚至影响到前端主机读写性能和延迟,使整体性能不均衡;当存在随机写比率高的时段,随机写可能占用大量甚至全部写缓存,之后发生主机顺序写时,需要等待刷写回收小块写缓存,而刷写性能低,造成缓存回收慢和顺序写性能下降。当随机小块写缓存量大时发生单控运行或双控发生BBU失效需要刷写清空缓存时刷写时间长,无冗余掉电保护时间风险窗口长。因此区分写请求的类型可以有效的改善刷写挺能,提高写效率。
S103、根据写类型将写请求指令对应的写数据写入缓存存储模块中。
根据写类型将写请求指令对应的上层模块或者主机发送的写数据保存到写请求中的空闲缓存中,此时完成了将写数据写入缓存存储模块中。记录随机小块写缓存和顺序大块写缓存信息,分别限制随机小块写缓存量和顺序大块写缓存量。具体的,若写类型是随机写,则根据随机写将写请求指令对应的写数据写入缓存存储模块中;若写类型是顺序写,则根据顺序写将写请求指令对应的写数据写入缓存存储模块中。本步骤的目的是根据写类型将写请求指令对应的写数据写入缓存存储模块中,以便能够在清空缓存时提高清空效率。当需要刷写清空缓存时,由于区分随机写和顺序写即控制了随机写缓存量,在需要清空写缓存时,刷写时间短,提高刷写效率。
基于上述技术方案,本实施例通过确定所述写请求指令的写类型来区分随机写和顺序写,进而实现对数据写缓存的控制,避免了相关技术中按照逻辑单元的逻辑地址顺序刷写,进而当需要刷写清空缓存时清空效率的问题,能够减小整体性能波动,提高清空写缓存效率,改善用户体验。
基于上述实施例,本实施例提供另一种数据写缓存控制方法,具体确定顺序写和随机写的方法,以便能对数据进行合并处理,减轻系统运行压力;具体请参考图2,图2为本申请实施例所提供的另一种数据写缓存控制方法的流程图,包括:
S201、接收写请求指令。
具体请参考上述实施例,本实施例不再进行阐述。
S202、判断写数据的长度是否大于预设阈值。
本实施例不对预设阈值进行限定,用户可根据实际需求进行设置,只要满足本实施例的目的即可。预设阈值值得是随机缓存长度阈值,例如32KB等。
S204、确定写类型为顺序写。
在步骤S202后,若大于预设阈值;则执行步骤S204确定写类型为顺序写。
S203、查询顺序写缓存信息库中是否存在重叠或相邻的数据信息。
在步骤S202后,若小于预设阈值;则执行步骤S203查询顺序写缓存信息库中是否存在重叠或相邻的数据信息。
具体的,缓存分类模块负责写缓存随机写和顺序写等的及等信息记录、查询功能。缓存分类模块用两个信息库保存脏缓存信息,一个是随机写缓存信息库,另一个是顺序写缓存信息库。随机写缓存信息库和顺序写缓存信息库可使用合适的数据结构实现,包括但不限于红黑树、区间树、B树,主要提供以下功能:(1)根据逻辑单元ID、数据段逻辑地址和长度,查询信息库中存在重叠的所有数据段的逻辑地址、长度;(2)将指定逻辑单元ID、数据段逻辑地址和长度与信息库中存在重叠的所有数据段合并,并更新到信息库中;(3)根据逻辑单元ID、数据段逻辑地址和长度,从信息库中删除该数据段;(4)记录和查询该信息库中数据段数量、总数据量。
本步骤的目的是查询顺序写缓存库中是否存在重叠或相邻的数据信息,例如,数据段逻辑起始地址是1,长度是3,查询数据库中存在起始地址是1长度是2的数据信息时,表明数据重叠;查询数据库中存在起始地址是4时,表明数据相邻。
S205、确定写类型为随机写。
在步骤S203后,若没有查询到在顺序写缓存信息库中存在重叠和相邻的数据信息,则执行步骤S205确定写类型为随机写。
S206、确定写类型为顺序写。
在步骤S203后,若查询到在顺序写缓存信息库中存在重叠和相邻的数据信息,则执行步骤S206确定写类型为顺序写。
S207、根据写类型将写请求指令对应的写数据写入缓存存储模块中。
根据步骤S201、步骤S205和步骤S206确定的写类型,将写请求指令对应的写数据写入缓存存储模块中。并且,根据写请求的逻辑单元ID、起始逻辑地址和长度,查找随机写缓存信息库中重叠的缓存数据段,计算新的写缓存与现有脏缓存合并后的缓存地址和长度,若合并后的缓存长度大于预设阈值,则判定为顺序缓存,则从随机写缓存信息库中删除重叠的数据段,向顺序写缓存信息库写入合并后的数据段。否则判定为随机写缓存,向随机写缓存信息库添加该写请求的数据段,并与已有的脏缓存数据段合并;将写请求对应的写数据存储到缓存存储模块。
进一步的,步骤S207之前,若前一步骤判断写类型为随机写,则查询随机写缓存信息库中缓存量是否超过设定的随机写缓存阈值,若超过则触发随机脏缓存刷写并等待直到低于阈值随机写缓存阈值再分配空闲缓存。若判断为顺序写则查询顺序写缓存信息库中缓存量是否超过顺序写缓存阈值,若超过则触发并等待顺序脏缓存刷写直到低于顺序写缓存阈值,再分配空闲缓存。
基于上述技术方案,本实施例通过确定所述写请求指令的写类型来区分随机写和顺序写,进而实现对数据写缓存的控制,避免了相关技术中按照逻辑单元的逻辑地址顺序刷写,进而当需要刷写清空缓存时清空效率的问题,能够减小整体性能波动;能够对数据进行合并处理,降低在系统运行压力,提高清空写缓存效率,改善用户体验。
基于上述实施例,本实施例提供一种数据写缓存控制方法,通过将预设信息对应的数据刷写如磁盘介质,之后对缓存信息库进行更新,以便简化操作便于管理。具体请参考图3,图3为本申请实施例所提供的另一种数据写缓存控制方法的流程图,包括:
S301、接收写请求指令。
S302、确定所述写请求指令的写类型;其中,写类型为随机写或顺序写。
S303、根据写类型将写请求指令对应的写数据写入缓存存储模块中。
具体的请参考上述实施例,本实施例不再进行赘述。
S304、从与写类型对应的缓存信息库中获取预设信息。
本步骤的目的是从写类型对应的缓存信息库中即顺序写缓存信息库和随机写缓存信息库中获取需要的预设信息;其中,预设信息可根据实际需求进行选定。
S305、将与预设信息对应的数据刷写入磁盘介质,并将缓存信息库中的预设信息删除。
从缓存存储模块中将与预设信息对应的数据刷写到磁盘介质中,此时缓存存储模块中对应的数据完成了转移,缓存存储模块获得了对应的缓存空间,将缓存信息库中预设缓存数据信息删除,其中,缓存信息库指的是与当前写入磁盘介质的数据对应的缓存信息库,若写类型对应的是顺序写,则缓存信息库是顺序写缓存信息库;若写类型对应的是随机写,则缓存信息库对应的是随机写缓存信息库。将缓存信息库中预设缓存数据信息删除的目的是为了及时更新缓存信息库,以便能够实际对写缓存进行管理,提高管理效率。
一个系统中写缓存所使用的内存量是有限的,当写缓存达到一定阈值时要刷写到后端磁盘介质上以回收内存。本实施例可以通过两个缓存信息库来识别和记录随机写缓存和顺序写缓存,根据两类写缓存的限制总量和已缓存量识别和触发两类缓存的刷写。一种最简单的方法是当已缓存量超过限制总量的设定比例则进行刷写。脏缓存刷写的流程:(1)从随机写缓存信息库中查询获取N个缓存数据段信息;(2)缓存存储模块将N个脏缓存数据段刷写到后端磁盘介质;(3)从顺序写缓存信息库中查询获取M个缓存数据段信息;(4)缓存存储模块将M个脏缓存数据段刷写到后端磁盘介质;(5)循环步骤(1)直到随机写缓存信息库和顺序写缓存信息库中缓存量低于随机写缓存阈值和顺序写缓存阈值;(6)缓存数据段刷写到后端磁盘介质的后从对应的信息库中删除对应的缓存数据段信息。
通过的随机写缓存信息库和顺序写缓存信息库以及写请求处理流程和脏缓存刷写流程,实现随机写缓存量和顺序写缓存量的分别控制,可避免随机写缓存占满所有写缓存以及避免持续刷写随机脏缓存,从而避免大量随机写缓存造成顺序写性能严重下降和整体性能波动。
基于上述技术方案,本实施例通过采取当将与预设信息对应的数据刷写入磁盘介质时,将缓存信息库中预设缓存数据信息删除,及时更新缓存信息库,以便能够实际对写缓存进行管理,提高管理效率。
基于上述实施例,本实施例提供一种数据写缓存控制方法,通过确定最优刷写粒度的参数以提高系统性能。具体请参考图4,图4为本申请实施例所提供的另一种数据写缓存控制方法的流程图,包括:
S401、接收写请求指令。
S402、确定所述写请求指令的写类型;其中,写类型为随机写或顺序写。
具体请参考上述实施例,本实施例不再进行赘述。
S403、在当前负载特征下确定最优刷写粒度。
S404、采用最优刷写粒度根据写类型将写数据写入缓存存储模块中。
具体的,不同负载条件下最有的刷写粒度是不同的,进而用最有的刷写粒度进行数据的刷写有利于提高利用率,提高刷写效率。本实施例可自动调节随机小块缓存刷写和顺序大块缓存刷写的粒度来识别最优的刷写粒度。具体的确定刷写粒度的方法可以是:1、对读数据请求、随机写、顺序写的处理分别统计次数、数据量、处理时间(延迟)。2、每间隔一段时间如INTV=5秒钟计算读、随机写、顺序写和总体的频率IOPS、带宽KBPS和平均延迟。3、分析多段时间的IOPS,KBPS均方差若小于一定值则判定为IO特征稳定,则可开始刷写调度自动调节测试,如以下步骤4到16。4、设定最低值MIN_N和MIN_M,最高值MAX_N和MAX_M,其中MIN_N<MAX_N,MIN_M<MAX_M。5、计当前时间为TIME_A。6、从随机写缓存信息库中查询获取GRAN_N个缓存数据段信息,GRAN_N初始值等于MIN_N。7、缓存存储模块将GRAN_N个脏缓存数据段刷写到后端磁盘介质。8、从顺序写缓存信息库中查询获取GRAN_M个缓存数据段信息,GRAN_M初始值等于MIN_M。9、缓存存储模块将GRAN_M个脏缓存数据段刷写到后端磁盘介质。10、缓存数据段异步地刷写到后端磁盘介质的后从对应的信息库中删除对应的缓存数据段信息,并记录每个刷写请求完成的时间、数据量、刷写请求数量、刷写缓存数据量。11、循环从步骤6开始,直到从TIME_A开始持续时长DURA_A,期间若随机写缓存信息库和顺序写缓存信息库中缓存量低于对应的阈值则暂停刷写。12、计算并记录在DURA_A时间段内各段时间(间隔INTV秒)读、随机写、顺序写和总体的频率IOPS、带宽KBPS和平均延迟,以及本周期的两个刷写粒度参数GRAN_N,GRAN_M,并分别计算和记录本周期内TIME_B到TIME_A+DURA_A时间内各段时间读、随机写、顺序写和总体的频率IOPS、带宽KBPS的均方差和平均延迟,其中TIME_B是TIME_A到TIME_A+DURA_A之间的时间点,即TIME_A到TIME_B之间的数据作为参数变化过度阶段数据筛选掉。13、增大GRAN_N,例如GRAN_N=GRAN_N+(MAX_N-MIN_N)/10,循环步骤上述5到13,直到GRAN_N=MAX_N。14、增大GRAN_M,例如GRAN_M=GRAN_M+(MAX_M-MIN_N)/10,重新设置GRAN_N=MIN_N,重复步骤5到14,直到GRAN_M=MAX_M。15、分析在步骤12所统计的读、随机写、顺序写和总体的频率IOPS、带宽KBPS的均方差和平均延迟及其刷写粒度GRAN_N,GRAN_M,对于均方差小于预定值的认为是稳定负载数据,进一步对稳定数据比较筛选出较出优劣参数:(a)假设两组数据的读、随机写、顺序写和总体的频率IOPS、带宽KBPS和平均延迟及其刷写粒度GRAN_N,GRAN_M;(b)若GRAN_N,GRAN_M对应的两组数据的rd_iops、randwr_iops、seqwr_iops以及rd_kbps,randwr_kbps,seqwr_kbps差值小于指定值如0.1%,则认为负载相同,则比较延迟时间tol_lat_1和时间tol_lat_2,其中延迟较小者为参数更优;(c)若两组数据tol_lat即时间tol_lat_1和时间tol_lat_2的差值小于指定值如0.5%,且两组数据读、随机写、顺序写的平均块大小小于指定差值如0.1%,则tol_iops高的一种数据参数较优。16、在循环步骤3到15,直到选择出特定负载特征下最优的GRAN_N和GRAN_M组合,特定负载特征是指主机端或上层IO的读、随机写、顺序写的块大小固定、iops比例固定的负载,且在确定的GRAN_N和GRAN_M参数下iops值固定(误差小于设定值),这可通过自动调节GRAN_N和GRAN_M来验证。对于主机端或上层应用负载特征持久恒定的场景下,方法可较快识别出该负载特征下的最优GRAN_N和GRAN_M组合。对于主机端或上层应用负载特征非持久恒定场景下,识别一种负载特征所需要的时间变长,该根据方法,只要同一种负载特征出现多个检测周期即可逐渐识别出最优配置。
按照方法识别出一种或多种负载特征下最优的随机和顺序刷写粒度参数GRAN_N和GRAN_M后,可进一步自动检测当前负载特征应用最优刷写粒度参数,从而提高系统性能。采用最优的刷写粒度将写数据写入缓存存储模块中。当然,除了上述的确定刷写粒度的方法之外也可以采用其他的确定的方法,只要能够最终确定最优刷写粒度即可,具体的本实施例不再进行限定,用户可根据实际情况进行设定。
基于上述技术方案,本实施例提供一种数据写缓存控制方法,通过采用在当前负载下确定最优刷写粒度,进而采用最优的刷写粒度将写数据写入缓存存储模块中以提高系统性能。
下面对本申请实施例提供的一种数据写缓存控制装置进行介绍,下文描述的数据写缓存控制装置与上文描述的数据写缓存控制方法可相互对应参照,参考图5,图5为本申请实施例所提供的一种数据写缓存控制装置的结构示意图,包括:
接收模块501,用于接收写请求指令;
确定模块502,用于确定所述写请求指令的写类型;其中,写类型为随机写或顺序写;
写入模块503,用于根据写类型将写请求指令对应的写数据写入缓存存储模块中。
在一些具体的实施例中,确定模块502包括:
判断单元,用于判断判断写数据的长度是否大于预设阈值;
确定单元,用于若大于预设阈值,则写类型为顺序写;若小于预设阈值,则查询顺序写缓存信息库中是否存在重叠或相邻的数据信息,若存在,则写类型为顺序写。
在一些具体的实施例中,还包括:
获取模块,用于从与写类型对应的缓存信息库中获取预设信息;
删除模块,用于将与预设信息对应的数据刷写入磁盘介质,并将缓存信息库中的预设信息删除。
在一些具体的实施例中,写入模块503包括:
最优刷写粒度确定单元,用于在当前负载特征下确定最优刷写粒度;
写入单元,用于采用最优刷写粒度根据写类型将写数据写入缓存存储模块中。
在一些具体的实施例中,还包括:
设置模块,用于设置缓存存储模块中随机写的存储容量与顺序写的存储容量的比例。
由于数据写缓存控制装置部分的实施例与数据写缓存控制方法部分的实施例相互对应,因此数据写缓存控制装置部分的实施例请参见数据写缓存控制方法部分的实施例的描述,这里暂不赘述。
下面对本申请实施例提供的一种电子设备进行介绍,下文描述的电子设备与上文描述的数据写缓存控制方法可相互对应参照。
本实施例提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述数据写缓存控制方法的步骤。
由于电子设备部分的实施例与数据写缓存控制方法部分的实施例相互对应,因此电子设备部分的实施例请参见数据写缓存控制方法部分的实施例的描述,这里暂不赘述。
下面对本申请实施例提供的一种计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的数据写缓存控制方法可相互对应参照。
本实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述数据写缓存控制方法的步骤。
由于计算机可读存储介质部分的实施例与数据写缓存控制方法部分的实施例相互对应,因此计算机可读存储介质部分的实施例请参见数据写缓存控制方法部分的实施例的描述,这里暂不赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种数据写缓存控制方法、数据写缓存控制装置、电子设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

Claims (10)

1.一种数据写缓存控制方法,其特征在于,包括:
接收写请求指令;
确定所述写请求指令的写类型;其中,所述写类型为随机写或顺序写;
根据所述写类型将所述写请求指令对应的写数据写入缓存存储模块中。
2.根据权利要求1所述的数据写缓存控制方法,其特征在于,确定所述写请求指令的写类型,包括:
判断所述写数据的长度是否大于预设阈值;
若大于所述预设阈值,则确定所述写类型为所述顺序写;
若小于所述预设阈值,则查询顺序写缓存信息库中是否存在重叠或相邻的数据信息;若存在,则确定所述写类型为所述顺序写。
3.根据权利要求1所述的数据写缓存控制方法,其特征在于,根据所述写类型将所述写请求指令对应的写数据写入缓存存储模块中之后,还包括:
从与所述写类型对应的缓存信息库中获取预设信息;
将与所述预设信息对应的数据刷写入磁盘介质,并将所述缓存信息库中的所述预设信息删除。
4.根据权利要求1所述的数据写缓存控制方法,其特征在于,根据所述写类型将所述写请求指令对应的写数据写入缓存存储模块中,包括:
在当前负载特征下确定最优刷写粒度;
采用所述最优刷写粒度根据所述写类型将所述写数据写入所述缓存存储模块中。
5.根据权利要求1所述的数据写缓存控制方法,其特征在于,接收写请求指令之前,还包括:
设置所述缓存存储模块中所述随机写的存储容量与所述顺序写的存储容量的比例。
6.一种数据写缓存控制装置,其特征在于,包括:
接收模块,用于接收写请求指令;
确定模块,用于确定所述写请求指令的写类型;其中,所述写类型为随机写或顺序写;
写入模块,用于根据所述写类型将所述写请求指令对应的写数据写入缓存存储模块中。
7.根据权利要求6所述的数据写缓存控制装置,其特征在于,所述确定模块包括:
判断单元,用于判断判断所述写数据的长度是否大于预设阈值;
确定单元,用于若大于所述预设阈值,则所述写类型为所述顺序写;若小于所述预设阈值,则查询顺序写缓存信息库中是否存在重叠或相邻的数据信息,若存在,则所述写类型为顺序写。
8.根据权利要求6所述的数据写缓存控制装置,其特征在于,还包括:
获取模块,用于从与所述写类型对应的缓存信息库中获取预设信息;
删除模块,用于将与所述预设信息对应的数据刷写入磁盘介质,并将所述缓存信息库中的所述预设信息删除。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述数据写缓存控制方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述数据写缓存控制方法的步骤。
CN201811593599.9A 2018-12-25 2018-12-25 一种数据写缓存控制方法、装置、电子设备和存储介质 Pending CN109684236A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811593599.9A CN109684236A (zh) 2018-12-25 2018-12-25 一种数据写缓存控制方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811593599.9A CN109684236A (zh) 2018-12-25 2018-12-25 一种数据写缓存控制方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN109684236A true CN109684236A (zh) 2019-04-26

Family

ID=66189322

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811593599.9A Pending CN109684236A (zh) 2018-12-25 2018-12-25 一种数据写缓存控制方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN109684236A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110096234A (zh) * 2019-04-30 2019-08-06 深圳忆联信息系统有限公司 一种提高固态硬盘中写性能的方法及其系统
CN110795129A (zh) * 2019-11-04 2020-02-14 阳光电源股份有限公司 一种数据刷写方法、装置和设备
CN110837513A (zh) * 2019-11-07 2020-02-25 腾讯科技(深圳)有限公司 一种缓存更新方法、装置、服务器及存储介质
CN111008157A (zh) * 2019-11-29 2020-04-14 北京浪潮数据技术有限公司 存储系统写缓存数据下发方法及相关组件
CN111142790A (zh) * 2019-12-10 2020-05-12 北京金山云网络技术有限公司 对磁盘写请求的控制方法、装置、电子设备及存储介质
CN111208944A (zh) * 2019-12-30 2020-05-29 深圳佰维存储科技股份有限公司 数据预判方法、装置和可读存储介质
CN111309267A (zh) * 2020-02-26 2020-06-19 Oppo广东移动通信有限公司 存储空间的分配方法、装置、存储设备及存储介质
CN112214173A (zh) * 2020-10-16 2021-01-12 苏州浪潮智能科技有限公司 一种基于卷删除的写缓存资源分配方法及系统
CN112527209A (zh) * 2020-12-21 2021-03-19 江苏国科微电子有限公司 一种数据写入方法、装置、电子设备及存储介质
CN112783424A (zh) * 2019-04-09 2021-05-11 爱思开海力士有限公司 存储装置及其控制方法
CN114879909A (zh) * 2022-05-07 2022-08-09 北京星辰天合科技股份有限公司 数据存储方法及装置、电子设备、存储介质
CN115827063A (zh) * 2023-02-16 2023-03-21 沐曦集成电路(南京)有限公司 一种基于Fill Constant指令的写存储系统及方法
CN117472294A (zh) * 2023-12-28 2024-01-30 合肥康芯威存储技术有限公司 一种存储器及其数据处理方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521160A (zh) * 2011-12-22 2012-06-27 上海交通大学 写缓冲检测器、写入数据的寻址方法、并行通道写入方法
US20120303863A1 (en) * 2011-05-23 2012-11-29 International Business Machines Corporation Using an attribute of a write request to determine where to cache data in a storage system having multiple caches including non-volatile storage cache in a sequential access storage device
CN103902348A (zh) * 2012-12-25 2014-07-02 华为技术有限公司 一种虚拟化环境下用户数据的读写方法、系统及物理机
CN104679479A (zh) * 2015-03-12 2015-06-03 中国人民解放军信息工程大学 一种基于任务编号的调度控制机制的多核密码处理器
CN104731718A (zh) * 2013-12-24 2015-06-24 上海芯豪微电子有限公司 一种缓存系统和方法
US20160210054A1 (en) * 2015-01-20 2016-07-21 Ultrata Llc Managing meta-data in an object memory fabric
US20160246731A1 (en) * 2015-02-20 2016-08-25 Qualcomm Incorporated Selective translation lookaside buffer search and page fault
CN106547476A (zh) * 2015-09-22 2017-03-29 伊姆西公司 用于数据存储系统的方法和装置
CN108198582A (zh) * 2017-12-28 2018-06-22 湖南国科微电子股份有限公司 一种NAND Flash控制方法、装置及SSD
CN108459826A (zh) * 2018-02-01 2018-08-28 杭州宏杉科技股份有限公司 一种处理io请求的方法及装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120303863A1 (en) * 2011-05-23 2012-11-29 International Business Machines Corporation Using an attribute of a write request to determine where to cache data in a storage system having multiple caches including non-volatile storage cache in a sequential access storage device
CN102521160A (zh) * 2011-12-22 2012-06-27 上海交通大学 写缓冲检测器、写入数据的寻址方法、并行通道写入方法
CN103902348A (zh) * 2012-12-25 2014-07-02 华为技术有限公司 一种虚拟化环境下用户数据的读写方法、系统及物理机
CN104731718A (zh) * 2013-12-24 2015-06-24 上海芯豪微电子有限公司 一种缓存系统和方法
US20160210054A1 (en) * 2015-01-20 2016-07-21 Ultrata Llc Managing meta-data in an object memory fabric
US20160246731A1 (en) * 2015-02-20 2016-08-25 Qualcomm Incorporated Selective translation lookaside buffer search and page fault
CN104679479A (zh) * 2015-03-12 2015-06-03 中国人民解放军信息工程大学 一种基于任务编号的调度控制机制的多核密码处理器
CN106547476A (zh) * 2015-09-22 2017-03-29 伊姆西公司 用于数据存储系统的方法和装置
CN108198582A (zh) * 2017-12-28 2018-06-22 湖南国科微电子股份有限公司 一种NAND Flash控制方法、装置及SSD
CN108459826A (zh) * 2018-02-01 2018-08-28 杭州宏杉科技股份有限公司 一种处理io请求的方法及装置

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112783424B (zh) * 2019-04-09 2024-01-16 爱思开海力士有限公司 存储装置及其控制方法
CN112783424A (zh) * 2019-04-09 2021-05-11 爱思开海力士有限公司 存储装置及其控制方法
CN110096234A (zh) * 2019-04-30 2019-08-06 深圳忆联信息系统有限公司 一种提高固态硬盘中写性能的方法及其系统
CN110795129A (zh) * 2019-11-04 2020-02-14 阳光电源股份有限公司 一种数据刷写方法、装置和设备
CN110795129B (zh) * 2019-11-04 2023-11-07 阳光电源股份有限公司 一种数据刷写方法、装置和设备
CN110837513A (zh) * 2019-11-07 2020-02-25 腾讯科技(深圳)有限公司 一种缓存更新方法、装置、服务器及存储介质
CN111008157A (zh) * 2019-11-29 2020-04-14 北京浪潮数据技术有限公司 存储系统写缓存数据下发方法及相关组件
CN111142790A (zh) * 2019-12-10 2020-05-12 北京金山云网络技术有限公司 对磁盘写请求的控制方法、装置、电子设备及存储介质
CN111142790B (zh) * 2019-12-10 2023-07-07 北京金山云网络技术有限公司 对磁盘写请求的控制方法、装置、电子设备及存储介质
CN111208944B (zh) * 2019-12-30 2023-06-27 深圳佰维存储科技股份有限公司 数据预判方法、装置和可读存储介质
CN111208944A (zh) * 2019-12-30 2020-05-29 深圳佰维存储科技股份有限公司 数据预判方法、装置和可读存储介质
CN111309267B (zh) * 2020-02-26 2023-10-03 Oppo广东移动通信有限公司 存储空间的分配方法、装置、存储设备及存储介质
CN111309267A (zh) * 2020-02-26 2020-06-19 Oppo广东移动通信有限公司 存储空间的分配方法、装置、存储设备及存储介质
CN112214173B (zh) * 2020-10-16 2023-01-10 苏州浪潮智能科技有限公司 一种基于卷删除的写缓存资源分配方法及系统
CN112214173A (zh) * 2020-10-16 2021-01-12 苏州浪潮智能科技有限公司 一种基于卷删除的写缓存资源分配方法及系统
CN112527209A (zh) * 2020-12-21 2021-03-19 江苏国科微电子有限公司 一种数据写入方法、装置、电子设备及存储介质
CN114879909A (zh) * 2022-05-07 2022-08-09 北京星辰天合科技股份有限公司 数据存储方法及装置、电子设备、存储介质
CN115827063A (zh) * 2023-02-16 2023-03-21 沐曦集成电路(南京)有限公司 一种基于Fill Constant指令的写存储系统及方法
CN117472294A (zh) * 2023-12-28 2024-01-30 合肥康芯威存储技术有限公司 一种存储器及其数据处理方法
CN117472294B (zh) * 2023-12-28 2024-04-09 合肥康芯威存储技术有限公司 一种存储器及其数据处理方法

Similar Documents

Publication Publication Date Title
CN109684236A (zh) 一种数据写缓存控制方法、装置、电子设备和存储介质
US11698857B2 (en) Storage system for migrating data between tiers
US10776278B2 (en) Storage control apparatus and computer-readable storage medium storing storage control program
US9952803B1 (en) Techniques for automated evaluation and moment of data between storage tiers
US9128855B1 (en) Flash cache partitioning
US9785353B1 (en) Techniques for automated evaluation and movement of data between storage tiers for thin devices
US8972694B1 (en) Dynamic storage allocation with virtually provisioned devices
US9898224B1 (en) Automatic adjustment of capacity usage by data storage optimizer for data migration
US9026765B1 (en) Performing write operations in a multi-tiered storage environment
US9665288B1 (en) Techniques for determining workload skew
US20230028183A1 (en) Extending ssd longevity
WO2015145532A1 (ja) ストレージシステム及びデータ処理方法
US8862837B1 (en) Techniques for automated data compression and decompression
KR102538126B1 (ko) 테일 레이턴시를 인식하는 포어그라운드 가비지 컬렉션 알고리즘
CN106569732B (zh) 数据迁移方法及装置
KR101017067B1 (ko) 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
US20170344269A1 (en) Storage system, control apparatus, and method of transmitting data
KR101480424B1 (ko) 하이브리드 플래시 메모리의 성능과 수명 최적화 장치 및 방법
US11693570B2 (en) Machine learning to improve caching efficiency in a storage system
KR101026634B1 (ko) 하이브리드 플래시 메모리의 데이터 저장 방법
US20240012580A1 (en) Systems, methods, and devices for reclaim unit formation and selection in a storage device
CN117369717A (zh) 用于存储设备中的数据放置的系统、方法和装置
CN117369718A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190426

RJ01 Rejection of invention patent application after publication