控制缓存刷盘方法、装置及非易失性计算机可读存储介质的制作方法

文档序号:9375500阅读:271来源:国知局
控制缓存刷盘方法、装置及非易失性计算机可读存储介质的制作方法
【技术领域】
[0001]本发明涉及数据存储技术领域,尤其涉及一种控制缓存刷盘方法、装置及非易失性计算机可读存储介质。
【背景技术】
[0002]为了弥补低速存储设备和高速计算设备之间的巨大性能差异,低速存储设备(如磁盘)需要使用缓存设备暂时缓存数据以供计算设备处理。
[0003]现有技术中,当缓存设备中的数据量达到阈值时,需要将数据写入到低速存储设备中。其中,将缓存设备中的数据写入低速存储设备中的操作称为刷盘,需要刷盘的数据通常包括缓存中缓存的尚未写入低速存储设备的数据(即缓存的待写入数据)以及从低速存储设备读取但在缓存中已经被修改的数据。
[0004]通常,多个缓存共用一个低速存储设备,但是,采用现有技术,当多个缓存进行刷盘操作时,会造成数据流的交织,即造成各个缓存之间刷盘操作的相互干扰,从而导致刷盘操作性能降低。

【发明内容】

[0005]本发明提供一种控制缓存刷盘方法、装置及非易失性计算机可读存储介质,用于解决现有技术中当多个缓存进行刷盘操作时,会导致刷盘操作性能降低的问题。
[0006]本发明实施例第一方面提供一种控制缓存刷盘方法,所述方法应用于缓存系统中,所述缓存系统包括第一缓存和第二缓存,所述第一缓存用于缓存第一设备的数据,所述第二缓存用于缓存第二设备的数据;所述方法包括:
[0007]分别确定所述第一缓存和所述第二缓存的刷盘优先级;
[0008]根据所述第一缓存的刷盘优先级,为所述第一缓存分配第一刷盘时间片;
[0009]根据所述第二缓存的刷盘优先级,为所述第二缓存分配第二刷盘时间片。
[0010]结合第一方面,在第一方面的第一种可能的实施方式中,所述分别确定所述第一缓存和所述第二缓存的刷盘优先级,包括:
[0011]接收所述第一缓存上报的所述第一缓存的刷盘优先级和所述第二缓存上报的所述第二缓存的刷盘优先级,其中,所述第一缓存根据自身的状态信息确定所述第一缓存的刷盘优先级,所述第二缓存根据自身的状态信息确定所述第二缓存的刷盘优先级;
[0012]所述状态信息包括:数据量信息和健康状态信息中的至少一种。
[0013]结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述分别确定所述第一缓存和所述第二缓存的刷盘优先级,具体包括:
[0014]若所述第一缓存和所述第二缓存对应的刷盘优先级相同,则分别获取所述第一缓存和所述第二缓存的上次刷盘结束时间,并根据所述第一缓存和所述第二缓存的上次刷盘结束时间重新确定所述第一缓存和所述第二缓存的刷盘优先级。
[0015]结合第一方面,在第一方面的第三种可能的实施方式中,所述分别确定所述第一缓存和所述第二缓存的刷盘优先级,包括:
[0016]根据所述第一缓存的状态信息和所述第二缓存的状态信息,分别确定所述第一缓存的刷盘优先级和所述第二缓存的刷盘优先级;
[0017]其中,所述状态信息包括:数据量信息和健康状态信息中的至少一种。
[0018]结合第一方面的第三种可能的实施方式,在第一方面的第四种可能的实施方式中,所述根据所述第一缓存的状态信息和所述第二缓存的状态信息,分别确定所述第一缓存的刷盘优先级和所述第二缓存的刷盘优先级,包括:
[0019]当所述第一缓存的状态信息指示所述第一缓存处于不健康状态时,则将所述第一缓存的刷盘优先级设置为第一优先级;
[0020]当所述第二缓存的状态信息指示所述第二缓存处于健康状态时,则将所述第二缓存的刷盘优先级设置为第二优先级;
[0021 ] 其中,所述第一优先级高于所述第二优先级。
[0022]结合第一方面的第三种可能的实施方式,在第一方面的第五种可能的实施方式中,所述根据所述第一缓存的状态信息和所述第二缓存的状态信息,分别确定所述第一缓存的刷盘优先级和所述第二缓存的刷盘优先级,包括:
[0023]当所述第一缓存对应的数据量大于所述第二缓存对应的数据量时,则将所述第一缓存的刷盘优先级设置为第三优先级,将所述第二缓存的刷盘优先级设置为第四优先级;
[0024]其中,所述第三优先级高于所述第四优先级。
[0025]结合第一方面,在第一方面的第六种可能的实施方式中,所述第一刷盘时间片与所述第二刷盘时间片不大于刷盘周期。
[0026]本发明实施例第二方面提供一种控制缓存刷盘的装置,所述装置包括:
[0027]确定模块,用于分别确定第一缓存和第二缓存的刷盘优先级;
[0028]分配模块,用于根据所述第一缓存的刷盘优先级,为所述第一缓存分配第一刷盘时间片;根据所述第二缓存的刷盘优先级,为所述第二缓存分配第二刷盘时间片。
[0029]结合第二方面,在第二方面的第一种可能的实施方式中,所述确定模块,具体用于接收所述第一缓存上报的所述第一缓存的刷盘优先级和所述第二缓存上报的所述第二缓存的刷盘优先级,其中,所述第一缓存根据自身的状态信息确定所述第一缓存的刷盘优先级,所述第二缓存根据自身的状态信息确定所述第二缓存的刷盘优先级;
[0030]所述状态信息包括:数据量信息和健康状态信息中的至少一种。
[0031]结合第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,所述确定模块,具体用于在所述第一缓存和所述第二缓存对应的刷盘优先级相同时,分别获取所述第一缓存和所述第二缓存的上次刷盘结束时间,并根据所述第一缓存和所述第二缓存的上次刷盘结束时间重新确定所述第一缓存和所述第二缓存的刷盘优先级。
[0032]结合第二方面,在第二方面的第三种可能的实施方式中,所述确定模块,具体用于根据所述第一缓存的状态信息和所述第二缓存的状态信息,分别确定所述第一缓存的刷盘优先级和所述第二缓存的刷盘优先级,其中,所述状态信息包括:数据量信息和健康状态信息中的至少一种。
[0033]结合第二方面的第三种可能的实施方式,在第二方面的第四种可能的实施方式中,所述确定模块,具体用于根据所述第一缓存的状态信息和所述第二缓存的状态信息,分别确定所述第一缓存的刷盘优先级和所述第二缓存的刷盘优先级,具体为:
[0034]当所述第一缓存的状态信息指示所述第一缓存处于不健康状态时,则将所述第一缓存的刷盘优先级设置为第一优先级;
[0035]当所述第二缓存的状态信息指示所述第二缓存处于健康状态时,则将所述第二缓存的刷盘优先级设置为第二优先级;
[0036]其中,所述第一优先级高于所述所述第二优先级。
[0037]结合第二方面的第三种可能的实施方式,在第二方面的第五种可能的实施方式中,所述确定模块,具体用于根据所述第一缓存的状态信息和所述第二缓存的状态信息,分别确定所述第一缓存的刷盘优先级和所述第二缓存的刷盘优先级,具体为:
[0038]当所述第一缓存对应的数据量大于所述第二缓存对应的数据量时,则将所述第一缓存的刷盘优先级设置为第三优先级,将所述第二缓存的刷盘优先级设置为第四优先级;
[0039]其中,所述第三优先级高于所述第四优先级。
[0040]结合第二方面,在第二方面的第六种可能的实施方式中,所述第一刷盘时间片与所述第二刷盘时间片不大于刷盘周期。
[0041]本发明实施例第三方面提供一种控制缓存刷盘的装置,所述装置包括处理器和存储器,所述存储器存储计算机可执行指令,所述处理器执行所述计算机可执行指令使所述装置执行如下步骤:
[0042]分别确定第一缓存和第二缓存的刷盘优先级;根据所述第一缓存的刷盘优先级,为所述第一缓存分配第一刷盘时间片;根据所述第二缓存的刷盘优先级,为所述第二缓存分配第二刷盘时间片。
[0043]结合第三方面,在第三方面的第一种可能的实施方式中,所述装置执行的所述分别确定第一缓存和第二缓存的刷盘优先级步骤具体包括:所述装置接收所述第一缓存上报的所述第一缓存的刷盘优先级和所述第二缓存上报的所述第二缓存的刷盘优先级,其中,所述第一缓存根据自身的状态信息确定所述第一缓存的刷盘优先级,所述第二缓存根据自身的状态信息确定所述第二缓存的刷盘优先级;
[0044]所述状态信息包括:数据量信息和健康状态信息中的至少一种。
[0045]结合第三方面的第一种可能实施方式,在第三方面的第二种可能的实施方式中,所述装置执行的所述分别确定第一缓存和第二缓存的刷盘优先级步骤具体包括:在所述第一缓存和所述第二缓存对应的刷盘优先级相同时,分别获取所述第一缓存和所述第二缓存的上次刷盘结束时间,并根据所述第一缓存和所述第二缓存的上次刷盘结束时间重新确定所述第一缓存和所述第二缓存的刷盘优先级。
[0046]结合第三方面,在第三方面的第三种可能的实施方式中,所述装置执行的所述分别确定第一缓存和第二缓存的刷盘优先级步骤具体包括:根据所述第一缓存的状态信息和所述第二缓存的状态信息,分别确定所述第一缓存的刷盘优先级和所述第二缓存的刷盘优先级,其中,所述状态信息包括:数据量信息和健康状态信息中的至少一种。
[0047]结合第三方面的第三种可能实施方式,在第三方面的第四种可能的实施方式中,所述装置执行的所述根据所述第一缓存的状态信息和所述第二缓存的状态信息,分别确定所述第一缓存的刷盘优先级和所述第二缓存的刷盘优先级步骤具体包括:
[0048]当所述第一缓存的状态信息指示所述第一缓存处于不健康状态时,则将所述第一缓存的刷盘优先级设置为第一优先级;
[0049]当所述第二缓存的状态信息指示所述第二缓存处于健康状态时,则将所述第二缓存的刷盘优先级设置为第二优先级;
[0050]其中,所述第一优先级高于所述第二优先级。
[0051]结合第三方面的第三种可能实施方式,在
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1