书签 分享 收藏 举报 版权申诉 / 23

缓存数据的确定方法及装置.pdf

  • 上传人:1520****312
  • 文档编号:1743512
  • 上传时间:2018-07-08
  • 格式:PDF
  • 页数:23
  • 大小:1.66MB
  • 摘要
    申请专利号:

    CN201510105461.X

    申请日:

    2015.03.11

    公开号:

    CN104699422A

    公开日:

    2015.06.10

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G06F 3/06申请日:20150311|||公开

    IPC分类号:

    G06F3/06; G06F12/08

    主分类号:

    G06F3/06

    申请人:

    华为技术有限公司

    发明人:

    柴云鹏; 孙东旺

    地址:

    518129广东省深圳市龙岗区坂田华为总部办公楼

    优先权:

    专利代理机构:

    北京三高永信知识产权代理有限责任公司11138

    代理人:

    罗振安

    PDF完整版下载: PDF下载
    内容摘要

    本发明公开一种缓存数据的确定方法及装置,属于计算机技术领域。包括:获取所读取的缓存缺失数据的数据标识;基于获取的数据标识选择待定数据的数据标识;将各个数据标识进行分组记录;统计各个数据标识在各个分组中的出现次数;根据出现次数选择目标待定数据,将目标待定数据确定为写入缓存存储器的缓存缺失数据。通过将各个数据标识进行分组记录,统计各个数据标识在各个分组中的出现次数后,根据出现次数选择目标待定数据,将目标待定数据确定为写入缓存存储器的缓存缺失数据。由于出现次数多能标识缓存缺失数据的读取次数比较多,因而可选出读取次数高的好数据,从而能提高缓存存储器中存储的好数据的比例,进而能提高后续数据读取的命中率。

    权利要求书

    权利要求书
    1.  一种缓存数据的确定方法,其特征在于,所述方法包括:
    获取所读取的缓存缺失数据的数据标识,所述数据标识用于区分不同的缓 存缺失数据;
    基于获取的缓存缺失数据的数据标识选择待定数据的数据标识;
    将各个待定数据的数据标识进行分组记录;
    统计所述各个待定数据的数据标识在各个分组中的出现次数;
    根据所述出现次数选择目标待定数据,将所述目标待定数据确定为写入缓 存存储器的缓存缺失数据。

    2.  根据权利要求1所述的方法,其特征在于,所述各个分组构成一个时间 窗口序列,所述时间窗口序列包括至少两个时间窗口,每个时间窗口包括第一 预设数值个第一存储单元,每两个时间窗口之间间隔第二预设数值个第二存储 单元;
    所述将各个待定数据的数据标识进行分组记录,包括:
    将各个待定数据的数据标识按顺序分别记录至所述时间窗口序列的各个第 一存储单元中;
    所述统计所述各个待定数据的数据标识在各个分组中的出现次数,包括:
    统计所述各个待定数据的数据标识在所述时间窗口序列的各个时间窗口中 的出现次数。

    3.  根据权利要求2所述的方法,其特征在于,所述统计所述各个待定数据 的数据标识在所述时间窗口序列的各个时间窗口中的出现次数,包括:
    统计所述时间窗口序列的各个时间窗口中记录同一数据标识的第一存储单 元的数量;
    根据所述记录同一数据标识的第一存储单元的数量,确定所述各个待定数 据的数据标识在所述时间窗口序列的各个时间窗口中的出现次数。

    4.  根据权利要求3所述的方法,其特征在于,所述统计所述时间窗口序列 的各个时间窗口中记录同一数据标识的第一存储单元的数量,包括:
    当所述时间窗口序列中的所有第一存储单元均被填满时,统计所述时间窗 口序列的各个时间窗口中记录同一数据标识的第一存储单元的数量。

    5.  根据权利要求3所述的方法,其特征在于,所述统计所述时间窗口序列 的各个时间窗口中记录同一数据标识的第一存储单元的数量之后,还包括:
    清除所述时间窗口序列的各个第一存储单元中存储的数据标识,以通过所 述时间窗口序列记录后续数据读取过程中选择的待定数据的数据标识。

    6.  根据权利要求1至5中任一权利要求所述的方法,其特征在于,所述根 据所述出现次数选择目标待定数据,将所述目标待定数据确定为写入缓存存储 器的缓存缺失数据,包括:
    选择出现次数不小于预设阈值的待定数据,将所述出现次数不小于预设阈 值的待定数据作为目标待定数据,将所述目标待定数据确定为写入缓存存储器 的缓存缺失数据。

    7.  根据权利要求1至6中任一权利要求所述的方法,其特征在于,所述根 据所述出现次数选择目标待定数据,将所述目标待定数据确定为写入缓存存储 器的缓存缺失数据之后,还包括:
    将所述目标待定数据的数据标识添加至预设白名单中,所述预设白名单包 括第四预设数值个第三存储单元,每个第三存储单元可记录一个目标待定数据 的数据标识;
    当后续读取的缓存缺失数据命中所述预设白名单中的任一个数据标识对应 的目标待定数据时,将命中的目标待定数据写入所述缓存存储器。

    8.  根据权利要求7所述的方法,其特征在于,所述将命中的目标待定数据 写入所述缓存存储器,包括:
    当所述缓存存储器的存储空间还未满时,根据所述命中的目标待定数据的 数据大小直接将所述命中的目标待定数据写入所述缓存存储器;
    当所述缓存存储器的存储空间已满时,根据预设缓存替换算法淘汰所述缓 存存储器中所述数据大小的存储空间所存储的数据,将所述命中的目标待定数 据写入被淘汰数据对应的存储位置。

    9.  一种缓存数据的确定装置,其特征在于,所述装置包括:
    获取模块,用于获取所读取的缓存缺失数据的数据标识,所述数据标识用 于区分不同的缓存缺失数据;
    选择模块,用于基于获取的缓存缺失数据的数据标识选择待定数据的数据 标识;
    记录模块,用于将各个待定数据的数据标识进行分组记录;
    统计模块,用于统计所述各个待定数据的数据标识在各个分组中的出现次 数;
    确定模块,用于根据所述出现次数选择目标待定数据,将所述目标待定数 据确定为写入缓存存储器的缓存缺失数据。

    10.  根据权利要求9所述的装置,其特征在于,所述各个分组构成一个时 间窗口序列,所述时间窗口序列包括至少两个时间窗口,每个时间窗口包括第 一预设数值个第一存储单元,每两个时间窗口之间间隔第二预设数值个第二存 储单元;
    所述记录模块,用于将各个待定数据的数据标识按顺序分别记录至所述时 间窗口序列的各个第一存储单元中;
    所述统计模块,用于统计所述各个待定数据的数据标识在所述时间窗口序 列的各个时间窗口中的出现次数。

    11.  根据权利要求10所述的装置,其特征在于,所述统计模块包括:
    统计单元,用于统计所述时间窗口序列的各个时间窗口中记录同一数据标 识的第一存储单元的数量;
    确定单元,用于根据所述记录同一数据标识的第一存储单元的数量,确定 所述各个待定数据的数据标识在所述时间窗口序列的各个时间窗口中的出现次 数。

    12.  根据权利要求11所述的装置,其特征在于,所述统计单元,用于当所 述时间窗口序列中的所有第一存储单元均被填满时,统计所述时间窗口序列的 各个时间窗口中记录同一数据标识的第一存储单元的数量。

    13.  根据权利要求11所述的装置,其特征在于,所述统计模块还包括:
    清除单元,用于清除所述时间窗口序列的各个第一存储单元中存储的数据 标识,以通过所述时间窗口序列记录后续数据读取过程中选择的待定数据的数 据标识。

    14.  根据权利要求9至13中任一权利要求所述的装置,其特征在于,所述 确定模块,用于选择出现次数不小于预设阈值的待定数据,将所述出现次数不 小于预设阈值的待定数据作为目标待定数据,将所述目标待定数据确定为写入 缓存存储器的缓存缺失数据。

    15.  根据权利要求9至14中任一权利要求所述的装置,其特征在于,所述 装置还包括:
    添加模块,用于将所述目标待定数据的数据标识添加至预设白名单中,所 述预设白名单包括第四预设数值个第三存储单元,每个第三存储单元可记录一 个目标待定数据的数据标识;
    写入模块,用于当后续读取的缓存缺失数据命中所述预设白名单中的任一 个数据标识对应的目标待定数据时,将命中的目标待定数据写入所述缓存存储 器。

    16.  根据权利要求15所述的装置,其特征在于,所述写入模块用于:
    当所述缓存存储器的存储空间还未满时,根据所述命中的目标待定数据的 数据大小直接将所述命中的目标待定数据写入所述缓存存储器;
    当所述缓存存储器的存储空间已满时,根据预设缓存替换算法淘汰所述缓 存存储器中所述数据大小的存储空间所存储的数据,将所述命中的目标待定数 据写入被淘汰数据对应的存储位置。

    说明书

    说明书缓存数据的确定方法及装置
    技术领域
    本发明涉及计算机技术领域,特别涉及一种缓存数据的确定方法及装置。
    背景技术
    计算机的处理器在处理数据的过程中,由于处理器从缓存存储器读取数据 的速度比从磁盘中读取数据的速度快,为了加快数据处理速度,随着数据处理 过程的不断进行,处理器会不断挑选出访问量比较高的好数据,并将这些好数 据存储于缓存存储器中一份。在此基础上,处理器在处理数据时,如果所需数 据已存储于缓存存储器,则直接从缓存存储器读取数据,该数据为缓存命中数 据;如果所需数据还未存储于缓存存储器,则从磁盘读取所需数据,该数据为 缓存缺失数据。为了加快数据处理速度,对于缓存缺失数据中访问量比较高的 数据,可以将其写入缓存存储器,确保后续处理器需要该数据时,可以直接从 缓存存储器读取该数据。然而,由于有些缓存存储器的写入次数有限,如SSD (Solid State Disk,固态硬盘),频繁向该类缓存存储器写入数据会降低该类缓 存存储器的使用寿命。因此,在向该类缓存存储器写入数据之前,需要从所有 的缓存缺失数据中,确定可以写入该类缓存存储器的缓存缺失数据。
    相关技术在确定哪些缓存缺失数据可以写入缓存存储器时,通常采用的方 法为:从所有缓存缺失数据中,随机选择部分缓存缺失数据,将该选择的缓存 缺失数据作为可以写入缓存存储器的缓存缺失数据。
    在实现本发明的过程中,发明人发现相关技术至少存在以下问题:
    缓存缺失数据分为访问量高的好数据、访问量居中的一般数据和访问量低 的差数据。由于相关技术在确定缓存缺失数据时,仅是随机选择缓存缺失数据, 因此,好数据、一般数据和差数据被选中的概率相等,使写入缓存存储器的好 数据、一般数据和差数据的比例相等,导致处理器后续从缓存存储器读取数据 时的命中率不高。
    发明内容
    为了提高缓存存储器中存储的访问次数比较高的好数据的比例,从而提高 处理器后续从缓存存储器读取数据时的命中率,本发明实施例提供了一种缓存 数据的确定方法及装置。所述技术方案如下:
    第一方面,提供了一种缓存数据的确定方法,所述方法包括:
    获取所读取的缓存缺失数据的数据标识,所述数据标识用于区分不同的缓 存缺失数据;
    基于获取的缓存缺失数据的数据标识选择待定数据的数据标识;
    将各个待定数据的数据标识进行分组记录;
    统计所述各个待定数据的数据标识在各个分组中的出现次数;
    根据所述出现次数选择目标待定数据,将所述目标待定数据确定为写入缓 存存储器的缓存缺失数据。
    结合第一方面,在第一方面的第一种可能的实现方式中,所述各个分组构 成一个时间窗口序列,所述时间窗口序列包括至少两个时间窗口,每个时间窗 口包括第一预设数值个第一存储单元,每两个时间窗口之间间隔第二预设数值 个第二存储单元;
    所述将各个待定数据的数据标识进行分组记录,包括:
    将各个待定数据的数据标识按顺序分别记录至所述时间窗口序列的各个第 一存储单元中;
    所述统计所述各个待定数据的数据标识在各个分组中的出现次数,包括:
    统计所述各个待定数据的数据标识在所述时间窗口序列的各个时间窗口中 的出现次数。
    结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现 方式中,所述统计所述各个待定数据的数据标识在所述时间窗口序列的各个时 间窗口中的出现次数,包括:
    统计所述时间窗口序列的各个时间窗口中记录同一数据标识的第一存储单 元的数量;
    根据所述记录同一数据标识的第一存储单元的数量,确定所述各个待定数 据的数据标识在所述时间窗口序列的各个时间窗口中的出现次数。
    结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现 方式中,所述统计所述时间窗口序列的各个时间窗口中记录同一数据标识的第 一存储单元的数量,包括:
    当所述时间窗口序列中的所有第一存储单元均被填满时,统计所述时间窗 口序列的各个时间窗口中记录同一数据标识的第一存储单元的数量。
    结合第一方面的第二种可能的实现方式,在第一方面的第四种可能的实现 方式中,所述统计所述时间窗口序列的各个时间窗口中记录同一数据标识的第 一存储单元的数量之后,还包括:
    清除所述时间窗口序列的各个第一存储单元中存储的数据标识,以通过所 述时间窗口序列记录后续数据读取过程中选择的待定数据的数据标识。
    结合第一方面至第一方面的第四种可能的实现方式中的任一种可能的实现 方式,在第一方面的第五种可能的实现方式中,所述根据所述出现次数选择目 标待定数据,将所述目标待定数据确定为写入缓存存储器的缓存缺失数据,包 括:
    选择出现次数不小于预设阈值的待定数据,将所述出现次数不小于预设阈 值的待定数据作为目标待定数据,将所述目标待定数据确定为写入缓存存储器 的缓存缺失数据。
    结合第一方面至第一方面的第五种可能的实现方式中的任一种可能的实现 方式,在第一方面的第六种可能的实现方式中,所述将所述目标待定数据确定 为写入缓存存储器的缓存缺失数据之后,还包括:
    将所述目标待定数据的数据标识添加至预设白名单中,所述预设白名单包 括第四预设数值个第三存储单元,每个第三存储单元可记录一个目标待定数据 的数据标识;
    当后续读取的缓存缺失数据命中所述预设白名单中的任一个数据标识对应 的目标待定数据时,将命中的目标待定数据写入所述缓存存储器。
    结合第一方面的第六种可能的实现方式,在第一方面的第七种可能的实现 方式中,所述将命中的目标待定数据写入所述缓存存储器,包括:
    当所述缓存存储器的存储空间还未满时,根据所述命中的目标待定数据的 数据大小直接将所述命中的目标待定数据写入所述缓存存储器;
    当所述缓存存储器的存储空间已满时,根据预设缓存替换算法淘汰所述缓 存存储器中所述数据大小的存储空间所存储的数据,将所述命中的目标待定数 据写入被淘汰数据对应的存储位置。
    第二方面,提供了一种缓存数据的确定装置,所述装置包括:
    获取模块,用于获取所读取的缓存缺失数据的数据标识,所述数据标识用 于区分不同的缓存缺失数据;
    选择模块,用于基于获取的缓存缺失数据的数据标识选择待定数据的数据 标识;
    记录模块,用于将各个待定数据的数据标识进行分组记录;
    统计模块,用于统计所述各个待定数据的数据标识在各个分组中的出现次 数;
    确定模块,用于根据所述出现次数选择目标待定数据,将所述目标待定数 据确定为写入缓存存储器的缓存缺失数据。
    结合第二方面,在第二方面的第一种可能的实现方式中,所述各个分组构 成一个时间窗口序列,所述时间窗口序列包括至少两个时间窗口,每个时间窗 口包括第一预设数值个第一存储单元,每两个时间窗口之间间隔第二预设数值 个第二存储单元;
    所述记录模块,用于将各个待定数据的数据标识按顺序分别记录至所述时 间窗口序列的各个第一存储单元中;
    所述统计模块,用于统计所述各个待定数据的数据标识在所述时间窗口序 列的各个时间窗口中的出现次数。
    结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现 方式中,所述统计模块包括:
    统计单元,用于统计所述时间窗口序列的各个时间窗口中记录同一数据标 识的第一存储单元的数量;
    第一确定单元,用于根据所述记录同一数据标识的第一存储单元的数量, 确定所述各个待定数据的数据标识在所述时间窗口序列的各个时间窗口中的出 现次数。
    结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现 方式中,所述统计单元,用于当所述时间窗口序列中的所有第一存储单元均被 填满时,统计所述时间窗口序列的各个时间窗口中记录同一数据标识的第一存 储单元的数量。
    结合第二方面的第二种可能的实现方式,在第二方面的第四种可能的实现 方式中,所述统计模块还包括:
    清除单元,用于清除所述时间窗口序列的各个第一存储单元中存储的数据 标识,以通过所述时间窗口序列记录后续数据读取过程中选择的待定数据的数 据标识。
    结合第二方面至第二方面的第四种可能的实现方式中的任一种可能的实现 方式,在第二方面的第五种可能的实现方式中,所述确定模块,用于选择出现 次数不小于预设阈值的待定数据作为目标待定数据,将所述目标待定数据确定 为写入缓存存储器的缓存缺失数据。
    结合第二方面至第二方面的第五种可能的实现方式中的任一种可能的实现 方式,在第二方面的第六种可能的实现方式中,所述装置还包括:
    添加模块,用于将所述目标待定数据的数据标识添加至预设白名单中,所 述预设白名单包括第四预设数值个第三存储单元,每个第三存储单元可记录一 个目标待定数据的数据标识;
    写入模块,用于当后续读取的缓存缺失数据命中所述预设白名单中的任一 个数据标识对应的目标待定数据时,将命中的目标待定数据写入所述缓存存储 器。
    结合第二方面的第六种可能的实现方式,在第二方面的第七种可能的实现 方式中,所述写入模块用于:
    当所述缓存存储器的存储空间还未满时,根据所述命中的目标待定数据的 数据大小直接将所述命中的目标待定数据写入所述缓存存储器;
    当所述缓存存储器的存储空间已满时,根据预设缓存替换算法淘汰所述缓 存存储器中所述数据大小的存储空间所存储的数据,将所述命中的目标待定数 据写入被淘汰数据对应的存储位置。
    本发明实施例提供的技术方案带来的有益效果是:
    通过将各个待定数据的数据标识进行分组记录,并统计各个待定数据的数 据标识在各个分组中的出现次数后,根据出现次数选择目标待定数据,并将目 标待定数据确定为写入缓存存储器的缓存缺失数据。由于出现次数多能够标识 该缓存缺失数据的被读取次数比较多,因而可以从所读取的缓存缺失数据中选 择出被读取次数多的好数据,从而能够提高缓存存储器中存储的好数据的比例, 进而能够提高处理器后续从缓存存储器读取数据时的命中率。
    附图说明
    为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所 需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。
    图1是本发明一实施例提供的缓存数据的确定方法所涉及的系统架构图;
    图2是本发明另一实施例提供的一种缓存数据的确定方法的流程图;
    图3是本发明另一实施例提供的一种缓存数据的确定方法的流程图;
    图4是本发明另一实施例提供的一种时间窗口序列的示意图;
    图5是本发明另一实施例提供的一种缓存数据的确定装置的结构示意图;
    图6是本发明另一实施例提供的一种缓存数据的确定装置的结构示意图。
    具体实施方式
    为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明 实施方式作进一步地详细描述。
    如图1所示,其示出了本发明实施例提供的缓存数据的确定方法所涉及的 系统架构图。如图1所示,该系统架构包括处理器101、内存102、缓存存储器 103和磁盘104。处理器101所需数据可以存储在内存102、缓存存储器103和 磁盘104这三种存储介质中。其中,这三种存储介质的介质访问速度的顺序是 内存102>缓存存储器103>磁盘104,而容量大小的顺序是内存102<缓存存储 器103<磁盘104。综合考虑成本,内存102和缓存存储器103常分别用于第一、 二级缓存,以加速数据处理速度。具体地,处理器101在读取数据时,一般通 过DMA(Direct Memory Access,直接内存存取)技术实现,即处理器101在从 缓存存储器103或磁盘104读取数据时,先将数据读到内存102中,然后再从 内存102中读取。也就是说,处理器101在读取数据时,先从内存102读取数 据,如果内存102没有所需数据,则从缓存存储器103读取所需数据,如果缓 存存储器103仍然没有所需数据,再从磁盘104读取数据。
    其中,本发明实施例针对当内存102中没有处理器101所需的数据时,处 理器101需要从缓存存储器103或磁盘104读取数据的情况,提出一种缓存数 据的确定方法。具体地,由于处理器101从缓存存储器103读取数据的速度比 从磁盘104读取数据的速度快,因此,随着数据处理过程的不断进行,处理器 101会在缓存存储器103中存储一份访问量比较高的好数据,以便后续读取数据 时,处理器101可以直接从缓存存储器103读取这些数据,而无需再访问磁盘 104。为了便于说明,在本发明实施例中,将缓存存储器103中已经存储的数据 定义为缓存命中数据,而将缓存存储器103中未存储、处理器103需要从磁盘 104读取的数据定义为缓存缺失数据。
    另外,由于有些缓存存储器103的写入次数有限,如SSD,如果向该类缓 存存储器103写入的数据为访问量不高的数据,即该数据不是处理器101经常 需要的数据。在此种情况下,处理器101后续可能不能从缓存存储器103中获 取到所需数据,即缓存命中率不高。此时,为了提高缓存命中率,会对缓存存 储器103中已缓存的数据进行替换,以淘汰掉那些访问量不高的数据,并进一 步重新向缓存存储器103写入新数据。而这种数据替换行为将会使缓存存储器 103的数据进行频繁更新。然而,如果缓存存储器103的写入次数有限,则频繁 更新数据将会降低缓存存储器103的使用寿命。综上,向该类缓存存储器103 写入数据时,应该保证写入的缓存缺失数据中有较高比例的访问量比较高的好 数据,以避免该类缓存存储器103因频繁数据更新数据而降低使用寿命。
    结合上述内容,在向该类缓存存储器103写入数据之前,需要从所有的缓 存缺失数据中,确定可以写入该类缓存存储器103的缓存缺失数据,以提高缓 存存储器103中好数据的比例,进而提高处理器101从缓存存储器103读取数 据时的命中率。具体的缓存数据的确定方法详见下述各个实施例:
    结合图1所示的系统架构示意图,图2是根据一示例性实施例提供的一种 缓存数据的确定方法的流程图。如图2所示,本发明实施例提供的方法流程包 括:
    201:获取所读取的缓存缺失数据的数据标识,其中,数据标识用于区分不 同的缓存缺失数据。
    202:基于获取的缓存缺失数据的数据标识选择待定数据的数据标识。
    203:将各个待定数据的数据标识进行分组记录。
    204:统计各个待定数据的数据标识在各个分组中的出现次数。
    在另一个实施例中,各个分组构成一个时间窗口序列,时间窗口序列包括 至少两个时间窗口,每个时间窗口包括第一预设数值个第一存储单元,每两个 时间窗口之间间隔第二预设数值个第二存储单元;
    将各个待定数据的数据标识进行分组记录,包括:
    将各个待定数据的数据标识按顺序分别记录至时间窗口序列的各个第一存 储单元中;
    统计各个待定数据的数据标识在各个分组中的出现次数,包括:
    统计各个待定数据的数据标识在时间窗口序列的各个时间窗口中的出现次 数。
    在另一个实施例中,统计各个待定数据的数据标识在时间窗口序列的各个 时间窗口中的出现次数,包括:
    统计时间窗口序列的各个时间窗口中记录同一数据标识的第一存储单元的 数量;
    根据记录同一数据标识的第一存储单元的数量,确定各个待定数据的数据 标识在时间窗口序列的各个时间窗口中的出现次数。
    在另一个实施例中,统计时间窗口序列的各个时间窗口中记录同一数据标 识的第一存储单元的数量,包括:
    当时间窗口序列中的所有第一存储单元均被填满时,统计时间窗口序列的 各个时间窗口中记录同一数据标识的第一存储单元的数量。
    在另一个实施例中,统计时间窗口序列的各个时间窗口中记录同一数据标 识的第一存储单元的数量之后,还包括:
    清除时间窗口序列的各个第一存储单元中存储的数据标识,以通过时间窗 口序列记录后续数据读取过程中选择的待定数据的数据标识。
    205:根据出现次数选择目标待定数据,将目标待定数据确定为写入缓存存 储器的缓存缺失数据。
    在另一个实施例中,根据出现次数选择目标待定数据,将目标待定数据确 定为写入缓存存储器的缓存缺失数据,包括:
    选择出现次数不小于预设阈值的待定数据,将出现次数不小于预设阈值的 待定数据作为目标待定数据,将目标待定数据确定为写入缓存存储器的缓存缺 失数据。
    在另一个实施例中,根据出现次数选择目标待定数据,将目标待定数据确 定为写入缓存存储器的缓存缺失数据之后,还包括:
    将目标待定数据的数据标识添加至预设白名单中,预设白名单包括第四预 设数值个第三存储单元,每个第三存储单元可记录一个目标待定数据的数据标 识;
    当后续读取的缓存缺失数据命中预设白名单中的任一个数据标识对应的目 标待定数据时,将命中的目标待定数据写入缓存存储器。
    在另一个实施例中,将命中的目标待定数据写入缓存存储器,包括:
    当缓存存储器的存储空间还未满时,根据命中的目标待定数据的数据大小 直接将命中的目标待定数据写入缓存存储器;
    当缓存存储器的存储空间已满时,根据预设缓存替换算法淘汰缓存存储器 中数据大小的存储空间所存储的数据,将命中的目标待定数据写入被淘汰数据 对应的存储位置。
    本发明实施例提供的方法,通过将各个待定数据的数据标识进行分组记录, 并统计各个待定数据的数据标识在各个分组中的出现次数后,根据出现次数选 择目标待定数据,并将目标待定数据确定为写入缓存存储器的缓存缺失数据。 由于出现次数多能够标识该缓存缺失数据的被读取次数比较多,因而可以从所 读取的缓存缺失数据中选择出被读取次数多的好数据,从而能够提高缓存存储 器中存储的好数据的比例,进而能够提高处理器后续从缓存存储器读取数据时 的命中率。
    上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在 此不再一一赘述。
    结合图1所示的系统架构示意图及图2所示实施例的内容,图3是根据一 示例性实施例提供的一种缓存数据的确定方法的流程图。如图3所示,本发明 实施例提供的方法流程包括:
    301:读取缓存缺失数据。
    结合图1所示的系统架构图,当处理器所需的数据未存储于内存或缓存存 储器时,处理器需要从磁盘读取数据。其中,处理器从磁盘读取的数据即为缓 存缺失数据。然而,在处理器读取的所有缓存缺失数据中,有些缓存缺失数据 也可能是处理器需要次数比较多的好数据。针对于这些好数据,可以将其写入 缓存存储器,以便于处理器后续直接从缓存存储器读取这些好数据,从而提高 数据处理速度。因此,当处理器读取到缓存缺失数据后,触发处理器确定是否 将其写入缓存存储器。
    302:获取所读取的缓存缺失数据的数据标识,其中,数据标识用于区分不 同的缓存缺失数据。
    其中,数据标识可以用于区分不同的缓存缺失数据,即一个缓存缺失数据 对应一个数据标识。
    在本发明实施例中,为了节省确定缓存数据的过程中的系统资源,在确定 缓存数据时,可以仅针对缓存数据的数据标识进行处理,因此,在读取到缓存 缺失数据后,可以获取所读取的缓存缺失数据的数据标识。
    其中,每个缓存缺失数据中可以携带其对应的数据标识。在此基础上,在 获取所读取的缓存缺失数据的数据标识时,对于每个缓存缺失数据,可以对其 进行解析,以得到其数据标识。
    具体地,在获取所读取的缓存缺失数据的数据标识时,可以每读取一个缓 存缺失数据,获取一次该缓存缺失数据的数据标识;也可以读取一些缓存缺失 数据后,获取一次这些缓存缺失数据的数据标识。另外,由于确定缓存缺失数 据的过程可能为周期性的,如每一天确定一次,或每小时确定一次。因此,在 获取缓存缺失数据的数据标识时,也可以在达到一个周期时,统一获取一次该 周期中所读取的所有缓存缺失数据的数据标识。
    303:基于获取的缓存缺失数据的数据标识选择待定数据的数据标识。
    具体地,处理器在获取到所读取的缓存缺失数据的数据标识后,可以对读 取到的每个缓存缺失数据的数据标识均进行处理,以根据处理结果确定是否将 其写入缓存存储器,也可以仅针对所读取的部分缓存缺失数据的数据标识进行 处理,以根据处理结果确定是否将其写入缓存存储器。在本发明实施例中,将 需要进行处理的缓存缺失数据的数据标识定义为待定数据的数据标识,即本发 明实施例中基于对待定数据的数据标识的处理结果,确定是否将该待定数据写 入缓存存储器。
    结合上述内容,处理器在获取到所读取的缓存缺失数据的数据标识后,需 要基于获取的缓存缺失数据的数据标识选择待定数据的数据标识。其中,处理 器可以每获取一个缓存缺失数据的数据标识,即确定一次是否将该缓存数据的 数据标识确定为待定数据的数据标识;也可以获取一定数量的缓存缺失数据的 数据标识后,基于该一定数量的缓存缺失数据的数据标识,从这些一定数量的 缓存缺失数据的数据标识中选择一次待定数据的数据标识;还可以在获取缓存 缺失数据的数据标识的时间达到一定时长时,基于该一定时长内获取的缓存缺 失数据的数据标识,从该一定时长的缓存缺失数据的数据标识中选择一次待定 数据的数据标识等。
    具体地,处理器在基于获取到的缓存缺失数据的数据标识选择待定数据的 数据标识时,包括但不限于有如下两种实现方式:
    第一种实现方式:对所读取的缓存缺失数据的数据标识进行随机抽样,将 抽中的各个缓存缺失数据的数据标识作为选择的待定数据的数据标识。
    具体地,如果处理器每获取一个缓存缺失数据的数据标识,即确定一次是 否将其写入缓存存储器,则会增加很多负载,进而降低处理器的数据处理速度。 为了避免该种情况发生,可以对所读取的所有缓存缺失数据的数据标识进行随 机抽样,将抽中的缓存缺失数据的数据标识作为待定数据的数据标识,并仅针 对待定数据的数据标识进行处理,而针对于未抽中的其它缓存缺失数据的数据 标识,则不进行处理,从而优化处理器的负载,以减小确定缓存缺失数据过程 中对处理器处理其它数据时的处理速度的影响。
    其中,在对所读取的缓存缺失数据的数据标识进行随机抽样,将抽中的各 个缓存缺失数据的数据标识作为选择的待定数据的数据标识时,包括但不限于 有以下几种方式:
    第一种:每隔预设时长抽选一个所读取的缓存缺失数据的数据标识,将抽 选的缓存缺失数据的数据标识作为一个待定数据的数据标识。
    关于预设时长的具体数值,可以根据经验设定。例如,该预设时长可以为1 分钟、2分钟、5分钟等。
    具体地,如果在到达预设时长时,处理器获取到一个缓存缺失数据的数据 标识,则可以将该缓存缺失数据的数据标识作为抽选的一个待定数据的数据标 识;如果到达预设时长时,处理器没有获取到缓存缺失数据的数据标识,则处 理器可以将下一次获取的缓存缺失数据的数据标识作为抽选的一个待定数据的 数据标识。
    例如,处理器每3分钟对所读取的缓存缺失数据的数据标识进行一次抽样, 计时起点是14:20:15,如果在到达14:23:15时,处理器正获取到缓存缺失数据a 的数据标识,则处理器将缓存缺失数据a的数据标识作为一个抽选的待定数据 的数据标识。如果在到达14:23:15时,处理器并未获取缓存缺失数据的数据标 识,而在14:23:20时,处理器获取到下一个缓存缺失数据b的数据标识,则处 理器将缓存缺失数据b的数据标识作为抽选的一个待定数据的数据标识。
    当然,如果达到预设时长时,处理器未获取到缓存缺失数据的数据标识, 则也可以确定这个时间周期未获取到待定数据的数据标识,并继续计时,当再 次历时预设时长后,继续抽选待定数据的数据标识。
    第二种:每获取第三预设数值个缓存缺失数据的数据标识后抽选一个所获 取的缓存缺失数据的数据标识,将抽选的缓存缺失数据的数据标识作为一个待 定数据的数据标识。
    关于第三预设数值的个数,可以根据需要设定,例如,第三预设数值可以 为10、30、50等。
    具体地,处理器可以从计时起点开始对所获取的缓存缺失数据的数据标识 的数量进行统计,并设置计数数量的初始值为0。在后续获取数据标识的过程中, 处理器每获取一个缓存缺失数据的数据标识,则将计数数量加1,直至计数数量 达到第三预设数值时,将该达到第三预设数值时获取的缓存缺失数据的数据标 识作为抽选的一个待定数据的数据标识。
    例如,如果第三预设数值为10,计数数量的初始值为0,当计数数量增加 至10时,处理器正获取到缓存缺失数据c的数据标识,则将缓存缺失数据c的 数据标识作为抽选的一个待定数据的数据标识。
    第三种:在每次读取缓存缺失数据时,均生成一个对应的随机概率;确定 每次生成的随机概率是否不大于预设概率;如果每次生成的随机概率不大于预 设概率,则将生成随机概率时读取的缓存缺失数据的数据标识作为一个待定数 据的数据标识。
    具体地,预设概率为预先设置的对所读取的缓存缺失数据进行抽样的概率。 关于该预设概率的具体数值,本发明实施例不作具体限定。例如,该预设概率 可以为0.2、0.3等。
    其中,在生成随机概率时,可以根据预先定义的随机函数实现。关于随机 函数的具体内容,本发明实施例不作具体限定,保证根据该随机函数生成的数 值在0-1之间即可。
    对于一次读取缓存缺失数据的数据读取过程中,生成该次数据读取过程的 随机概率后,为了确定是否将该缓存缺失数据的数据标识作为一个待定数据的 数据标识,可以将生成的概率与预设概率进行比对,当生成的概率不小于预设 概率时,将生成该随机概率时读取的缓存缺失数据的数据标识作为一个待定数 据的数据标识。
    例如,如果读取缓存缺失数据d时生成的随机概率为0.13,预设概率为0.2, 则由于读取缓存缺失数据d时生成的随机概率0.13小于该预设概率0.2,因此, 将缓存缺失数据d的数据标识作为一个待定数据的数据标识。
    通过对所读取的各个缓存缺失数据进行抽样,并对抽中的待定数据的数据 标识进行处理,而对于未抽中的其它缓存缺失数据的数据标识,则不进行处理, 可以避免因对所读取的所有缓存缺失数据的数据标识均进行该处理而消耗处理 器过多负载,从而能够减小对数据处理速度的影响。
    第二种实现方式:将获取的每个缓存缺失数据的数据标识均作为一个待定 数据的数据标识。
    在该种实现方式下,针对每次获取的缓存缺失数据的数据标识均会进行处 理。通过该种方式能够确保对读取的每个缓存缺失数据均进行识别,使得后续 确定的目标待定数据更准确。
    304:将各个待定数据的数据标识进行分组记录,并统计各个待定数据的数 据标识在各个分组中的出现次数。
    在本发明实施例中,为了能够从所有的缓存缺失数据中选择访问次数比较 高的好数据,通过将各个待定数据的数据标识进行分组记录,并进一步通过统 计各个待定数据的数据标识在各个分组中出现的次数来实现。当某一个待定数 据的数据标识在各个分组中的出现次数比较高时,说明该待定数据访问次数比 较高,从而可以将该待定数据确定为好数据。另外,如果仅设置一个分组,则 某一个待定数据的数据标识在该组数据中的出现次数高具有偶然性,而当设置 多个分组时,当某一个待定数据的数据标识在各个分组中的出现次数比较多时, 能够排除偶然原因导致的出现次数多,确保能够准确选择出访问次数比较高的 好数据。
    其中,各个待定数据的数据标识在各个分组中的出现次数可以表示不同的 意义。例如,对于某一个待定数据的数据标识,当各个分组中不记录同一待定 数据的数据标识时,该待定数据的数据标识在各个分组中的出现次数表示记录 该待定数据的数据标识的组数。当各个分组可以用于记录同一待定数据的数据 标识时,该待定数据的数据标识在各个分组中的出现次数表示该待定数据的数 据标识在各个分组中的出现次数之和。
    关于各个分组的形式,可以有很多种,本发明实施例对此不作具体限定。 当各个分组的形式不同时,将各个待定数据的数据标识进行分组记录及统计各 个待定数据的数据标识在各个分组中的出现次数的方式也不同。例如,各个分 组可以构成一个时间窗口序列,该时间窗口序列包括至少两个时间窗口,每个 时间窗口包括第一预设数值个第一存储单元,每两个时间窗口之间间隔第二预 设数值个第二存储单元。
    其中,时间窗口序列包括的时间窗口的具体数量,本发明实施例不作具体 限定。例如,时间窗口序列可以包括3个时间窗口,也可以包括5个时间窗口 等。关于第一预设数值和第二预设数值的具体数值,本发明实施例同样不作限 定。例如,第一预设数值可以为3、4、5等,第二预设数值可以为1或2等。 另外,第一存储单元和第二存储单元可以为大小不同的存储单元,也可以为大 小相同的存储单元,本发明实施例对此也不进行限定。
    如图4所示,其示出了一种时间窗口序列的结构示意图。图4所示的时间 窗口序列包括3个时间窗口,每个时间窗口可以存储3个待定数据的数据标识, 每两个时间窗口之间的间隙与存储1个数据标识的第一存储单元的大小相同。
    结合上述时间窗口序列的形式,在将各个待定数据的数据标识进行分组记 录时,可以将各个待定数据的数据标识分别记录至该时间窗口序列的各个第一 存储单元中。具体地,在将各个待定数据的数据标识分别记录至时间窗口序列 的第一存储单元中时,可以按照时间窗口序列中各个时间窗口的排列顺序,按 顺序填充各个时间窗口的第一存储单元。
    例如,结合图4,可以将获取到的第一个待定数据的数据标识记录至第一个 时间窗口的第一个第一存储单元中,将获取到的第二个待定数据的数据标识记 录至第一个时间窗口的第二个第一存储单元中,将获取到的第四个待定数据的 数据标识记录至第二个时间窗口的第一个第一存储单元中,依此类推。
    进一步地,结合上述时间窗口序列的形式,在统计各个待定数据的数据标 识在各个分组中的出现次数时,可以通过统计各个待定数据的数据标识在时间 窗口序列的各个时间窗口中的出现次数来实现。
    具体地,在统计各个待定数据的数据标识在时间窗口序列的各个时间窗口 中的出现次数时,包括但不限于通过如下步骤一和步骤二实现:
    步骤一:统计时间窗口序列的各个时间窗口中记录同一数据标识的第一存 储单元的数量。
    由于同一待定数据的数据标识相同,且一个数据标识占用一个第一存储单 元,因此,可以根据记录同一数据标识的第一存储单元的数量,确定同一待定 数据的数据标识在时间窗口序列中的出现次数。结合该内容,为了确定同一待 定数据在时间窗口序列的各个时间窗口中的出现次数,需要先统计时间窗口序 列的各个时间窗口中记录同一数据标识的第一存储单元的数量。
    具体地,每一个确定缓存缺失数据的过程可以以该时间窗口序列的所有第 一存储单元是否被填满来界定。当该时间窗口序列的所有第一存储单元均被填 满时,可以看作一个确定缓存缺失数据的过程结束;否则,一个确定缓存缺失 数据的过程还未结束,仍需使用待定数据的数据标识填充未被占用的第一存储 单元,直至所有第一存储单元均被填满时,该确定缓存缺失数据的过程结束。 因此,在统计时间窗口序列的各个时间窗口中存储同一数据标识的第一存储单 元的数量时,可以在时间窗口序列中的所有第一存储单元均被填满时实现。
    当然,一个确定缓存缺失数据的过程也可以不仅限于为所有第一存储单元 均被填满时结束,也可以为时间窗口序列第一存储单元的占用率达到预设阈值 时认为一个确定缓存缺失数据的过程结束,本发明实施例对一个确定缓存缺失 数据的过程的界定标准不进行限定。在此种情况下,当时间窗口序列第一存储 单元的占用率达到预设阈值时,统计一次时间窗口序列的各个时间窗口中记录 同一数据标识的第一存储单元的数量。
    步骤二:根据记录同一数据标识的第一存储单元的数量,确定各个待定数 据的数据标识在时间窗口序列的各个时间窗口中的出现次数。
    其中,记录同一数据标识的第一存储单元的数量即为该待定数据的数据标 识在时间窗口序列中的出现次数。例如,如果记录待定数据a的数据标识的第 一存储单元的数量为3,则可以表明待定数据a在时间窗口序列的各个时间窗口 中的出现次数为3次。
    当某一个待定数据的被访问次数比较高时,该待定数据的数据标识将会有 很多次机会被记录于时间窗口序列的各个第一存储单元中,因此,可以根据时 间窗口序列中各个待定数据的数据标识的出现次数选择出访问次数比较高的好 数据。结合图4,由于待定数据a的数据标识a在时间窗口序列中出现的次数最 多,因此,可以确定待定数据a为访问次数比较高的好数据。
    可选地,结合上述对一个确定缓存缺失数据的过程的描述,当时间窗口序 列被填满后,可知一个确定缓存缺失数据的过程结束。此时,为了确保后续还 可以使用该时间窗口序列存储后续选择的待定数据的数据标识,当统计时间窗 口序列中存储同一数据标识的第一存储单元的数量之后,还可以及时清除时间 窗口序列的各个第一存储单元中存储的数据标识。其中,在进行清除时,可以 删除所有第一存储单元中写入的待定数据的数据标识。
    通过上述方式,能够从所有的待定数据中识别出访问量高的好数据,以便 后续可以将这些好数据写入缓存存储器,而对于其它访问量不高的缓存缺失数 据则不写入缓存存储器,从而能够提高缓存存储器中好数据的比例。
    结合上述时间窗口序列的内容,如果时间窗口序列中仅设置一个时间窗口, 则某一个待定数据的数据标识在该时间窗口中的出现次数高具有偶然性,而当 设置多个时间窗口时,当某一个待定数据的数据标识在各个时间窗口中的出现 次数比较多时,能够排除偶然原因导致的出现次数多,确保能够准确选择出访 问次数比较高的好数据。
    305:根据出现次数选择目标待定数据,将目标待定数据确定为写入缓存存 储器的缓存缺失数据。
    各个待定数据包括访问量高的好待定数据,也包括访问量居中的一般待定 数据和访问量低的差待定数据。然而,为了可以将好待定数据确定为写入缓存 存储器的缓存缺失数据,可以根据各个待定数据在各个分组中的出现次数选择 目标待定数据,将目标待定数据确定为写入缓存存储器的缓存缺失数据。
    其中,在根据出现次数选择目标待定数据,将目标待定数据确定为写入缓 存存储器的缓存缺失数据时,可以选择出现次数不小于预设阈值的待定数据作 为目标的待定数据,并将目标待定数据确定为写入缓存存储器的缓存缺失数据。
    具体地,预设阈值可以根据时间窗口序列中的时间窗口的数量以及每个时 间窗口中的各个第一存储单元是否记录同一数据标识来确定。如果每个时间窗 口中的各个第一存储单元不记录同一数据标识,则预设阈值不大于时间窗口的 数量。例如,当时间窗口的数量为5,且每个时间窗口中的各个第一存储单元不 记录同一数据标识,则预设阈值可以为3、4、5等。如果每个时间窗口中的各 个第一存储单元可以记录同一数据标识,则预设阈值可能大于时间窗口的数量。 例如,当时间窗口的数量为5,且每个时间窗口中的各个第一存储单元可以记录 同一数据标识,则预设阈值可以为4、5、7、9等。
    通过将待定数据的数据标识记录至第一存储单元中,并根据数据标识在第 一存储单元中的出现次数确定目标待定数据时,由于数据标识仅需占用很小的 存储空间,因此,可以在不占用处理器很多资源的情况下,比较容易地确定需 要写入缓存存储器的缓存缺失数据。另外,由于统计各个待定数据的数据标识 在各个分组中的出现次数的过程需要一定的时间才能完成,因此,确定写入缓 存存储器的缓存缺失数据的过程需要一定的时间,相对于每次读取到缓存缺失 数据时则将其写入缓存存储器的方式,能够减小缓存存储器的数据更新频率, 因而,能够提高缓存存储器的寿命。
    306:将目标待定数据的数据标识添加至预设白名单中,当后续读取的缓存 缺失数据命中预设白名单中的任一个数据标识对应的目标待定数据时,将命中 的目标待定数据写入缓存存储器,其中,预设白名单包括第四预设数值个第三 存储单元,每个第三存储单元可记录一个目标待定数据的数据标识。
    该步骤为可选步骤。当通过步骤301至步骤305确定可以写入缓存存储器 的目标待定数据后,可以通过该可选步骤可以将后续数据读取过程中命中的目 标待定数据写入缓存存储器。
    其中,在将命中的目标待定数据写入缓存存储器时,结合缓存存储器当前 的存储情况,包括但不限于有如下两种情况:
    第一种情况:缓存存储器的存储空间还未满。
    针对该种情况,可以根据命中的目标待定数据的数据大小直接将命中的目 标待定数据写入缓存存储器。例如,如果命中的目标待定数据的数据大小为20k, 则可以将该命中的目标待定数据写入缓存存储器还未存储数据的20k存储空间 中。
    第二种情况:缓存存储器的存储空间已满。
    针对该种情况,可以根据预设缓存替换算法淘汰缓存存储器中数据大小的 存储空间所存储的数据,将命中的目标待定数据写入被淘汰数据对应的存储位 置。
    其中,该预设缓存替换算法可以为FIFO(First Input First Output,先进先出) 算法或LRU(Least Recently Used)算法等。当预设缓存替换算法为FIFO算法 时,可以根据命中的目标待定数据的数据大小,淘汰掉缓存存储器中最先存储 的该数据大小的存储空间所存储的数据,然后将命中的目标待定数据写入被淘 汰数据对应的存储位置。当预设缓存替换算法为LRU算法时,可以根据命中的 目标待定数据的数据大小,淘汰掉缓存存储器中最近最少使用的该数据大小的 存储空间所存储的数据,然后将该命中的目标待定数据写入被淘汰数据对应的 存储位置。
    当然,预设缓存替换算法还可以为其它缓存替换算法,本发明实施例不对 预设缓存替换算法的具体内容进行限定。
    通过该种方式将命中的目标待定数据写入缓存存储器时,可以不用专门消 耗处理器资源来将目标待定数据写入缓存存储器,使得向缓存存储器写入目标 待定数据的过程对处理器的数据处理速度的影响较小。
    进一步地,当预设白名单被填充满后,也可以根据FIFO算法或LRU算法 淘汰掉预设白名单中的部分数据,并将后续确定的目标待定数据的数据标识添 加至预设白名单中。另外,预设白名单还可以根据在一个确定缓存缺失数据的 过程中获取到的数据标识数量对各个数据标识进行排序。在此基础上,在淘汰 预设白名单中的部分数据标识时,还可以根据各个数据标识的数量实现。例如, 可以淘汰掉预设白名单中数据标识数量最少的数据标识。
    当然,在确定目标待定数据后,也可以不通过该可选步骤而直接将确定的 目标待定数据写入缓存存储器,本发明实施例对此不作具体限定。
    本发明实施例提供的方法,通过将各个待定数据的数据标识进行分组记录, 并统计各个待定数据的数据标识在各个分组中的出现次数后,根据出现次数选 择目标待定数据,并将目标待定数据确定为写入缓存存储器的缓存缺失数据。 由于出现次数多能够标识该缓存缺失数据的被读取次数比较多,因而可以从所 读取的缓存缺失数据中选择出被读取次数多的好数据,从而能够提高缓存存储 器中存储的好数据的比例,进而能够提高处理器后续从缓存存储器读取数据时 的命中率。
    参见图5,本发明实施例提供了一种缓存数据的确定装置,该缓存数据的确 定装置可以用于执行上述图2或图3所对应实施例提供的缓存数据的确定方法。 如图5所示,该缓存数据的确定装置包括:
    获取模块501,用于获取所读取的缓存缺失数据的数据标识,数据标识用于 区分不同的缓存缺失数据;
    选择模块502,用于基于获取的缓存缺失数据的数据标识选择待定数据的数 据标识;
    记录模块503,用于将各个待定数据的数据标识进行分组记录;
    统计模块504,用于统计各个待定数据的数据标识在各个分组中的出现次 数;
    确定模块505,用于根据出现次数选择目标待定数据,将目标待定数据确定 为写入缓存存储器的缓存缺失数据。
    在另一个实施例中,各个分组构成一个时间窗口序列,时间窗口序列包括 至少两个时间窗口,每个时间窗口包括第一预设数值个第一存储单元,每两个 时间窗口之间间隔第二预设数值个第二存储单元;
    记录模块503,用于将各个待定数据的数据标识按顺序分别记录至时间窗口 序列的各个第一存储单元中;
    统计模块504,用于统计各个待定数据的数据标识在时间窗口序列的各个时 间窗口中的出现次数。
    在另一个实施例中,统计模块504包括:
    统计单元,用于统计时间窗口序列的各个时间窗口中记录同一数据标识的 第一存储单元的数量;
    确定单元,用于根据记录同一数据标识的第一存储单元的数量,确定各个 待定数据的数据标识在时间窗口序列的各个时间窗口中的出现次数。
    在另一个实施例中,统计单元,用于当时间窗口序列中的所有第一存储单 元均被填满时,统计时间窗口序列的各个时间窗口中记录同一数据标识的第一 存储单元的数量。
    在另一个实施例中,统计模块504还包括:
    清除单元,用于清除时间窗口序列的各个第一存储单元中存储的数据标识, 以通过时间窗口序列存储后续数据读取过程中选择的待定数据的数据标识。
    在另一个实施例中,确定模块505,用于选择出现次数不小于预设阈值的待 定数据,将出现次数不小于预设阈值的待定数据作为目标待定数据,将目标待 定数据确定为写入缓存存储器的缓存缺失数据。
    在另一个实施例中,装置还包括:
    添加模块,用于将目标待定数据的数据标识添加至预设白名单中,预设白 名单包括第四预设数值个第三存储单元,每个第三存储单元可记录一个目标待 定数据的数据标识;
    写入模块,用于当后续读取的缓存缺失数据命中预设白名单中的任一个数 据标识对应的目标待定数据时,将命中的目标待定数据写入缓存存储器。
    在另一个实施例中,写入模块用于:
    当缓存存储器的存储空间还未满时,根据命中的目标待定数据的数据大小 直接将命中的目标待定数据写入缓存存储器;
    当缓存存储器的存储空间已满时,根据预设缓存替换算法淘汰缓存存储器 中数据大小的存储空间所存储的数据,将命中的目标待定数据写入被淘汰数据 对应的存储位置。
    本发明实施例提供的装置,通过将各个待定数据的数据标识进行分组记录, 并统计各个待定数据的数据标识在各个分组中的出现次数后,根据出现次数选 择目标待定数据,并将目标待定数据确定为写入缓存存储器的缓存缺失数据。 由于出现次数多能够标识该缓存缺失数据的被读取次数比较多,因而可以从所 读取的缓存缺失数据中选择出被读取次数多的好数据,从而能够提高缓存存储 器中存储的好数据的比例,进而能够提高处理器后续从缓存存储器读取数据时 的命中率。
    上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在 此不再一一赘述。
    关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关 该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
    参见图6,本发明实施例提供了一种缓存数据的确定装置,该缓存数据的确 定装置可以用于执行上述图2或图3所对应实施例提供的缓存数据的确定方法。 如图6所示,该缓存数据的确定装置包括处理器601、内存604、缓存存储器602 和磁盘603。其中:
    磁盘603用于存储缓存缺失数据;
    缓存存储器602用于存储缓存命中数据;
    内存604用于存储处理器601从缓存存储器602或磁盘603读取的数据;
    处理器601,用于:
    获取所读取的缓存缺失数据的数据标识,数据标识用于区分不同的缓存缺 失数据;
    基于获取的缓存缺失数据的数据标识选择待定数据的数据标识;
    将各个待定数据的数据标识进行分组记录;
    统计各个待定数据的数据标识在各个分组中的出现次数;
    根据出现次数选择目标待定数据,将目标待定数据确定为写入缓存存储器 的缓存缺失数据。
    在另一个实施例中,各个分组构成一个时间窗口序列,时间窗口序列包括 至少两个时间窗口,每个时间窗口包括第一预设数值个第一存储单元,每两个 时间窗口之间间隔第二预设数值个第二存储单元;
    处理器601还用于:
    将各个待定数据的数据标识按顺序分别记录至时间窗口序列的各个第一存 储单元中;
    统计各个待定数据的数据标识在时间窗口序列的各个时间窗口中的出现次 数。
    在另一个实施例中,处理器601还用于:
    统计时间窗口序列的各个时间窗口中记录同一数据标识的第一存储单元的 数量;
    根据记录同一数据标识的第一存储单元的数量,确定各个待定数据的数据 标识在时间窗口序列的各个时间窗口中的出现次数。
    在另一个实施例中,处理器601还用于:
    当时间窗口序列中的所有第一存储单元均被填满时,统计时间窗口序列的 各个时间窗口中记录同一数据标识的第一存储单元的数量。
    在另一个实施例中,处理器601还用于:
    清除时间窗口序列的各个第一存储单元中存储的数据标识,以通过时间窗 口序列记录后续数据读取过程中选择的待定数据的数据标识。
    在另一个实施例中,处理器601还用于:
    选择出现次数不小于预设阈值的待定数据,将出现次数不小于预设阈值的 待定数据作为目标待定数据,将目标待定数据确定为写入缓存存储器的缓存缺 失数据。
    在另一个实施例中,处理器601还用于:
    将目标待定数据的数据标识添加至预设白名单中,预设白名单包括第四预 设数值个第三存储单元,每个第三存储单元可记录一个目标待定数据的数据标 识;
    当后续读取的缓存缺失数据命中预设白名单中的任一个数据标识对应的目 标待定数据时,将命中的目标待定数据写入缓存存储器。
    在另一个实施例中,处理器601还用于:
    当缓存存储器的存储空间还未满时,根据命中的目标待定数据的数据大小 直接将命中的目标待定数据写入缓存存储器;
    当缓存存储器的存储空间已满时,根据预设缓存替换算法淘汰缓存存储器 中数据大小的存储空间所存储的数据,将命中的目标待定数据写入被淘汰数据 对应的存储位置。
    上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在 此不再一一赘述。
    本发明实施例提供的装置,通过将各个待定数据的数据标识进行分组记录, 并统计各个待定数据的数据标识在各个分组中的出现次数后,根据出现次数选 择目标待定数据,并将目标待定数据确定为写入缓存存储器的缓存缺失数据。 由于出现次数多能够标识该缓存缺失数据的被读取次数比较多,因而可以从所 读取的缓存缺失数据中选择出被读取次数多的好数据,从而能够提高缓存存储 器中存储的好数据的比例,进而能够提高处理器后续从缓存存储器读取数据时 的命中率。
    需要说明的是:上述实施例提供的缓存数据的确定装置在确定缓存数据时, 仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上 述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模 块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的缓存数据 的确定装置与缓存数据的确定方法实施例属于同一构思,其具体实现过程详见 方法实施例,这里不再赘述。
    本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过 硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于 一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或 光盘等。
    以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的 精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的 保护范围之内。

    关 键  词:
    缓存 数据 确定 方法 装置
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:缓存数据的确定方法及装置.pdf
    链接地址:https://www.zhuanlichaxun.net/p-1743512.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1