用于缓存管理的方法和设备技术

技术编号:19744555 阅读:53 留言:0更新日期:2018-12-12 04:37
本公开的实施例涉及用于缓存管理的方法和设备。该方法包括确定缓存针对与所述缓存相关联的下层存储设备的缓存冲刷时段。该方法还包括响应于所述缓存冲刷时段的时长大于阈值时长,响应于接收到写请求,确定与所述写请求相关联的数据是否已被存储在所述缓存中。该方法进一步包括响应于所述数据在所述缓存中未命中,将所述写请求和所述数据存储在所述缓存中而不返回针对所述写请求的写完成消息。

【技术实现步骤摘要】
用于缓存管理的方法和设备
本公开的实施例涉及存储器领域,具体涉及缓存管理的方法和设备。
技术介绍
由于大容量存储设备的数据存取数速度一般较低,导致计算设备和大容量存储设备间数据的处理速度很慢。由于缓存具有快速的数据处理能力,且常用的数据一般比较集中,因此,通过在计算设备和大容量存储设备间设置缓存能快速的提高数据处理能力。由于缓存的数据处理能力和处理器的能力相近,因此能够快速的接收处理器发送的数据并能将缓存的数据快速的发送给处理器。对于缓存中不用的数据,则通过与存储设备的接口将数据冲刷到存储设备上。由于缓存的成本较高,为了计算设备的经济性,会设置具有合适存储容量的缓存。这种设置导致缓存的存储容量小于存储设备的存储容量,因此不可能将存储设备中的所有数据存储在缓存中。在现有的向大容量存储设备写入数据的方法中,会先确定向存储设备中存储的数据页中否存在于缓存中,如果有则会将数据写入已存在的数据页,如果不存于缓存中,则写入缓存中的新缓存页。对于缓存中不常用的数据,则会在合适的时间将缓存页中的数据冲刷到存储设备以保持数据的一致性。
技术实现思路
本公开的实施例的目的在于提供一种缓存管理的方法和设备。根据本公开的第一方面,提供了一种缓存管理的方法。该方法包括确定缓存针对与缓存相关联的下层存储设备的缓存冲刷时段。该方法还包括响应于缓存冲刷时段的时长大于阈值时长,响应于接收到写请求,确定与写请求相关联的数据是否已被存储在缓存中。该方法进一步包括响应于数据在所述缓存中未命中,将写请求和所述数据存储在缓存中而不返回针对写请求的写完成消息。在某些实施例中,该方法还包括:确定缓存中由向存储设备进行冲刷而释放的可用于所述存储设备的存储块的第一数目;响应于数目大于数据占用的存储块的第二数目,发送针对写请求的所述写完成消息。在某些实施例中,确定针对存储设备的所述缓存冲刷时段包括:获取缓存向所述存储设备的多次先前冲刷的多个历史冲刷时段;通过对多个历史冲刷时段进行平均来确定缓存冲刷时段。在某些实施例中,该方法还包括:响应于缓存冲刷时段的时长大于阈值时长,对存储设备进行标注以用于处理所述写请求。在某些实施例中,该方法还包括:响应于发送写完成消息,从第一数目中减去第二数目。在某些实施例中,该方法还包括:比较写请求在所述缓存中被存储的第一时长与预定义的第二时长;响应于第一时长超过第二时长,确定缓存中与存储设备相关联的脏块率;响应于脏块率小于预定阈值,发送针对写请求的写完成消息。在某些实施例中,该方法还包括:确定缓存中由向存储设备进行冲刷而释放的可用于存储设备的存储块的第一数目;获取缓存中存储块的数目和缓存中脏块的数目;基于第一数目、缓存中存储块的数目和缓存中脏块的数目确定脏块率。根据本公开的第二方面提供了一种缓存管理器,其中应用该缓存管理器的缓存包括多个存储块。该缓存管理器包括:处理器;存储器,存储有计算机程序指令,处理器运行存储器中的计算机程序指令控制该存储器系统执行动作,动作包括:确定缓存针对与缓存相关联的下层存储设备的缓存冲刷时段;响应于缓存冲刷时段的时长大于阈值时长,响应于接收到写请求,确定与写请求相关联的数据是否已被存储在缓存中;以及响应于数据在所述缓存中未命中,将写请求和数据存储在缓存中而不返回针对写请求的写完成消息。根据本公开的第三方面提供了一种计算机程序产品,所述计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行本公开的第一方面中的方法的步骤。附图说明通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。图1示出了根据本公开的实施例的系统100的架构图;图2示出了根据本公开的实施例的用于缓存管理的方法200的示意图;图3图示了根据本公开的实施例的用于缓存管理的方法300的流程图;图4图示了根据本公开的实施例的用于缓存管理的方法400的流程图;图5示出了适于用来实施本公开内容的实施例的示例设备500的示意性框图。在各个附图中,相同或对应的标号表示相同或对应的部分。具体实施方式下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。处理器向存储设备写入数据时,可先将数据写入缓存。因此,处理器会通过一个或多个输入/输出I/O线程向缓存发送写请求。缓存接收到写请求后首先确定与要写入的地址相对应的数据块是否存在于缓存中。如果数据块存在于缓存中则直接写入相应的数据块。如果缓存中不存在与写请求中的地址对应的数据块,则会产生写未命中,于是缓存会为其分配新的数据块用于存储数据。当缓存中的数据需要移出缓存时,与存储设备中的数据不一致的缓存中的脏页的数据将会被冲刷到存储设备以保护数据的一致性。当缓存将数据刷新到存储设备时,如果冲刷速度由于各种原因变慢,如存储设备驱动器出现问题或部分存储介质出现问题。由于缓存和处理器之间的数据处理速度远快于缓存与存储设备之间的数据处理速度,此时会导致缓存中的存储块会很快被处理器发送过来的各种输入输出操作(I/O)给消耗掉,尤其是与处理器发送的写请求中的存储地址对应的存储块不在缓存中时。为了解决至少上述问题及其它潜在问题,本公开的实施例提供了一种缓存管理的解决方案。在该解决方案中,通过限制各种输入输出操作来改善缓存的数据管理效率。图1图示了根据本公开的实施例的系统100的架构图。计算设备102中具有处理器108,其用于处理各种应用。缓存设备104用于缓存处理器108处理的数据以及从存储设备106读取的数据。存储设备106为用于存储大容量数据的存储设备。该存储设备可以包括各种易失性和/或非易失性数据存储介质。存储介质的示例可以包括但不限于盘阵列、磁盘、光盘、硬盘、固态硬盘(SSD)。盘阵列可以为不同级别的盘阵列,可以包括但不限于RAID0、RAID1、RAID0+1、RAID2、RAID3、RAID4、RAID5、RAID7、RAID10、RAID53。由于处理器108和缓存104之间数据处理速度非常快,而缓存104和存储设备106之间的刷新速度比较慢。因此,当缓存104和存储设备106之间的速度比较慢时,或者存储设备出现部分问题时,则针对该存储设备的写入速度降低。下面的内容将详细介绍解决该问题的方法。图2示出了根据本本文档来自技高网...

【技术保护点】
1.一种缓存管理的方法,包括:确定缓存针对与所述缓存相关联的下层存储设备的缓存冲刷时段;响应于所述缓存冲刷时段的时长大于阈值时长,响应于接收到写请求,确定与所述写请求相关联的数据是否已被存储在所述缓存中;以及响应于所述数据在所述缓存中未命中,将所述写请求和所述数据存储在所述缓存中而不返回针对所述写请求的写完成消息。

【技术特征摘要】
1.一种缓存管理的方法,包括:确定缓存针对与所述缓存相关联的下层存储设备的缓存冲刷时段;响应于所述缓存冲刷时段的时长大于阈值时长,响应于接收到写请求,确定与所述写请求相关联的数据是否已被存储在所述缓存中;以及响应于所述数据在所述缓存中未命中,将所述写请求和所述数据存储在所述缓存中而不返回针对所述写请求的写完成消息。2.根据权利要求1所述的方法,还包括:确定所述缓存中由向所述存储设备进行冲刷而释放的可用于所述存储设备的存储块的第一数目;响应于所述数目大于所述数据占用的存储块的第二数目,发送针对所述写请求的所述写完成消息。3.根据权利要求1所述的方法,其中确定针对所述存储设备的所述缓存冲刷时段包括:获取所述缓存向所述存储设备的多次先前冲刷的多个历史冲刷时段;通过对所述多个历史冲刷时段进行平均来确定所述缓存冲刷时段。4.根据权利要求1所述的方法,还包括:响应于所述缓存冲刷时段的时长大于阈值时长,对所述存储设备进行标注以用于处理所述写请求。5.根据权利要求2所述的方法,还包括:响应于发送所述写完成消息,从所述第一数目中减去所述第二数目。6.根据权利要求1所述的方法,还包括:比较所述写请求在所述缓存中被存储的第一时长与预定义的第二时长;响应于所述第一时长超过所述第二时长,确定所述缓存中与所述存储设备相关联的脏块率;响应于所述脏块率小于预定阈值,发送针对所述写请求的所述写完成消息。7.根据权利要求6所述的方法,还包括:确定所述缓存中由向所述存储设备进行冲刷而释放的可用于所述存储设备的存储块的第一数目;获取所述缓存中存储块的数目和所述缓存中脏块的数目;基于所述第一数目、所述缓存中存储块的数目和所述缓存中所述脏块的数目确定脏块率。8.一种缓存管理器,所述缓存包括多个存储块,所述管理器包括:处理器;存储器,存储有计算机程序指令,处理器运行存储器中的所述计算机程序指令控制该存储器系统执行动作,所述动作包括:确...

【专利技术属性】
技术研发人员:贾瑞勇徐鑫磊杨利锋李雄成高健
申请(专利权)人:伊姆西IP控股有限责任公司
类型:发明
国别省市:美国,US

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

1