一种基于长短期记忆网络的数据库内容缓存替换方法

文档序号:36400895发布日期:2023-12-16 03:36阅读:26来源:国知局
一种基于长短期记忆网络的数据库内容缓存替换方法

本发明涉及一种基于长短期记忆网络的数据库内容缓存替换方法,属于计算机数据库。


背景技术:

1、计算机缓存机制是减少动态随机存取存储器访问延迟的重要机制。当访问请求指向相同的数据块时,缓存的存在避免了处理器以较高的时间成本访问内存。

2、缓存替换,又称缓存管理策略,是在有限的缓存空间中,选择合适的数据块替换出去,以便为新的数据块腾出空间,对于提高数据活力,实现缓存队列的更新,以及提高数据活力,提高计算机运算速度有着重要意义。

3、缓存替换方法就是在重复考虑数据块被保留或是被舍弃,并根据当前缓存队列的结构和存储状态,决定被保留或被舍弃的数据块移动的位置。现有的缓存替换方法可以划分为启发式的缓存替换方法与最优策略缓存替换方法。其中,启发式的缓存替换方法基于一种简单的直觉:例如,基于时间的替换方法按照数据块进入缓存队列的时间先后选择需要被替换的数据块;基于访问行为的替换方法依据数据块被访问的频率来保留访问次数多的数据块,选择访问次数少的数据块作为被驱逐的数据块。但这种行为并非最优解,最优策略缓存替换方法则根据未来访问序列选择最佳的替换对象,使接下来一段时间内,处理器发出的缓存请求总是命中。最佳算法属于此类算法,但由于其需要预知未来访问序列,实际中很难找到能够发挥作用的场合。

4、近年来,一些经典的机器学习技术,例如决策树、随机森林等算法被用于优化缓存替换方法。这些技术可以根据缓存空间的数据特征、访问模式,以及其他相关因素,例如缓存空间的大小、数据交换的频率等进行预测。然而,这种预测方法需要耗费大量计算资源,并且需要进行合适的特征工程和模型选择,以获得最佳效果。并且这类预测算法的性能受到缓存系统的特点、数据分布和访问模式的影响较大。深度学习技术的发展,在很大程度上改善了机器学习算法的弊端。相比机器学习算法,深度学习模型无需手动进行特征提取,能够处理大规模数据;它可以在预训练模型上进行迁移学习,从而节省计算资源;其具备高表现力和灵活性,能够拟合非线性关系;此外,它还能够实现端到端的任务,无需中间步骤的优化与繁琐的参数调优过程。

5、长短期记忆网络是一种循环神经网络模型,它在处理序列数据上具备优势。它能够自动提取序列数据中的长期与短期依赖关系,并通过记忆单元的保留与更新,将序列数据的特征表示传递至每一个中间变量。缓存队列中的数据缓存行本质上是按照时间顺序排列的一组序列数据,这使得它成为长短期记忆网络的绝佳处理对象。

6、但是,使用长短期记忆网络辅助缓存替换方法发挥作用的难点在于:其本质上属于最优策略缓存替换方法,然而不能保证数据请求指令完全符合长短期记忆网络的预测结果,也就无法实现理论上的缓存替换最优解。目前,尚未有将长短期记忆网络与缓存替换方法相结合的技术公开。


技术实现思路

1、本发明的目的是针对现有技术存在的缺陷和不足,提出一种基于长短期记忆网络的数据库内容缓存替换方法。本方法使用长短期记忆网络预测缓存替换最优解,按照先主后次、先急后缓的策略进行缓存队列更新,降低神经网络预测不确定性对整体性能的影响。

2、本发明的创新点包括:提出了一种将长短期记忆网络与缓存管理相结合的缓存替换方法,通过对算法逻辑的优化,不直接将长短期记忆网络的预测结果作为最终的缓存替换结果,而是将其视为缓存替换的重要参考项,结合当前缓存队列中现有的缓存行,决定缓存数据块的去留。

3、对算法逻辑的优化具体体现在两个方面。首先,采取了双队列缓存的框架,分割缓存队列为主级缓存队列与次级缓存队列。主级缓存队列具有较高的优先级,两者遵循不同的缓存替换策略更新缓存。长短期记忆网络的预测结果对缓存管理的干预仅发生在次级缓存队列中,这样做的益处是保证了缓存替换方法性能的下限,其最差性能为主级缓存队列采取的缓存替换方法的性能。同时,整个缓存队列都能够享受到长短期记忆网络主动式预测带来的性能提升,当发生由于算力资源不足导致的长短期记忆网络无法正常工作时,双缓存队列的存在保证了缓存替换算法仍然能高效发挥作用。其次,长短期记忆网络对次级缓存队列的干预并不是绝对的,次级缓存队列并不直接根据长短期记忆网络的预测结果进行更新,而是将其作为重要的考量,以决定是否采取下一步的行动。

4、本发明涵盖了缓存替换方法的训练阶段与使用阶段的完整过程,包括训练数据集的获取、长短期记忆网络的训练、缓存替换的具体逻辑。

5、为达到以上目的,本发明采取以下的技术方案实现。

6、一种基于长短期记忆网络的数据库内容缓存替换方法,包括以下步骤:

7、步骤1:构建用于训练长短期记忆网络的数据集。

8、首先从用户处采集真实的数据访问请求序列q。然后使用一个长度为l的滑动窗口在该序列上移动,步长为1,得到数据访问请求子序列。

9、其中,l为计算机缓存空间所能容纳数据块平均数量的一半。得到子序列的个数为q-l+1,该q-l+1个子序列构成了训练长短期记忆网络的数据集。

10、步骤2:对长短期记忆网络进行训练。

11、首先对数据集各个子序列中出现的数据块进行编码。编码按照不重复、不遗漏的原则,目的是使相同数据块拥有相同的标识,不同的数据块间能够区分。

12、然后,将每一个子序列中最后一个数据块分离,作为训练的目标,称为真实值。将前l-1个数据块作为长短期记忆网络的输入。

13、将每一个子序列中前l-1个数据块对应的编码输入长短期记忆网络,损失函数为长短期记忆网络的输出与真实值的交叉熵损失函数。由于长短期记忆网络支持端到端的训练,其训练的实质是通过迭代自身参数,使输出结果逐渐靠近真实值。在预测阶段,给定的输入为当前缓存队列中数据块的信息,长短期记忆网络输出下一个时刻到来的数据块。

14、神经网络各层根据损失函数回传的损失值进行参数修改,完成训练迭代。

15、步骤3:利用训练好的长短期记忆网络预测下一时刻到来的数据块,辅助进行缓存替换。

16、首先,将缓存队列分为主级缓存队列与次级缓存队列。

17、当次级缓存队列发生变动时,长短期记忆网络根据当前次级缓存队列中数据块的分布,预测出下一时刻即将到来的数据块。

18、该预测结果并非为下一时刻用户实际发出的数据访问请求指令,其作为缓存替换方法的参考项,从两个方面发生作用。一方面,该预测结果作为是否发生缓存替换的信号。当其预测的缓存数据块在缓存队列中已经存在时,不进行操作。当预测结果不存在于缓存队列中时,计算需要被驱逐的缓存数据块。另一方面,当实际发生缓存替换时,长短期记忆网络的预测结果作为替换进来的数据块,存入被驱逐数据块的位置,完成缓存替换。

19、有益效果

20、本发明,与现有技术相比,具有以下优点:

21、1.长短期记忆网络的训练数据集收集自历史数据访问请求序列,代表着用户习惯或者用户在当前界面或应用下呈现的使用偏好,预测结果为下一时刻用户发出的数据请求,能够灵活适应不同用户的行为模式。

22、2.缓存队列被分成了两个子序列,分别赋予其不同的优先级,长短期记忆网络的预测结果仅影响次级缓存队列,大大降低了其预测不稳定性造成的负面影响。两个子缓存队列采取不同的缓存更新策略。主级缓存队列按照用户实际发出的数据访问请求工作,次级缓存队列按照长短期记忆网络的预测结果工作,充分保证了数据访问请求指令频繁时缓存替换算法性能的下限,使计算资源的调动更加灵活,互不干扰。

23、3.次级缓存队列发生数据替换时,求解被替换的数据块充分尊重了最优策略的思想:一个在过去产生缓存命中的数据块在后续都更加容易产生缓存命中,以最小的替换代价实现最佳的性能。

24、4.对数据集进行预处理,使得进入网络训练的样本具有代表性,样本间数量具有平衡性,训练出来的模型泛化能力更强。利用长短期记忆网络处理序列,在网络内部增加序列的维度,提取序列值间蕴含的关联信息,在网络末端缩减维度以便输出预测值。

25、5.通过对替换算法逻辑的设计,当决定替换哪些数据块时,该数据块总是在次级缓存队列中找到,这是双队列替换算法设计自然的结果,它总是将命中频率最低的数据块驱逐到次级队列中,从而保证了缓存替换的稳定性,使缓存替换过程简洁高效。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1