发明内容
本发明的目的是提供一种数据预取方法,其能在一定程度上解决如何提高数据预取方法的适用性的技术问题。本发明还提供了一种数据预取系统、电子设备及计算机可读存储介质。
根据本发明实施例的第一方面,提供一种数据预取方法,包括:
获取记录的目标数据组;
获取记录的所述目标数据组中各个数据的历史访问时间戳组;
在所述目标数据组中,将符合预设时间相邻规则的每两个所述历史访问时间戳组对应的数据作为关联数据组,以基于所述关联数据组进行数据预取。
在一示例性实施例中,所述在所述目标数据组中,将符合预设时间相邻规则的每两个所述历史访问时间戳组对应的数据作为关联数据组,包括:
对于所述目标数据组中的第一数据和第二数据,确定所述第一数据的所述历史访问时间戳组与所述第二数据的所述历史访问时间戳组中的相邻访问时间戳组;
对于每组所述相邻访问时间戳组,计算所述相邻访问时间戳组中两个访问时间戳间的第一差值,若所述第一差值小于第一预设值,则判定所述相邻访问时间戳组存在关联性,若所述第一差值大于等于所述第一预设值,则判定所述相邻访问时间戳组不存在关联性;
若所有的所述相邻访问时间戳组均存在关联性,则将所述第一数据和所述第二数据作为所述关联数据组。
在一示例性实施例中,所述确定所述第一数据的所述历史访问时间戳组与所述第二数据的所述历史访问时间戳组中的相邻访问时间戳组之前,还包括:
确定所述第一数据的所述历史访问时间戳组中历史访问时间戳的第一数量值;
确定所述第二数据的所述历史访问时间戳组中历史访问时间戳的第二数量值;
计算所述第一数量值与所述第二数量值间的第二差值;
若所述第二差值小于第二预设值,则执行所述确定所述第一数据的所述历史访问时间戳组与所述第二数据的所述历史访问时间戳组中的相邻访问时间戳组的步骤。
在一示例性实施例中,所述确定所述第一数据的所述历史访问时间戳组与所述第二数据的所述历史访问时间戳组中的相邻访问时间戳组之前,还包括:
确定所述第一数据的所述历史访问时间戳组中最早记录的第一历史访问时间戳;
确定所述第二数据的所述历史访问时间戳组中最早记录的第二历史访问时间戳;
计算所述第一历史访问时间戳与所述第二历史访问时间戳间的第三差值;
若所述第三差值小于第三预设值,则执行所述确定所述第一数据的所述历史访问时间戳组与所述第二数据的所述历史访问时间戳组中的相邻访问时间戳组的步骤。
在一示例性实施例中,所述在所述目标数据组中,将符合预设时间相邻规则的每两个所述历史访问时间戳组对应的数据作为关联数据组之前,还包括:
按照访问时间戳的个数值从大到小的顺序,对所述历史访问时间戳组进行排序,得到第一排序结果;
按照访问时间差的个数值相等时,首个访问时间戳小的所述历史访问时间戳组在前的规则,对所述第一排序结果进行调整,得到第二排序结果。
在一示例性实施例中,在所述目标数据组中确定所述第一数据和所述第二数据的过程包括:
按照编号依次递增的规则,从所述第二排序结果的头部开始,对所述历史访问时间戳组对应的目标数据进行编号;
将编号最小且未被选取过的所述目标数据作为所述第一数据,将编号比所述第一数据的编号大1的所述目标数据作为所述第二数据,得到一组所述第一数据和所述第二数据;
判断是否存在编号比所述第二数据的编号大1的所述目标数据;
若存在,则将编号比所述第二数据的编号大1的所述目标数据作为所述第二数据,得到一组所述第一数据和所述第二数据,返回执行所述判断是否存在编号比所述第二数据的编号大1的所述目标数据的步骤;
若不存在,则返回执行所述将编号最小且未被选取过的所述目标数据作为第一数据的步骤。
在一示例性实施例中,所述计算所述相邻访问时间戳组中两个访问时间戳间的第一差值之前,还包括:
确定所述第一数据的第一数据量值;
确定所述第二数据的第二数据量值;
基于所述第一数据量值和所述第二数据量值,确定目标数据量值;
确定所述目标数据量值对应的数据读取时长;
基于所述数据读取时长确定所述第一预设值。
在一示例性实施例中,所述基于所述第一数据量值和所述第二数据量值,确定目标数据量值,包括:
确定所述第一数据量值对应的第一权重值;
确定所述第二数据量值对应的第二权重值;
基于所述第一权重值和所述第二权重值对所述第一数据量值和所述第二数据量值进行加权求和,得到所述目标数据量值。
在一示例性实施例中,还包括:
获取对第三数据的访问请求;
基于所述访问请求确定所述第三数据的访问时间戳;
判断记录列表中是否存在所述第三数据的第一访问时间戳存储空间;
若所述记录列表中存在所述第一访问时间戳存储空间,则将所述第三数据的访问时间戳添加至所述第一访问时间戳存储空间中。
在一示例性实施例中,所述获取记录的目标数据组,包括:
对于所述记录列表中的任一第四数据,若所述第四数据的历史访问时间戳的数量值大于第四预设值且小于第五预设值,则将所述第四数据及所述第四数据的所述历史访问时间戳由所述记录列表转存至挖掘列表中;
将所述挖掘列表中的数据作为所述目标数据组。
在一示例性实施例中,还包括:
对于所述记录列表中的任一第四数据,若所述第四数据的历史访问时间戳的数量值大于等于所述第五预设值,则在所述记录列表中丢弃所述第四数据的记录,并禁止在所述记录列表中记录所述第四数据的访问时间戳。
在一示例性实施例中,所述在所述目标数据组中,将符合预设时间相邻规则的每两个所述历史访问时间戳组对应的数据作为关联数据组,包括:
判断所述挖掘列表是否已满;
若所述挖掘列表已满,则执行所述在所述目标数据组中,将符合预设时间相邻规则的每两个所述历史访问时间戳组对应的数据作为关联数据组的步骤;
若所述挖掘列表未满,则等待预设时长,返回执行所述判断所述挖掘列表是否已满的步骤。
在一示例性实施例中,所述判断记录列表中是否存在所述第三数据的访问时间戳存储空间之后,还包括:
若所述记录列表中不存在所述第一访问时间戳存储空间,则判断所述挖掘列表中是否存在所述第三数据的第二访问时间戳存储空间;
若所述挖掘列表中不存在所述第二访问时间戳存储空间,则在所述记录列表中新建所述第一访问时间戳存储空间,将所述第三数据的访问时间戳添加至所述第一访问时间戳存储空间中;
若所述挖掘列表中存在所述第二访问时间戳存储空间,则将所述第三数据的访问时间戳添加至所述第二访问时间戳存储空间中。
在一示例性实施例中,所述记录列表包括二维的时间戳矩阵;
所述在所述记录列表中新建所述第一访问时间戳存储空间,包括:
基于预先创建的映射表,确定所述第三数据对应的矩阵行索引值;
将所述矩阵行索引值添加至所述记录列表中,并将所述矩阵行索引值对应的行存储空间作为所述第一访问时间戳存储空间。
在一示例性实施例中,所述将所述矩阵行索引值添加至所述记录列表中,包括:
判断所述记录列表是否已满;
若所述记录列表已满,则删除所述记录列表中最早记录的数据及对应的访问时间戳;
将所述矩阵行索引值添加至所述记录列表中。
在一示例性实施例中,所述将所述第三数据的访问时间戳添加至所述第二访问时间戳存储空间中之后,还包括:
若所述第三数据的历史访问时间戳的数量值大于等于所述第五预设值,则在所述挖掘列表中删除所述第三数据及对应的访问时间戳。
在一示例性实施例中,所述基于所述访问请求确定所述第三数据的访问时间戳之前,还包括:
判断缓存中是否存在基于所述关联数据组预取出的所述第三数据;
若所述缓存中不存在所述第三数据,则执行所述基于所述访问请求确定所述第三数据的访问时间戳的步骤;
若所述缓存中存在所述第三数据,则从所述缓存中读取所述第三数据。
在一示例性实施例中,所述在所述目标数据组中,将符合预设时间相邻规则的每两个所述历史访问时间戳组对应的数据作为关联数据组之后,还包括:
将所述关联数据组存储至预取列表中。
在一示例性实施例中,所述目标数据组包括元数据组成的数据组;
所述在所述目标数据组中,将符合预设时间相邻规则的每两个所述历史访问时间戳组对应的数据作为关联数据组之后,还包括:
对于所述关联数据组中的每个关联元数据,确定所述关联元数据关联的其他元数据的关联个数值;
确定所述其他元数据的数据地址;
将预设字符作为键名,将所述关联个数值和所述数据地址作为值,生成所述关联元数据的关联键值对;
将所述关联键值对存储至所述关联元数据的拓展字段中。
根据本发明实施例的第二方面,提供一种数据预取系统,包括:
第一获取模块,用于获取记录的目标数据组;
第二获取模块,用于获取记录的所述目标数据组中各个数据的历史访问时间戳组;
第一生成模块,用于在所述目标数据组中,将符合预设时间相邻规则的每两个所述历史访问时间戳组对应的数据作为关联数据组,以基于所述关联数据组进行数据预取。
根据本发明实施例的第三方面,提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一所述数据预取方法的步骤。
根据本发明实施例的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述数据预取方法的步骤。
本发明提供的一种数据预取方法,获取记录的目标数据组;获取记录的目标数据组中各个数据的历史访问时间戳组;在目标数据组中,将符合预设时间相邻规则的每两个历史访问时间戳组对应的数据作为关联数据组,以基于关联数据组进行数据预取。本发明的有益效果是:可以对数据的历史访问时间戳组进行记录,并只需对历史访问时间戳组进行分析,便可以确定出关联数据组,过程简便、内存开销小,适用性好。本发明提供的一种数据预取系统、电子设备及计算机可读存储介质也解决了相应技术问题。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明实施例提供的一种数据预取方法的第一流程图。
本发明实施例提供的一种数据预取方法,可以包括以下步骤:
步骤S101:获取记录的目标数据组。
实际应用中,可以先获取记录的目标数据组,目标数据组中数据的数量可以根据记录的时长或人工控制确定,本发明在此不做具体限定。
步骤S102:获取记录的目标数据组中各个数据的历史访问时间戳组。
实际应用中,在获取记录的目标数据组之后,还需获取记录的目标数据组中各个数据的历史访问时间戳组,其中,历史访问时间戳组用于记录历史访问时间戳,各个数据的历史访问时间戳组中记录的历史访问时间戳的数量可以根据具体应用场景来确定。
步骤S103:在目标数据组中,将符合预设时间相邻规则的每两个历史访问时间戳组对应的数据作为关联数据组,以基于关联数据组进行数据预取。
实际应用中,在获取目标数据组、历史访问时间戳组之后,便可以在目标数据组中,将符合预设时间相邻规则的每两个历史访问时间戳组对应的数据作为关联数据组,以便后续在需要时可以基于关联数据组进行数据预取,其中,一个关联数据组中可以记录内容间关联的两个数据等。
需要说明的是,本发明中目标数据组中的数据类型可以根据应用场景来确定,比如可以为文件数据,也可以为文件元数据等,本发明在此不做具体限定。此外,在确定出目标数据组中内容间关联的关联数据组之后,还可以将关联数据组存储至预取列表中,也即可以借助预取列表记录需要预取的关联数据组,可以删除记录的目标数据组及历史访问时间戳组等,本发明在此不做具体限定。
还需说明的是,当两个数据存在关联时,在访问一个数据后会继续访问另一数据,所以存在关联的两个数据的访问时间戳会比较临近,因此可以根据预设时间相邻规则和历史访问时间戳组来筛选关联数据组。不难理解,预设时间相邻规则的内容决定了关联数据组的确定结果,具体应用场景中,可以根据数据类型等来确定预设时间相邻规则,比如预设时间相邻规则可以为两个历史访问时间戳组中的所有相邻访问时间戳间的差值均小于预设值,可以为两个历史访问时间戳组中部分相邻访问时间戳间的差值小于预设值等。此外,在得到关联数据组之后,为保证关联数据组的准确性,还可以根据数据内容、数据名、访问主体等参数进一步对关联数据组进行筛选,以得到内容间存在关联的关联数据组。
本发明提供的一种数据预取方法,获取记录的目标数据组;获取记录的目标数据组中各个数据的历史访问时间戳组;在目标数据组中,将符合预设时间相邻规则的每两个历史访问时间戳组对应的数据作为关联数据组,以基于关联数据组进行数据预取。本发明可以对数据的历史访问时间戳组进行记录,并只需对历史访问时间戳组进行分析,便可以确定出关联数据组,过程简便、内存开销小,适用性好。
请参阅图2,图2为本发明实施例提供的一种数据预取方法的第二流程图。
本发明实施例提供的一种数据预取方法,可以包括以下步骤:
步骤S201:获取记录的目标数据组。
步骤S202:获取记录的目标数据组中各个数据的历史访问时间戳组。
步骤S203:对于目标数据组中的第一数据和第二数据,确定第一数据的历史访问时间戳组与第二数据的历史访问时间戳组中的相邻访问时间戳组。
步骤S204:对于每组相邻访问时间戳组,计算相邻访问时间戳组中两个访问时间戳间的第一差值,若第一差值小于第一预设值,则判定相邻访问时间戳组存在关联性,若第一差值大于等于第一预设值,则判定相邻访问时间戳组不存在关联性。
步骤S205:若所有的相邻访问时间戳组均存在关联性,则将第一数据和第二数据作为关联数据组,以基于关联数据组进行数据预取。
实际应用中,当两个数据的内容存在关联时,两个数据会被先后访问,也即两个数据的访问时间戳间存在连续性,所以可以据此来筛选出关联数据组,也即在在目标数据组中,将符合预设时间相邻规则的每两个历史访问时间戳组对应的数据作为关联数据组的过程中,对于目标数据组中的第一数据和第二数据,可以确定第一数据的历史访问时间戳组与第二数据的历史访问时间戳组中的相邻访问时间戳组,也即若第一数据的历史访问时间戳组中存在第一历史访问时间戳,第二数据的历史访问时间戳组中存在第二历史访问时间戳,且第一历史访问时间戳和第二历史访问时间戳相邻,则可以将第一历史访问时间戳和第二历史访问时间戳作为一组相邻访问时间戳组,其中,相邻的判定标准可以根据应用场景来确定,比如相邻可以为另一时间戳组中与该时间戳最接近的时间戳等,也即相邻访问时间戳组中的两个访问时间戳最接近且分别来自第一数据和第二数据;相应的,对于每组相邻访问时间戳组,计算相邻访问时间戳组中两个访问时间戳间的第一差值,若第一差值小于第一预设值,则判定相邻访问时间戳组存在关联性,若第一差值大于等于第一预设值,则判定相邻访问时间戳组不存在关联性;若所有的相邻访问时间戳组均存在关联性,则将第一数据和第二数据作为关联数据组,以基于关联数据组进行数据预取。
具体应用场景中,在确定第一数据的历史访问时间戳组与第二数据的历史访问时间戳组中的相邻访问时间戳组之前,可以先对历史访问时间戳组进行判断,以预先判断两个数据间是否相关,具体的,考虑到两个关联数据的访问次数大体相等,也即访问时间戳的个数大体相等,所以可以根据访问时间戳的个数来预先进行筛选,也即可以确定第一数据的历史访问时间戳组中历史访问时间戳的第一数量值;确定第二数据的历史访问时间戳组中历史访问时间戳的第二数量值;计算第一数量值与第二数量值间的第二差值;若第二差值小于第二预设值,则执行确定第一数据的历史访问时间戳组与第二数据的历史访问时间戳组中的相邻访问时间戳组的步骤,若第二差值大于等于第二预设值,则可以跳过对该第一数据和第二数据的关联性判断等。
具体应用场景中,在确定第一数据的历史访问时间戳组与第二数据的历史访问时间戳组中的相邻访问时间戳组之前,考虑到两个关联数据的访问时刻很相近,所以可以根据访问时间戳间的差值来预先进行数据关联性筛选,也即可以确定第一数据的历史访问时间戳组中最早记录的第一历史访问时间戳;确定第二数据的历史访问时间戳组中最早记录的第二历史访问时间戳;计算第一历史访问时间戳与第二历史访问时间戳间的第三差值;若第三差值小于第三预设值,则执行确定第一数据的历史访问时间戳组与第二数据的历史访问时间戳组中的相邻访问时间戳组的步骤,若第三差值大于等于第三预设值,则可以跳过对该第一数据和第二数据的关联性判断等。
实际应用中,需要不断从目标数据组中选取第一数据和第二数据来进行关联性判断,为了便于从目标数据组中选取第一数据和第二数据,在在目标数据组中,将符合预设时间相邻规则的每两个历史访问时间戳组对应的数据作为关联数据组之前,还可以按照访问时间戳的个数值从大到小的顺序,对历史访问时间戳组进行排序,得到第一排序结果;再按照访问时间差的个数值相等时,首个访问时间戳小的历史访问时间戳组在前的规则,对第一排序结果进行调整,得到规则排序的第二排序结果。相应的,后续在目标数据组中确定第一数据和第二数据的过程可以包括如下:按照编号依次递增的规则,从第二排序结果的头部开始,对历史访问时间戳组对应的目标数据进行编号;将编号最小且未被选取过的目标数据作为第一数据,将编号比第一数据的编号大1的目标数据作为第二数据,得到一组第一数据和第二数据;判断是否存在编号比第二数据的编号大1的目标数据;若存在,则将编号比第二数据的编号大1的目标数据作为第二数据,得到一组第一数据和第二数据,返回执行判断是否存在编号比第二数据的编号大1的目标数据的步骤;若不存在,则返回执行将编号最小且未被选取过的目标数据作为第一数据的步骤。
为便于理解,假设目标数据组及历史访问时间戳组记录在挖掘列表M中,数据的编号从0开始,历史访问时间戳组的个数值为len(M),则从目标数据组中选取第一数据和第二数据进行关联性分析的过程如图3所示,包括以下步骤:先按各行时间戳数组长度对挖掘列表排序,当长度相同时再按首个时间戳大小排序;外层循环(i从0到len(M)-2),对挖掘列表中的每一行i,依次执行内层循环操作,内层循环(j从i+1到len(M)-1):依次检查行i和行i之后的每一行j,如果两行的元素个数相等且首个元素(时间戳)差值不超过预设值,则进行进一步相关性计算,即对于行i和行j(长度相同),检查两两对应元素(M[i][k]和M[j][k])的差值是否都不超过预设值,若有任意差值大于预设值,则认为不相关(None),否则认为相关并生成预取规则(M[i], M[j])。
实际应用中,考虑到两个关联数据间的访问时间戳差值来自数据读取时长,所以在计算相邻访问时间戳组中两个访问时间戳间的第一差值之前,还可以根据数据读取时长来预估进行关联性判断的预设值,也即可以确定第一数据的第一数据量值;确定第二数据的第二数据量值;基于第一数据量值和第二数据量值,确定目标数据量值;确定目标数据量值对应的数据读取时长;基于数据读取时长确定第一预设值。需要说明的是,第二预设值、第三预设值的确定方式可以与第一预设值的确定方式相同,本发明在此不做具体限定。此外,第一预设值决定了相邻访问时间戳组是否存在关联性,第二预设值及第三预设值决定了是否进行确定第一数据的历史访问时间戳组与第二数据的历史访问时间戳组中的相邻访问时间戳组的步骤,也即第一预设值、第二预设值、第三预设值可以影响本发明方法的运行结果,所以可以根据实际需求来灵活确定第一预设值、第二预设值、第三预设值的具体数值,比如在关联数据组的确定精度较高时,可以设置第一预设值的数值较小等。
具体应用场景中,在基于第一数据量值和第二数据量值,确定目标数据量值的过程中,因为无法预先知晓第一数据和第二数据的先后关系,所以无法准确确定目标数据量,为了解决此问题,可以对第一数据量和第二数据量进行加权平均来确定目标数据量值,也即可以确定第一数据量值对应的第一权重值;确定第二数据量值对应的第二权重值;基于第一权重值和第二权重值对第一数据量值和第二数据量值进行加权求和,得到目标数据量值。其中,第一权重值和第二权重值可以根据应用场景来确定,比如可以是数据量大时,其对应的权重值也较大时。
需要说明的是,本实施例中得到的关联数据组中只有相关联的两个数据,考虑到可能存在多个数据关联的情况,可以在得到关联数据组后,再次对关联数据组进行分析,得到所有相关联的数据组等,本发明在此不做具体限定。
请参阅图4和图5,图4为本发明实施例提供的一种数据预取方法的第三流程图,图5为基于列表进行数据预取的流程图。
本发明实施例提供的一种数据预取方法,可以包括以下步骤:
步骤S301:获取对第三数据的访问请求。
步骤S302:基于访问请求确定第三数据的访问时间戳。
步骤S303:判断记录列表中是否存在第三数据的第一访问时间戳存储空间;若记录列表中存在第一访问时间戳存储空间,则执行步骤S304;若记录列表中不存在第一访问时间戳存储空间,则执行步骤S305。
步骤S304:将第三数据的访问时间戳添加至第一访问时间戳存储空间中。
实际应用中,在获取记录的目标数据组之前,还可以借助列表来对数据的访问时间戳进行处理,比如借助记录列表存储数据的访问时间戳,借助挖掘列表存储需要进行关联性分析的数据的访问时间戳等,也即也可以获取对第三数据的访问请求;基于访问请求确定第三数据的访问时间戳;判断记录列表中是否存在第三数据的第一访问时间戳存储空间;若记录列表中存在第一访问时间戳存储空间,则将第三数据的访问时间戳添加至第一访问时间戳存储空间中。
步骤S305:判断挖掘列表中是否存在第三数据的第二访问时间戳存储空间;若挖掘列表中不存在第二访问时间戳存储空间,则执行步骤S306;若挖掘列表中存在第二访问时间戳存储空间,则执行步骤S307。
步骤S306:在记录列表中新建第一访问时间戳存储空间,将第三数据的访问时间戳添加至第一访问时间戳存储空间中。
步骤S307:将第三数据的访问时间戳添加至第二访问时间戳存储空间中。
具体应用场景中,在判断记录列表中是否存在第三数据的访问时间戳存储空间之后,若记录列表中不存在第一访问时间戳存储空间,则还可以判断挖掘列表中是否存在第三数据的第二访问时间戳存储空间;若挖掘列表中不存在第二访问时间戳存储空间,则在记录列表中新建第一访问时间戳存储空间,将第三数据的访问时间戳添加至第一访问时间戳存储空间中;若挖掘列表中存在第二访问时间戳存储空间,则将第三数据的访问时间戳添加至第二访问时间戳存储空间中。
具体应用场景中,记录列表和挖掘列表均可以为二维的时间戳矩阵,此时,在记录列表中新建第一访问时间戳存储空间的过程,可以具体为:基于预先创建的映射表,确定第三数据对应的矩阵行索引值;将矩阵行索引值添加至记录列表中,并将矩阵行索引值对应的行存储空间作为第一访问时间戳存储空间。
具体应用场景中,在将矩阵行索引值添加至记录列表中的过程中,可以判断记录列表是否已满;若记录列表已满,则删除记录列表中最早记录的数据及对应的访问时间戳;将矩阵行索引值添加至记录列表中,相应的,记录列表中该矩阵行索引值对应的行便可以存储第三数据的访问时间戳。
具体应用场景中,在将第三数据的访问时间戳添加至第二访问时间戳存储空间中之后,为防止挖掘列表中数据的访问请求过于频率,可以在第三数据的历史访问时间戳的数量值大于等于第五预设值时,在挖掘列表中删除第三数据及对应的访问时间戳。
步骤S308:获取记录的目标数据组。
实际应用中,在获取记录的目标数据组的过程中,对于记录列表中的任一第四数据,若第四数据的历史访问时间戳的数量值大于第四预设值且小于第五预设值,则将第四数据及第四数据的历史访问时间戳由记录列表转存至挖掘列表中;将挖掘列表中的数据作为目标数据组。
具体应用场景中,当数据的访问请求过于频繁,也即数据的访问时间戳的数量较多时,该数据一般会被作为热数据进行缓存,不需进行预取,所以为了避免对此类数据进行预取,还可以进行以下操作:对于记录列表中的任一第四数据,若第四数据的历史访问时间戳的数量值大于等于第五预设值,则在记录列表中丢弃第四数据的记录,并禁止在记录列表中记录第四数据的访问时间戳。
步骤S309:获取记录的目标数据组中各个数据的历史访问时间戳组。
步骤S310:在目标数据组中,将符合预设时间相邻规则的每两个历史访问时间戳组对应的数据作为关联数据组,以基于关联数据组进行数据预取。
实际应用中,在在目标数据组中,将符合预设时间相邻规则的每两个历史访问时间戳组对应的数据作为关联数据组的过程中,可以根据挖掘列表的数据量来决定是否对数据进行关联性分析,也即可以判断挖掘列表是否已满;若挖掘列表已满,则执行基于历史访问时间戳组,确定出目标数据组中内容间关联的关联数据组的步骤;若挖掘列表未满,则等待预设时长,返回执行判断挖掘列表是否已满的步骤。当然也可以有其他根据挖掘列表进行数据关联性分析的启动方式,本发明在此不做具体限定。
实际应用中,在基于访问请求确定第三数据的访问时间戳之前,还可以判断缓存中是否存在基于关联数据组预取出的第三数据;若缓存中不存在第三数据,则执行基于访问请求确定第三数据的访问时间戳的步骤;若缓存中存在第三数据,则从缓存中读取第三数据。
实际应用中,在目标数据组为元数据组成的数据组的情况下,可以借助元数据的拓展字段来存储相关联的其他元数据;也即在在目标数据组中,将符合预设时间相邻规则的每两个历史访问时间戳组对应的数据作为关联数据组之后,对于关联数据组中的每个关联元数据,可以确定关联元数据关联的其他元数据的关联个数值;确定其他元数据的数据地址;将预设字符作为键名,将关联个数值和数据地址作为值,生成关联元数据的关联键值对;将关联键值对存储至关联元数据的拓展字段中。假设预设字符为EMITH,则元数据的关联数据组的存储可以如图6所示。
请参阅图7,图7为本发明实施例提供的一种数据预取系统的结构示意图。
本发明实施例提供的一种数据预取系统,可以包括:
第一获取模块101,用于获取记录的目标数据组;
第二获取模块102,用于获取记录的目标数据组中各个数据的历史访问时间戳组;
第一生成模块103,用于在目标数据组中,将符合预设时间相邻规则的每两个历史访问时间戳组对应的数据作为关联数据组,以基于关联数据组进行数据预取。
本发明实施例提供的一种数据预取系统,第一生成模块可以包括:
第一确定单元,用于对于目标数据组中的第一数据和第二数据,确定第一数据的历史访问时间戳组与第二数据的历史访问时间戳组中的相邻访问时间戳组;
第一计算单元,用于对于每组相邻访问时间戳组,计算相邻访问时间戳组中两个访问时间戳间的第一差值,若第一差值小于第一预设值,则判定相邻访问时间戳组存在关联性,若第一差值大于等于第一预设值,则判定相邻访问时间戳组不存在关联性;
第一设置单元,用于若所有的相邻访问时间戳组均存在关联性,则将第一数据和第二数据作为关联数据组。
本发明实施例提供的一种数据预取系统,还可以包括:
第二确定单元,用于第一确定单元确定第一数据的历史访问时间戳组与第二数据的历史访问时间戳组中的相邻访问时间戳组之前,确定第一数据的历史访问时间戳组中历史访问时间戳的第一数量值;
第三确定单元,用于确定第二数据的历史访问时间戳组中历史访问时间戳的第二数量值;
第二计算单元,用于计算第一数量值与第二数量值间的第二差值;若第二差值小于第二预设值,则执行确定第一数据的历史访问时间戳组与第二数据的历史访问时间戳组中的相邻访问时间戳组的步骤。
本发明实施例提供的一种数据预取系统,还可以包括:
第四确定单元,用于第一确定单元确定第一数据的历史访问时间戳组与第二数据的历史访问时间戳组中的相邻访问时间戳组之前,确定第一数据的历史访问时间戳组中最早记录的第一历史访问时间戳;
第五确定单元,用于确定第二数据的历史访问时间戳组中最早记录的第二历史访问时间戳;
第三计算单元,用于计算第一历史访问时间戳与第二历史访问时间戳间的第三差值;若第三差值小于第三预设值,则执行确定第一数据的历史访问时间戳组与第二数据的历史访问时间戳组中的相邻访问时间戳组的步骤。
本发明实施例提供的一种数据预取系统,还可以包括:
第一排序模块,用于第一生成模块在目标数据组中,将符合预设时间相邻规则的每两个历史访问时间戳组对应的数据作为关联数据组之前,按照访问时间戳的个数值从大到小的顺序,对历史访问时间戳组进行排序,得到第一排序结果;
第二排序模块,用于按照访问时间差的个数值相等时,首个访问时间戳小的历史访问时间戳组在前的规则,对第一排序结果进行调整,得到第二排序结果。
本发明实施例提供的一种数据预取系统,包括:
读取模块,用于按照编号依次递增的规则,从第二排序结果的头部开始,对历史访问时间戳组对应的目标数据进行编号;将编号最小且未被选取过的目标数据作为第一数据,将编号比第一数据的编号大1的目标数据作为第二数据,得到一组第一数据和第二数据;判断是否存在编号比第二数据的编号大1的目标数据;若存在,则将编号比第二数据的编号大1的目标数据作为第二数据,得到一组第一数据和第二数据,返回执行判断是否存在编号比第二数据的编号大1的目标数据的步骤;若不存在,则返回执行将编号最小且未被选取过的目标数据作为第一数据的步骤。
本发明实施例提供的一种数据预取系统,还可以包括:
第六确定单元,用于第一计算单元计算相邻访问时间戳组中两个访问时间戳间的第一差值之前,确定第一数据的第一数据量值;
第七确定单元,用于确定第二数据的第二数据量值;
第八确定单元,用于基于第一数据量值和第二数据量值,确定目标数据量值;
第九确定单元,用于确定目标数据量值对应的数据读取时长;
第十确定单元,用于基于数据读取时长确定第一预设值。
本发明实施例提供的一种数据预取系统,第八确定单元具体用于:确定第一数据量值对应的第一权重值;确定第二数据量值对应的第二权重值;基于第一权重值和第二权重值对第一数据量值和第二数据量值进行加权求和,得到目标数据量值。
本发明实施例提供的一种数据预取系统,还可以包括:
第三获取模块,用于获取对第三数据的访问请求;
第一确定模块,用于基于访问请求确定第三数据的访问时间戳;
第一判断模块,用于判断记录列表中是否存在第三数据的第一访问时间戳存储空间;若记录列表中存在第一访问时间戳存储空间,则将第三数据的访问时间戳添加至第一访问时间戳存储空间中。
本发明实施例提供的一种数据预取系统,第一获取模块可以包括:
第一挖掘单元,用于对于记录列表中的任一第四数据,若第四数据的历史访问时间戳的数量值大于第四预设值且小于第五预设值,则将第四数据及第四数据的历史访问时间戳由记录列表转存至挖掘列表中;将挖掘列表中的数据作为目标数据组。
本发明实施例提供的一种数据预取系统,第一挖掘单元还可以用于:对于记录列表中的任一第四数据,若第四数据的历史访问时间戳的数量值大于等于第五预设值,则在记录列表中丢弃第四数据的记录,并禁止在记录列表中记录第四数据的访问时间戳。
本发明实施例提供的一种数据预取系统,第一生成模块可以包括:
第一判断单元,用于判断挖掘列表是否已满;若挖掘列表已满,则执行在目标数据组中,将符合预设时间相邻规则的每两个历史访问时间戳组对应的数据作为关联数据组的步骤;若挖掘列表未满,则等待预设时长,返回执行判断挖掘列表是否已满的步骤。
本发明实施例提供的一种数据预取系统,第一判断模块还可以用于:若记录列表中不存在第一访问时间戳存储空间,则判断挖掘列表中是否存在第三数据的第二访问时间戳存储空间;若挖掘列表中不存在第二访问时间戳存储空间,则在记录列表中新建第一访问时间戳存储空间,将第三数据的访问时间戳添加至第一访问时间戳存储空间中;若挖掘列表中存在第二访问时间戳存储空间,则将第三数据的访问时间戳添加至第二访问时间戳存储空间中。
本发明实施例提供的一种数据预取系统,记录列表包括二维的时间戳矩阵;
第一判断模块可以具体用于:基于预先创建的映射表,确定第三数据对应的矩阵行索引值;将矩阵行索引值添加至记录列表中,并将矩阵行索引值对应的行存储空间作为第一访问时间戳存储空间。
本发明实施例提供的一种数据预取系统,第一判断模块可以具体用于:判断记录列表是否已满;若记录列表已满,则删除记录列表中最早记录的数据及对应的访问时间戳;将矩阵行索引值添加至记录列表中。
本发明实施例提供的一种数据预取系统,第一判断模块可以具体用于:将第三数据的访问时间戳添加至第二访问时间戳存储空间中之后,若第三数据的历史访问时间戳的数量值大于等于第五预设值,则在挖掘列表中删除第三数据及对应的访问时间戳。
本发明实施例提供的一种数据预取系统,还可以包括:
第二判断模块,用于第一确定模块在目标数据组中,将符合预设时间相邻规则的每两个历史访问时间戳组对应的数据作为关联数据组之前,判断缓存中是否存在基于关联数据组预取出的第三数据;若缓存中不存在第三数据,则执行基于访问请求确定第三数据的访问时间戳的步骤;若缓存中存在第三数据,则从缓存中读取第三数据。
本发明实施例提供的一种数据预取系统,还可以包括:
第一存储模块,用于第一确定模块在目标数据组中,将符合预设时间相邻规则的每两个历史访问时间戳组对应的数据作为关联数据组之后,将关联数据组存储至预取列表中。
本发明实施例提供的一种数据预取系统,目标数据组包括元数据组成的数据组;
还包括:
第二存储模块,用于第一生成模块在目标数据组中,将符合预设时间相邻规则的每两个历史访问时间戳组对应的数据作为关联数据组之后,对于关联数据组中的每个关联元数据,确定关联元数据关联的其他元数据的关联个数值;确定其他元数据的数据地址;将预设字符作为键名,将关联个数值和数据地址作为值,生成关联元数据的关联键值对;将关联键值对存储至关联元数据的拓展字段中。
需要说明的是,本发明的数据预取系统可以应用在现有的数据缓存架构中,比如可以应用在图8所示的数据缓存结构中等,其中,IB网指的是InfiniBand网,只需根据功能需求灵活将本发明的数据预取系统内置在该数据缓存结构中即可。
本发明还提供了一种电子设备及计算机可读存储介质,其均具有本发明实施例提供的一种数据预取方法具有的对应效果。请参阅图9,图9为本发明实施例提供的一种电子设备的结构示意图。
本发明实施例提供的一种电子设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如上任一实施例所描述数据预取方法的步骤。
请参阅图10,本发明实施例提供的另一电子设备中还可以包括:与处理器202连接的输入端口203,用于传输外界输入的命令至处理器202;与处理器202连接的显示单元204,用于显示处理器202的处理结果至外界;与处理器202连接的通信模块205,用于实现电子设备与外界的通信。显示单元204可以为显示面板、激光扫描使显示器等;通信模块205所采用的通信方式包括但不局限于移动高清链接技术(Mobile High-Definition Link,MHL)、通用串行总线(Universal Serial Bus,USB)、高清多媒体接口(High-DefinitionMultimedia Interface,HDMI)、无线连接:无线保真技术(WIreless Fidelity,WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术。
本发明实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:
本发明所涉及的计算机可读存储介质包括随机存储器(Random Access Memory,RAM)、内存、只读存储器(Read-Only Memory,ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM(Compact Disc Read-Only Memory,只读光盘)、或技术领域内所公知的任意其它形式的存储介质。
本发明实施例提供的数据预取系统、电子设备及计算机可读存储介质中相关部分的说明请参见本发明实施例提供的数据预取方法中对应部分的详细说明,在此不再赘述。另外,本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。