本发明涉及缓存,更具体地说,涉及一种数据预取方法、系统、电子设备及计算机可读存储介质。
背景技术:
1、当前,在数据缓存过程中,可以识别两个数据间是否存在关联性,若存在关联性,则记录两个数据间的关联性,这样,后续在读取两个数据中的前一数据时,可以从存储中预取后一数据以提高数据读取效率。
2、然而,在此过程中,需通过算法对两个数据的内容进行分析、比较,以识别两个数据间是否存在关联性,过程复杂、内存开销大,且数据内容修改时无法准确进行关联性识别,适用性差。
3、综上所述,如何提高数据预取方法的适用性是目前本领域技术人员亟待解决的问题。
技术实现思路
1、本发明的目的是提供一种数据预取方法,其能在一定程度上解决如何提高数据预取方法的适用性的技术问题。本发明还提供了一种数据预取系统、电子设备及计算机可读存储介质。
2、根据本发明实施例的第一方面,提供一种数据预取方法,包括:
3、获取记录的目标数据组;
4、获取记录的所述目标数据组中各个数据的历史访问时间戳组;
5、在所述目标数据组中,将符合预设时间相邻规则的每两个所述历史访问时间戳组对应的数据作为关联数据组,以基于所述关联数据组进行数据预取。
6、在一示例性实施例中,所述在所述目标数据组中,将符合预设时间相邻规则的每两个所述历史访问时间戳组对应的数据作为关联数据组,包括:
7、对于所述目标数据组中的第一数据和第二数据,确定所述第一数据的所述历史访问时间戳组与所述第二数据的所述历史访问时间戳组中的相邻访问时间戳组;
8、对于每组所述相邻访问时间戳组,计算所述相邻访问时间戳组中两个访问时间戳间的第一差值,若所述第一差值小于第一预设值,则判定所述相邻访问时间戳组存在关联性,若所述第一差值大于等于所述第一预设值,则判定所述相邻访问时间戳组不存在关联性;
9、若所有的所述相邻访问时间戳组均存在关联性,则将所述第一数据和所述第二数据作为所述关联数据组。
10、在一示例性实施例中,所述确定所述第一数据的所述历史访问时间戳组与所述第二数据的所述历史访问时间戳组中的相邻访问时间戳组之前,还包括:
11、确定所述第一数据的所述历史访问时间戳组中历史访问时间戳的第一数量值;
12、确定所述第二数据的所述历史访问时间戳组中历史访问时间戳的第二数量值;
13、计算所述第一数量值与所述第二数量值间的第二差值;
14、若所述第二差值小于第二预设值,则执行所述确定所述第一数据的所述历史访问时间戳组与所述第二数据的所述历史访问时间戳组中的相邻访问时间戳组的步骤。
15、在一示例性实施例中,所述确定所述第一数据的所述历史访问时间戳组与所述第二数据的所述历史访问时间戳组中的相邻访问时间戳组之前,还包括:
16、确定所述第一数据的所述历史访问时间戳组中最早记录的第一历史访问时间戳;
17、确定所述第二数据的所述历史访问时间戳组中最早记录的第二历史访问时间戳;
18、计算所述第一历史访问时间戳与所述第二历史访问时间戳间的第三差值;
19、若所述第三差值小于第三预设值,则执行所述确定所述第一数据的所述历史访问时间戳组与所述第二数据的所述历史访问时间戳组中的相邻访问时间戳组的步骤。
20、在一示例性实施例中,所述在所述目标数据组中,将符合预设时间相邻规则的每两个所述历史访问时间戳组对应的数据作为关联数据组之前,还包括:
21、按照访问时间戳的个数值从大到小的顺序,对所述历史访问时间戳组进行排序,得到第一排序结果;
22、按照访问时间差的个数值相等时,首个访问时间戳小的所述历史访问时间戳组在前的规则,对所述第一排序结果进行调整,得到第二排序结果。
23、在一示例性实施例中,在所述目标数据组中确定所述第一数据和所述第二数据的过程包括:
24、按照编号依次递增的规则,从所述第二排序结果的头部开始,对所述历史访问时间戳组对应的目标数据进行编号;
25、将编号最小且未被选取过的所述目标数据作为所述第一数据,将编号比所述第一数据的编号大1的所述目标数据作为所述第二数据,得到一组所述第一数据和所述第二数据;
26、判断是否存在编号比所述第二数据的编号大1的所述目标数据;
27、若存在,则将编号比所述第二数据的编号大1的所述目标数据作为所述第二数据,得到一组所述第一数据和所述第二数据,返回执行所述判断是否存在编号比所述第二数据的编号大1的所述目标数据的步骤;
28、若不存在,则返回执行所述将编号最小且未被选取过的所述目标数据作为第一数据的步骤。
29、在一示例性实施例中,所述计算所述相邻访问时间戳组中两个访问时间戳间的第一差值之前,还包括:
30、确定所述第一数据的第一数据量值;
31、确定所述第二数据的第二数据量值;
32、基于所述第一数据量值和所述第二数据量值,确定目标数据量值;
33、确定所述目标数据量值对应的数据读取时长;
34、基于所述数据读取时长确定所述第一预设值。
35、在一示例性实施例中,所述基于所述第一数据量值和所述第二数据量值,确定目标数据量值,包括:
36、确定所述第一数据量值对应的第一权重值;
37、确定所述第二数据量值对应的第二权重值;
38、基于所述第一权重值和所述第二权重值对所述第一数据量值和所述第二数据量值进行加权求和,得到所述目标数据量值。
39、在一示例性实施例中,还包括:
40、获取对第三数据的访问请求;
41、基于所述访问请求确定所述第三数据的访问时间戳;
42、判断记录列表中是否存在所述第三数据的第一访问时间戳存储空间;
43、若所述记录列表中存在所述第一访问时间戳存储空间,则将所述第三数据的访问时间戳添加至所述第一访问时间戳存储空间中。
44、在一示例性实施例中,所述获取记录的目标数据组,包括:
45、对于所述记录列表中的任一第四数据,若所述第四数据的历史访问时间戳的数量值大于第四预设值且小于第五预设值,则将所述第四数据及所述第四数据的所述历史访问时间戳由所述记录列表转存至挖掘列表中;
46、将所述挖掘列表中的数据作为所述目标数据组。
47、在一示例性实施例中,还包括:
48、对于所述记录列表中的任一第四数据,若所述第四数据的历史访问时间戳的数量值大于等于所述第五预设值,则在所述记录列表中丢弃所述第四数据的记录,并禁止在所述记录列表中记录所述第四数据的访问时间戳。
49、在一示例性实施例中,所述在所述目标数据组中,将符合预设时间相邻规则的每两个所述历史访问时间戳组对应的数据作为关联数据组,包括:
50、判断所述挖掘列表是否已满;
51、若所述挖掘列表已满,则执行所述在所述目标数据组中,将符合预设时间相邻规则的每两个所述历史访问时间戳组对应的数据作为关联数据组的步骤;
52、若所述挖掘列表未满,则等待预设时长,返回执行所述判断所述挖掘列表是否已满的步骤。
53、在一示例性实施例中,所述判断记录列表中是否存在所述第三数据的访问时间戳存储空间之后,还包括:
54、若所述记录列表中不存在所述第一访问时间戳存储空间,则判断所述挖掘列表中是否存在所述第三数据的第二访问时间戳存储空间;
55、若所述挖掘列表中不存在所述第二访问时间戳存储空间,则在所述记录列表中新建所述第一访问时间戳存储空间,将所述第三数据的访问时间戳添加至所述第一访问时间戳存储空间中;
56、若所述挖掘列表中存在所述第二访问时间戳存储空间,则将所述第三数据的访问时间戳添加至所述第二访问时间戳存储空间中。
57、在一示例性实施例中,所述记录列表包括二维的时间戳矩阵;
58、所述在所述记录列表中新建所述第一访问时间戳存储空间,包括:
59、基于预先创建的映射表,确定所述第三数据对应的矩阵行索引值;
60、将所述矩阵行索引值添加至所述记录列表中,并将所述矩阵行索引值对应的行存储空间作为所述第一访问时间戳存储空间。
61、在一示例性实施例中,所述将所述矩阵行索引值添加至所述记录列表中,包括:
62、判断所述记录列表是否已满;
63、若所述记录列表已满,则删除所述记录列表中最早记录的数据及对应的访问时间戳;
64、将所述矩阵行索引值添加至所述记录列表中。
65、在一示例性实施例中,所述将所述第三数据的访问时间戳添加至所述第二访问时间戳存储空间中之后,还包括:
66、若所述第三数据的历史访问时间戳的数量值大于等于所述第五预设值,则在所述挖掘列表中删除所述第三数据及对应的访问时间戳。
67、在一示例性实施例中,所述基于所述访问请求确定所述第三数据的访问时间戳之前,还包括:
68、判断缓存中是否存在基于所述关联数据组预取出的所述第三数据;
69、若所述缓存中不存在所述第三数据,则执行所述基于所述访问请求确定所述第三数据的访问时间戳的步骤;
70、若所述缓存中存在所述第三数据,则从所述缓存中读取所述第三数据。
71、在一示例性实施例中,所述在所述目标数据组中,将符合预设时间相邻规则的每两个所述历史访问时间戳组对应的数据作为关联数据组之后,还包括:
72、将所述关联数据组存储至预取列表中。
73、在一示例性实施例中,所述目标数据组包括元数据组成的数据组;
74、所述在所述目标数据组中,将符合预设时间相邻规则的每两个所述历史访问时间戳组对应的数据作为关联数据组之后,还包括:
75、对于所述关联数据组中的每个关联元数据,确定所述关联元数据关联的其他元数据的关联个数值;
76、确定所述其他元数据的数据地址;
77、将预设字符作为键名,将所述关联个数值和所述数据地址作为值,生成所述关联元数据的关联键值对;
78、将所述关联键值对存储至所述关联元数据的拓展字段中。
79、根据本发明实施例的第二方面,提供一种数据预取系统,包括:
80、第一获取模块,用于获取记录的目标数据组;
81、第二获取模块,用于获取记录的所述目标数据组中各个数据的历史访问时间戳组;
82、第一生成模块,用于在所述目标数据组中,将符合预设时间相邻规则的每两个所述历史访问时间戳组对应的数据作为关联数据组,以基于所述关联数据组进行数据预取。
83、根据本发明实施例的第三方面,提供一种电子设备,包括:
84、存储器,用于存储计算机程序;
85、处理器,用于执行所述计算机程序时实现如上任一所述数据预取方法的步骤。
86、根据本发明实施例的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述数据预取方法的步骤。
87、本发明提供的一种数据预取方法,获取记录的目标数据组;获取记录的目标数据组中各个数据的历史访问时间戳组;在目标数据组中,将符合预设时间相邻规则的每两个历史访问时间戳组对应的数据作为关联数据组,以基于关联数据组进行数据预取。本发明的有益效果是:可以对数据的历史访问时间戳组进行记录,并只需对历史访问时间戳组进行分析,便可以确定出关联数据组,过程简便、内存开销小,适用性好。本发明提供的一种数据预取系统、电子设备及计算机可读存储介质也解决了相应技术问题。