一种缓存数据刷盘方法及装置转让专利

申请号 : CN201510601253.9

文献号 : CN106557430B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李关强

申请人 : 成都华为技术有限公司

摘要 :

本发明实施例公开一种缓存数据刷盘方法及装置,该方法包括:当存在缓存数据时,获取磁盘包括的至少两个逻辑单元号的数据刷盘参数;根据每个逻辑单元号的数据刷盘参数计算该逻辑单元号的优先级数;根据每个逻辑单元号的优先级数和刷盘页面并发数确定该逻辑单元号的刷盘页面数,刷盘页面并发数是每次刷盘时写入磁盘的页面数量,逻辑单元号的刷盘页面数是每次刷盘时写入逻辑单元号的页面数量;根据每个逻辑单元号的刷盘页面数,将缓存数据中的全部或部分缓存数据刷盘至至少两个逻辑单元号中。实施本发明实施例,可以将刷盘页面并发数合理地分配给磁盘中的多个逻辑单元号,以提高刷盘的灵活性。

权利要求 :

1.一种缓存数据刷盘方法,其特征在于,包括:

当存在缓存数据时,获取磁盘包括的至少两个逻辑单元号的数据刷盘参数;

根据每个所述逻辑单元号的数据刷盘参数计算所述逻辑单元号的优先级数;

根据每个所述逻辑单元号的优先级数和刷盘页面并发数确定所述逻辑单元号的刷盘页面数,所述刷盘页面并发数是每次刷盘时写入所述磁盘的页面数量,所述逻辑单元号的刷盘页面数是每次刷盘时写入所述逻辑单元号的页面数量;

根据每个所述逻辑单元号的刷盘页面数,将所述缓存数据中的全部或部分缓存数据刷盘至所述至少两个逻辑单元号中。

2.根据权利要求1所述的方法,其特征在于,每个所述逻辑单元号的数据刷盘参数包括预设时间内写入所述逻辑单元号的缓存数据的容量以及所述逻辑单元号在所述预设时间内每次刷盘所需平均时间;

所述根据每个所述逻辑单元号的数据刷盘参数计算所述逻辑单元号的优先级数包括:将所述预设时间内写入每个所述逻辑单元号的缓存数据的容量除以所述逻辑单元号在所述预设时间内每次刷盘所需平均时间,以获得所述逻辑单元号的优先级数。

3.根据权利要求1所述的方法,其特征在于,所述根据每个所述逻辑单元号的优先级数和刷盘页面并发数确定所述逻辑单元号的刷盘页面数包括:将每个所述逻辑单元号的优先级数相加,以获得总优先级数;

将每个所述逻辑单元号的优先级数除以所述总优先级数,以获得所述逻辑单元号的刷盘配额数;

将每个所述逻辑单元号的刷盘配额数乘以刷盘页面并发数,以获得所述逻辑单元号的刷盘页面数。

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取所述缓存数据的容量;

根据预设的刷盘页面并发数与缓存数据的容量区间的对应关系,获取所述缓存数据的容量对应的刷盘页面并发数。

5.根据权利要求1所述的方法,其特征在于,所述根据每个所述逻辑单元号的数据刷盘参数计算所述逻辑单元号的优先级数之后,所述方法还包括:判断计算的目标逻辑单元号的优先级数与计算前所述目标逻辑单元号的优先级数的差值的绝对值是否大于预设值,若大于,则执行所述根据每个所述逻辑单元号的优先级数和刷盘页面并发数确定所述逻辑单元号的刷盘页面数的步骤;

其中,所述目标逻辑单元号是所述至少两个逻辑单元号中的任一逻辑单元号。

6.一种缓存数据刷盘装置,其特征在于,包括:

第一获取单元,用于当存在缓存数据时,获取磁盘包括的至少两个逻辑单元号的数据刷盘参数;

计算单元,用于根据所述第一获取单元获取的每个所述逻辑单元号的数据刷盘参数计算所述逻辑单元号的优先级数;

确定单元,用于根据所述计算单元计算的每个所述逻辑单元号的优先级数和刷盘页面并发数确定所述逻辑单元号的刷盘页面数,所述刷盘页面并发数是每次刷盘时写入所述磁盘的页面数量,所述逻辑单元号的刷盘页面数是每次刷盘时写入所述逻辑单元号的页面数量;

刷盘单元,用于根据所述确定单元确定的每个所述逻辑单元号的刷盘页面数,将所述缓存数据中的全部或部分缓存数据刷盘至所述至少两个逻辑单元号中。

7.根据权利要求6所述的装置,其特征在于,每个所述逻辑单元号的数据刷盘参数包括预设时间内写入所述逻辑单元号的缓存数据的容量以及所述逻辑单元号在所述预设时间内每次刷盘所需平均时间;

所述计算单元,具体用于将所述预设时间内写入每个所述逻辑单元号的缓存数据的容量除以所述逻辑单元号在所述预设时间内每次刷盘所需平均时间,以获得所述逻辑单元号的优先级数。

8.根据权利要求6所述的装置,其特征在于,所述确定单元包括:加法子单元,用于将所述计算单元计算的每个所述逻辑单元号的优先级数相加,以获得总优先级数;

除法子单元,用于将每个所述逻辑单元号的优先级数除以所述加法子单元获得的总优先级数,以获得所述逻辑单元号的刷盘配额数;

乘法子单元,用于将所述除法子单元获得的每个所述逻辑单元号的刷盘配额数乘以刷盘页面并发数,以获得所述逻辑单元号的刷盘页面数。

9.根据权利要求6所述的装置,其特征在于,所述装置还包括:第二获取单元,用于获取所述缓存数据的容量;

第三获取单元,用于根据预设的刷盘页面并发数与缓存数据的容量区间的对应关系,获取所述第二获取单元获取的缓存数据的容量对应的刷盘页面并发数。

10.根据权利要求6所述的装置,其特征在于,所述装置还包括:判断单元,用于判断所述计算单元计算的目标逻辑单元号的优先级数与计算前所述目标逻辑单元号的优先级数的差值的绝对值是否大于预设值,当所述判断单元的判断结果为是时,则触发所述确定单元执行所述根据所述计算单元计算的每个所述逻辑单元号的优先级数和刷盘页面并发数确定所述逻辑单元号的刷盘页面数的步骤;

其中,所述目标逻辑单元号是所述至少两个逻辑单元号中的任一逻辑单元号。

说明书 :

一种缓存数据刷盘方法及装置

技术领域

[0001] 本发明涉及计算机技术领域,尤其涉及一种缓存数据刷盘方法及装置。

背景技术

[0002] 一个磁盘可以包括多个逻辑单元号(Logical Unit Number,LUN),当存储器需要将缓存数据写入磁盘时,存储器将缓存数据按照一定的刷盘策略刷入磁盘包括的多个LUN中。由于存储器每次刷盘时,刷盘页面并发数,即写入磁盘的页面数是固定的,而多个LUN的性能可能不同,因此,如何在多个LUN之间合理地分配刷盘页面并发数成为一个亟待解决的问题。

发明内容

[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] 图1是本发明实施例公开的一种缓存数据刷盘的网络架构的结构图;
[0042] 图2是本发明实施例公开的一种缓存数据刷盘方法的流程图;
[0043] 图3是本发明实施例公开的另一种缓存数据刷盘方法的流程图;
[0044] 图4是本发明实施例公开的一种缓存数据刷盘装置的结构图;
[0045] 图5是本发明实施例公开的另一种缓存数据刷盘装置的结构图;
[0046] 图6是本发明实施例公开的又一种缓存数据刷盘装置的结构图。

具体实施方式

[0047] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0048] 本发明实施例公开一种缓存数据刷盘方法及装置,用于将刷盘页面并发数合理地分配给磁盘中的多个逻辑单元号,以提高刷盘的灵活性。以下分别进行详细说明。
[0049] 为了更好地理解本发明实施例公开的一种缓存数据刷盘方法及装置,下面先对本发明实施例使用的网络架构进行描述。请参阅图1,图1是本发明实施例公开的一种缓存数据刷盘的网络架构的结构图。如图1所示,该缓存数据刷盘的网络架构可以包括服务器101、缓存(Cache)器102和磁盘103,其中:
[0050] 服务器101,用于与缓存器102进行通信,将存储的数据写入缓存器102中。
[0051] 缓存器102,用于与磁盘103进行通信,将服务器101写入的缓存数据刷盘至磁盘103中。
[0052] 磁盘103包括至少两个LUN,缓存器102刷盘至磁盘103中的数据分别刷盘至这些LUN中。
[0053] 基于图1所示的缓存数据刷盘的网络架构,请参阅图2,图2是本发明实施例公开的一种缓存数据刷盘方法的流程图。其中,该缓存数据刷盘方法是从缓存器的角度来描述的。如图2所示,该缓存数据刷盘方法可以包括以下步骤。
[0054] S201、当存在缓存数据时,获取磁盘包括的至少两个逻辑单元号的数据刷盘参数。
[0055] 本实施例中,当存在缓存数据时,可以时时地或周期性地获取磁盘包括的至少两个逻辑单元号的数据刷盘参数。其中,逻辑单元号的数据刷盘参数包括预设时间内写入逻辑单元号的缓存数据的容量以及逻辑单元号在预设时间内每次刷盘所需平均时间,因此,可以通过逻辑单元号的数据刷盘参数了解逻辑单元号的业务负载情况和逻辑单元号的刷盘耗时情况。
[0056] S202、根据每个逻辑单元号的数据刷盘参数计算逻辑单元号的优先级数。
[0057] 本实施例中,获取到磁盘包括的至少两个逻辑单元号的数据刷盘参数之后,将可以根据每个逻辑单元号的数据刷盘参数计算逻辑单元号的优先级数,即可以将预设时间内写入每个逻辑单元号的缓存数据的容量除以该逻辑单元号在预设时间内每次刷盘所需平均时间,以获得该逻辑单元号的优先级数。可见,逻辑单元号在预设时间内每次刷盘所需平均时间越短,逻辑单元号的优先级数越高;预设时间内写入逻辑单元号的缓存数据的容量越大,逻辑单元号的优先级数越高。
[0058] S203、根据每个逻辑单元号的优先级数和刷盘页面并发数确定逻辑单元号的刷盘页面数。
[0059] 本实施例中,由于逻辑单元号的优先级数越高,表明逻辑单元号处理数据的效率越高,可以为处理效率高的逻辑单元号分配较多的数据,为处理效率低的逻辑单元号分配较少的数据,以便在至少两个逻辑单元号之间合理地分配刷入磁盘的缓存数据。因此,在根据每个逻辑单元号的数据刷盘参数计算逻辑单元号的优先级数之后,将根据每个逻辑单元号的优先级数和刷盘页面并发数确定逻辑单元号的刷盘页面数,即将每个逻辑单元号的优先级数相加以得到所有逻辑单元号的总优先级数,之后将每个逻辑单元号的优先级数除以总优先级数以得到每个逻辑单元号的刷盘配额数,最后将每个逻辑单元号的刷盘配额数乘以刷盘页面并发数以得到每个逻辑单元号的刷盘页面数。其中,刷盘页面并发数是每次刷盘时写入磁盘的页面数量,逻辑单元号的刷盘页面数是每次刷盘时写入逻辑单元号的页面数量。
[0060] S204、根据每个逻辑单元号的刷盘页面数,将缓存数据中的全部或部分缓存数据刷盘至至少两个逻辑单元号中。
[0061] 本实施例中,根据每个逻辑单元号的优先级数和刷盘页面并发数确定逻辑单元号的刷盘页面数之后,将根据每个逻辑单元号的刷盘页面数,将缓存数据中的全部或部分缓存数据刷盘至至少两个逻辑单元号中。
[0062] 在图2所描述的缓存数据刷盘方法中,当存在缓存数据时,可以根据逻辑单元号的数据刷盘参数计算逻辑单元号的优先级数,并根据逻辑单元号的优先级数和刷盘页面并发数确定逻辑单元号的刷盘页面数,之后根据逻辑单元号的刷盘页面数将缓存数据中的全部或部分缓存数据刷盘至逻辑单元号,因此,可以将刷盘页面并发数合理地分配给磁盘中的多个逻辑单元号,以便提高刷盘的灵活性。
[0063] 基于图1所示的缓存数据刷盘的网络架构,请参阅图3,图3是本发明实施例公开的另一种缓存数据刷盘方法的流程图。其中,该缓存数据刷盘方法是从缓存器的角度来描述的。如图3所示,该缓存数据刷盘方法可以包括以下步骤。
[0064] S301、当存在缓存数据时,获取磁盘包括的至少两个逻辑单元号的数据刷盘参数。
[0065] 本实施例中,当存在缓存数据时,可以时时地或周期性地获取磁盘包括的至少两个逻辑单元号的数据刷盘参数。其中,逻辑单元号的数据刷盘参数包括预设时间内写入逻辑单元号的缓存数据的容量以及逻辑单元号在预设时间内每次刷盘所需平均时间,因此,可以通过逻辑单元号的数据刷盘参数了解逻辑单元号的业务负载情况和逻辑单元号的刷盘耗时情况。
[0066] S302、根据每个逻辑单元号的数据刷盘参数计算逻辑单元号的优先级数。
[0067] 本实施例中,获取到磁盘包括的至少两个逻辑单元号的数据刷盘参数之后,将可以根据每个逻辑单元号的数据刷盘参数计算逻辑单元号的优先级数,即可以将预设时间内写入每个逻辑单元号的缓存数据的容量除以该逻辑单元号在预设时间内每次刷盘所需平均时间,以获得该逻辑单元号的优先级数。可见,逻辑单元号在预设时间内每次刷盘所需平均时间越短,逻辑单元号的优先级数越高;预设时间内写入逻辑单元号的缓存数据的容量越大,逻辑单元号的优先级数越高。
[0068] S303、获取缓存数据的容量,以及根据预设的刷盘页面并发数与缓存数据的容量区间的对应关系获取缓存数据的容量对应的刷盘页面并发数。
[0069] 本实施例中,刷盘页面并发数是每次刷盘时写入磁盘的页面数量,可以将刷盘页面并发数与缓存数据的容量的大小联系在一起,例如:当缓存数据的容量较大时,可以增加刷盘页面并发数,以便较快的将缓存数据刷盘至磁盘中;当缓存数据的容量较小时,可以减小刷盘页面并发数,以便减小磁盘的负荷。
[0070] 本实施例中,可以预先将缓存数据的容量划分为多个区间,每个区间分配一个刷盘页面并发数,因此,可以获取缓存数据的容量,以及根据预设的刷盘页面并发数与缓存数据的容量区间的对应关系获取当前缓存数据的容量对应的刷盘页面并发数。其中,步骤S303可以与步骤S301和步骤S302并行执行或串行执行,也可以在步骤S302与步骤S304之间执行或与步骤S304并行执行,还可以在步骤S304的判断结果为是之后以及步骤S305之前执行,还可以不执行步骤S303,本实施例不作限定。
[0071] S304、判断计算的目标逻辑单元号的优先级数与计算前目标逻辑单元号的优先级数的差值的绝对值是否大于预设值,若大于,则执行步骤S305,若不大于,则结束。
[0072] 本实施例中,可以先判断计算的目标逻辑单元号的优先级数与计算前目标逻辑单元号的优先级数的差值的绝对值是否大于预设值,若大于,则表明至少两个逻辑单元号中有逻辑单元号的业务负载情况和/或逻辑单元号的刷盘耗时情况发生了较大的变化,将执行步骤S305;若不大于,则表明至少两个逻辑单元号中无逻辑单元号的业务负载情况和/或逻辑单元号的刷盘耗时情况发生较大变化,将结束。其中,目标逻辑单元号是至少两个逻辑单元号中的任一逻辑单元号。
[0073] S305、根据每个逻辑单元号的优先级数和刷盘页面并发数确定逻辑单元号的刷盘页面数。
[0074] 本实施例中,由于逻辑单元号的优先级数越高,表明逻辑单元号处理数据的效率越高,可以为处理效率高的逻辑单元号分配较多的数据,为处理效率低的逻辑单元号分配较少的数据,以便在至少两个逻辑单元号之间合理地分配刷入磁盘的缓存数据。因此,在根据每个逻辑单元号的数据刷盘参数计算逻辑单元号的优先级数之后,或者计算的目标逻辑单元号的优先级数与计算前目标逻辑单元号的优先级数的差值的绝对值大于预设值之后,或者根据预设的刷盘页面并发数与缓存数据的容量区间的对应关系获取缓存数据的容量对应的刷盘页面并发数之后,将根据每个逻辑单元号的优先级数和刷盘页面并发数确定逻辑单元号的刷盘页面数,即将每个逻辑单元号的优先级数相加以得到所有逻辑单元号的总优先级数,之后将每个逻辑单元号的优先级数除以总优先级数以得到每个逻辑单元号的刷盘配额数,最后将每个逻辑单元号的刷盘配额数乘以刷盘页面并发数以得到每个逻辑单元号的刷盘页面数。其中,逻辑单元号的刷盘页面数是每次刷盘时写入逻辑单元号的页面数量。
[0075] S306、根据每个逻辑单元号的刷盘页面数,将缓存数据中的全部或部分缓存数据刷盘至至少两个逻辑单元号中。
[0076] 本实施例中,根据每个逻辑单元号的优先级数和刷盘页面并发数确定逻辑单元号的刷盘页面数之后,将根据每个逻辑单元号的刷盘页面数,将缓存数据中的全部或部分缓存数据刷盘至至少两个逻辑单元号中。
[0077] 在图3所描述的缓存数据刷盘方法中,当存在缓存数据时,可以根据逻辑单元号的数据刷盘参数计算逻辑单元号的优先级数,并根据逻辑单元号的优先级数和刷盘页面并发数确定逻辑单元号的刷盘页面数,之后根据逻辑单元号的刷盘页面数将缓存数据中的全部或部分缓存数据刷盘至逻辑单元号,因此,可以将刷盘页面并发数合理地分配给磁盘中的多个逻辑单元号,以便提高刷盘的灵活性。
[0078] 基于图1所示的缓存数据刷盘的网络架构,请参阅图4,图4是本发明实施例公开的一种缓存数据刷盘装置的结构图。其中,缓存数据刷盘装置可以为缓存器。如图4所示,该缓存数据刷盘装置400可以包括:
[0079] 获取单元401,用于当存在缓存数据时,获取磁盘包括的至少两个逻辑单元号的数据刷盘参数;
[0080] 计算单元402,用于根据获取单元401获取的每个逻辑单元号的数据刷盘参数计算该逻辑单元号的优先级数;
[0081] 确定单元403,用于根据计算单元402计算的每个逻辑单元号的优先级数和刷盘页面并发数确定该逻辑单元号的刷盘页面数,刷盘页面并发数是每次刷盘时写入磁盘的页面数量,逻辑单元号的刷盘页面数是每次刷盘时写入逻辑单元号的页面数量;
[0082] 刷盘单元404,用于根据确定单元403确定的每个逻辑单元号的刷盘页面数,将缓存数据中的全部或部分缓存数据刷盘至至少两个逻辑单元号中。
[0083] 在图4所描述的缓存数据刷盘装置中,当存在缓存数据时,可以根据逻辑单元号的数据刷盘参数计算逻辑单元号的优先级数,并根据逻辑单元号的优先级数和刷盘页面并发数确定逻辑单元号的刷盘页面数,之后根据逻辑单元号的刷盘页面数将缓存数据中的全部或部分缓存数据刷盘至逻辑单元号,因此,可以将刷盘页面并发数合理地分配给磁盘中的多个逻辑单元号,以便提高刷盘的灵活性。
[0084] 基于图1所示的缓存数据刷盘的网络架构,请参阅图5,图5是本发明实施例公开的另一种缓存数据刷盘装置的结构图。其中,缓存数据刷盘装置可以为缓存器。如图5所示,该缓存数据刷盘装置500可以包括:
[0085] 第一获取单元501,用于当存在缓存数据时,获取磁盘包括的至少两个逻辑单元号的数据刷盘参数;
[0086] 计算单元502,用于根据第一获取单元501获取的每个逻辑单元号的数据刷盘参数计算该逻辑单元号的优先级数;
[0087] 确定单元503,用于根据计算单元502计算的每个逻辑单元号的优先级数和刷盘页面并发数确定该逻辑单元号的刷盘页面数,刷盘页面并发数是每次刷盘时写入磁盘的页面数量,逻辑单元号的刷盘页面数是每次刷盘时写入逻辑单元号的页面数量;
[0088] 刷盘单元504,用于根据确定单元503确定的每个逻辑单元号的刷盘页面数,将缓存数据中的全部或部分缓存数据刷盘至至少两个逻辑单元号中。
[0089] 作为一种可能的实施方式,每个逻辑单元号的数据刷盘参数包括预设时间内写入该逻辑单元号的缓存数据的容量以及该逻辑单元号在预设时间内每次刷盘所需平均时间;
[0090] 计算单元502,具体用于将预设时间内写入每个逻辑单元号的缓存数据的容量除以逻辑单元号在预设时间内每次刷盘所需平均时间,以获得逻辑单元号的优先级数。
[0091] 作为一种可能的实施方式,确定单元503可以包括:
[0092] 加法子单元5031,用于将计算单元502计算的每个逻辑单元号的优先级数相加,以获得总优先级数;
[0093] 除法子单元5032,用于将每个逻辑单元号的优先级数除以加法子单元5031获得的总优先级数,以获得该逻辑单元号的刷盘配额数;
[0094] 乘法子单元5033,用于将除法子单元5032获得的每个逻辑单元号的刷盘配额数乘以刷盘页面并发数,以获得该逻辑单元号的刷盘页面数。
[0095] 作为一种可能的实施方式,该缓存数据刷盘装置500还可以包括:
[0096] 第二获取单元505,用于获取缓存数据的容量;
[0097] 第三获取单元506,用于根据预设的刷盘页面并发数与缓存数据的容量区间的对应关系,获取第二获取单元505获取的缓存数据的容量对应的刷盘页面并发数。
[0098] 具体地,确定单元503,用于根据计算单元502计算的每个逻辑单元号的优先级数和第三获取单元506获取的刷盘页面并发数确定该逻辑单元号的刷盘页面数。
[0099] 作为一种可能的实施方式,该缓存数据刷盘装置500还可以包括:
[0100] 判断单元507,用于判断计算单元502计算的目标逻辑单元号的优先级数与计算前目标逻辑单元号的优先级数的差值的绝对值是否大于预设值,当判断单元507的判断结果为是时,则触发确定单元503执行所述根据每个逻辑单元号的优先级数和刷盘页面并发数确定该逻辑单元号的刷盘页面数的步骤;
[0101] 其中,目标逻辑单元号是至少两个逻辑单元号中的任一逻辑单元号。
[0102] 具体地,计算单元502根据第一获取单元501获取的每个逻辑单元号的数据刷盘参数计算该逻辑单元号的优先级数,将触发判断单元507判断计算单元502计算的目标逻辑单元号的优先级数与计算前目标逻辑单元号的优先级数的差值的绝对值是否大于预设值。
[0103] 在图5所描述的缓存数据刷盘装置中,当存在缓存数据时,可以根据逻辑单元号的数据刷盘参数计算逻辑单元号的优先级数,并根据逻辑单元号的优先级数和刷盘页面并发数确定逻辑单元号的刷盘页面数,之后根据逻辑单元号的刷盘页面数将缓存数据中的全部或部分缓存数据刷盘至逻辑单元号,因此,可以将刷盘页面并发数合理地分配给磁盘中的多个逻辑单元号,以便提高刷盘的灵活性。
[0104] 基于图1所示的缓存数据刷盘的网络架构,请参阅图6,图6是本发明实施例公开的又一种缓存数据刷盘装置的结构图。其中,该缓存数据刷盘装置可以为存储器。如图6所示,该缓存数据刷盘装置600可以包括处理器601、存储器602、输入装置603和输出装置604,处理器601与存储器602之间、处理器601与输入装置603之间以及处理器601与输出装置604之间可以通过总线或其它方式连接,其中,本实施例中是以总线连接的方式为例。其中:
[0105] 输入装置603,用于接收服务器写入的缓存数据,并将缓存数据发送至处理器601;
[0106] 存储器602中存储有一组程序代码,处理器601用于调用存储器602存储的程序代码执行以下操作:
[0107] 当存在缓存数据时,获取磁盘包括的至少两个逻辑单元号的数据刷盘参数;
[0108] 根据每个逻辑单元号的数据刷盘参数计算该逻辑单元号的优先级数;
[0109] 根据每个逻辑单元号的优先级数和刷盘页面并发数确定该逻辑单元号的刷盘页面数,刷盘页面并发数是每次刷盘时写入磁盘的页面数量,逻辑单元号的刷盘页面数是每次刷盘时写入该逻辑单元号的页面数量;
[0110] 输出装置604,用于根据每个逻辑单元号的刷盘页面数,将缓存数据中的全部或部分缓存数据刷盘至磁盘包括的至少两个逻辑单元号中。
[0111] 作为一种可能的实施方式,每个逻辑单元号的数据刷盘参数包括预设时间内写入该逻辑单元号的缓存数据的容量以及该逻辑单元号在预设时间内每次刷盘所需平均时间;
[0112] 处理器601根据每个逻辑单元号的数据刷盘参数计算该逻辑单元号的优先级数的方式具体为:
[0113] 将预设时间内写入每个逻辑单元号的缓存数据的容量除以该逻辑单元号在预设时间内每次刷盘所需平均时间,以获得该逻辑单元号的优先级数。
[0114] 作为一种可能的实施方式,处理器601根据每个逻辑单元号的优先级数和刷盘页面并发数确定该逻辑单元号的刷盘页面数的方式具体为:
[0115] 将每个逻辑单元号的优先级数相加,以获得总优先级数;
[0116] 将每个逻辑单元号的优先级数除以总优先级数,以获得该逻辑单元号的刷盘配额数;
[0117] 将每个逻辑单元号的刷盘配额数乘以刷盘页面并发数,以获得该逻辑单元号的刷盘页面数。
[0118] 作为一种可能的实施方式,处理器601还用于调用存储器602存储的程序代码执行以下操作:
[0119] 获取缓存数据的容量;
[0120] 根据预设的刷盘页面并发数与缓存数据的容量区间的对应关系,获取缓存数据的容量对应的刷盘页面并发数。
[0121] 作为一种可能的实施方式,处理器601根据每个逻辑单元号的数据刷盘参数计算该逻辑单元号的优先级数之后,处理器601还用于调用存储器602存储的程序代码执行以下操作:
[0122] 判断计算的目标逻辑单元号的优先级数与计算前目标逻辑单元号的优先级数的差值的绝对值是否大于预设值,若大于,则执行所述根据每个逻辑单元号的优先级数和刷盘页面并发数确定该逻辑单元号的刷盘页面数的步骤;
[0123] 其中,目标逻辑单元号是至少两个逻辑单元号中的任一逻辑单元号。
[0124] 在图6所描述的缓存数据刷盘装置中,当存在缓存数据时,可以根据逻辑单元号的数据刷盘参数计算逻辑单元号的优先级数,并根据逻辑单元号的优先级数和刷盘页面并发数确定逻辑单元号的刷盘页面数,之后根据逻辑单元号的刷盘页面数将缓存数据中的全部或部分缓存数据刷盘至逻辑单元号,因此,可以将刷盘页面并发数合理地分配给磁盘中的多个逻辑单元号,以便提高刷盘的灵活性。
[0125] 需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0126] 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
[0127] 以上对本发明实施例所提供的缓存数据刷盘方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。