一种存储系统的缓存方法技术方案

技术编号:39843773 阅读:5 留言:0更新日期:2023-12-29 16:34
本发明专利技术公开一种存储系统的缓存方法

【技术实现步骤摘要】
一种存储系统的缓存方法、装置及设备


[0001]本专利技术涉及数据缓存领域,特别是涉及一种存储系统的缓存方法

装置及设备


技术介绍

[0002]基于
LSM

tree
的存储系统目前使用的都是传统的缓存算法,例如
LevelDB

RocksDB
都是使用的
LRU
算法,而传统的缓存方法
(

LRU、LFU、FIFO

)
存在一些缺点和挑战

传统缓存方法难以准确地捕捉到
LSM

tree
中数据的访问模式和热点数据

由于
LSM

tree
的多层存储结构以及写入和合并操作的影响,数据的访问频率和热度在不同时间点可能会发生剧烈变化

而传统缓存方法主要基于最近最少使用的原则,无法灵活适应这种变化,可能导致缓存不一致,影响查询性能

传统缓存方法需要事先指定缓存的大小

然而,
LSM

tree
中各个层级的数据大小可能会动态变化,而且不同层级的数据的访问频率和性质不同

因此,选择合适的缓存大小变得困难,设置过小可能导致缓存不命中,查询性能下降,设置过大则可能导致内存浪费和缓存不一致

缓存方法通常依赖于热点数据的存在来提高命中率

对于
LSM

Tree
而言,在冷启动阶段,由于数据分散在多个层级的存储结构中,热点数据的识别和缓存变得困难,可能导致较低的缓存命中率

[0003]基于上述问题,亟需提供一种解决基于
LSM

Tree
的存储系统的缓存利用率低的问题的方法或系统


技术实现思路

[0004]本专利技术的目的是提供一种存储系统的缓存方法

装置及设备,能够提高基于
LSM

Tree
的存储系统的缓存利用率

[0005]为实现上述目的,本专利技术提供了如下方案:
[0006]一种存储系统的缓存方法,包括:
[0007]构建缓存系统;所述缓存系统包括双层的缓存架构以及缓存大小调节器;所述双层的缓存架构包括块缓存和组缓存;所述块缓存使用哈希表作为数据结构,以数据块唯一标识作为键,以数据块本身作为值存储在哈希表中;所述组缓存采用一个哈希表和一个双向链表作为数据结构;哈希表用于快速查找数据,链表用于存储和访问数据;所述缓存大小调节器用于根据采集器采集的内存使用率和系统
io
负载动态调整块缓存和组缓存的缓存空间;
[0008]利用
XGBOOST
算法构建预取器;所述预取器以用户访问的数据

时间以及系统负载为输入,以及预测的要访问的数据键的范围为输出;
[0009]用户通过存储引擎暴露的接口与存储引擎进行交互;
[0010]当读流程先到缓存系统中查找数据时,缓存系统利用采集器和缓存大小调节器动态调整块缓存和组缓存的缓存空间;同时预取器根据预测的要访问的数据键的范围从存储引擎中抓取数据,并放入缓存系统;
[0011]若从缓存系统中命中缓存中的数据,则直接从缓存中返回数据;
[0012]若从缓存系统中没命中缓存,则直接从存储引擎中获取数据

[0013]一种存储系统的缓存装置,包括:
[0014]缓存系统构建单元,用于构建缓存系统;所述缓存系统包括双层的缓存架构以及缓存大小调节器;所述双层的缓存架构包括块缓存和组缓存;所述块缓存使用哈希表作为数据结构,以数据块唯一标识作为键,以数据块本身作为值存储在哈希表中;所述组缓存采用一个哈希表和一个双向链表作为数据结构;哈希表用于快速查找数据,链表用于存储和访问数据;所述缓存大小调节器用于根据采集器采集的内存使用率和系统
io
负载动态调整块缓存和组缓存的缓存空间;
[0015]预取器构建单元,用于利用
XGBOOST
算法构建预取器;所述预取器以用户访问的数据

时间以及系统负载为输入,以及预测的要访问的数据键的范围为输出;
[0016]交互单元,用于用户通过存储引擎暴露的接口与存储引擎进行交互;
[0017]读取单元,用于当读流程先到缓存系统中查找数据时,缓存系统利用采集器和缓存大小调节器动态调整块缓存和组缓存的缓存空间;同时预取器根据预测的要访问的数据键的范围从存储引擎中抓取数据,并放入缓存系统;
[0018]返回数据单元,用于若从缓存系统中命中缓存中的数据,则直接从缓存中返回数据;
[0019]获取数据单元,用于若从缓存系统中没命中缓存,则直接从存储引擎中获取数据

[0020]一种存储系统的缓存设备,应用于所述的一种存储系统的缓存方法,包括:采集器

缓存系统

模型训练器以及预取器模块;
[0021]采集器分别与缓存系统和预取器模块连接;所述模型训练器与预取器模块连接;所述预取器模块与缓存系统连接;所述缓存系统海域存储引擎连接

[0022]可选地,所述缓存系统包括:块缓存

组缓存以及缓存大小调节器;
[0023]块缓存用于存放块缓存哈希表和链表,存储和定位块缓存;当块缓存的热数据小于一个阈值时,退化成组缓存,同时接受缓存大小调节器的指令,动态调整缓存的大小;
[0024]组缓存用于存放块缓存哈希表和链表,存储和定位块缓存;同时它接受缓存大小调节器的指令,动态调整缓存的大小;
[0025]缓存大小调整器用于接受采集器的数据,发送调节参数给块缓存和组缓存,动态调节缓存的大小

[0026]可选地,所述预取器模块包括:预取器和预取通知器;
[0027]所述预取通知器用于通过感知存储引擎是否发生
flush

compaction
操作,进而根据感知结果通知预取器进行预取操作;
[0028]预取器用于接收预取信息,并从存储引擎中获取数据写入缓存,同时接收采集器的信息来动态调节预取的缓存大小

[0029]可选地,所述模型训练器根据采集器采集到的主机负载数据以及存储系统的
IO
数据,采用
XGBOOST
算法进行模型训练

[0030]一种电子设备,包括存储器及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行所述的一种存储系统的缓存方法

[0031]可选地,所述存储器为计算机可本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种存储系统的缓存方法,其特征在于,包括:构建缓存系统;所述缓存系统包括双层的缓存架构以及缓存大小调节器;所述双层的缓存架构包括块缓存和组缓存;所述块缓存使用哈希表作为数据结构,以数据块唯一标识作为键,以数据块本身作为值存储在哈希表中;所述组缓存采用一个哈希表和一个双向链表作为数据结构;哈希表用于快速查找数据,链表用于存储和访问数据;所述缓存大小调节器用于根据采集器采集的内存使用率和系统
io
负载动态调整块缓存和组缓存的缓存空间;利用
XGBOOST
算法构建预取器;所述预取器以用户访问的数据

时间以及系统负载为输入,以及预测的要访问的数据键的范围为输出;用户通过存储引擎暴露的接口与存储引擎进行交互;当读流程先到缓存系统中查找数据时,缓存系统利用采集器和缓存大小调节器动态调整块缓存和组缓存的缓存空间;同时预取器根据预测的要访问的数据键的范围从存储引擎中抓取数据,并放入缓存系统;若从缓存系统中命中缓存中的数据,则直接从缓存中返回数据;若从缓存系统中没命中缓存,则直接从存储引擎中获取数据
。2.
一种存储系统的缓存装置,其特征在于,包括:缓存系统构建单元,用于构建缓存系统;所述缓存系统包括双层的缓存架构以及缓存大小调节器;所述双层的缓存架构包括块缓存和组缓存;所述块缓存使用哈希表作为数据结构,以数据块唯一标识作为键,以数据块本身作为值存储在哈希表中;所述组缓存采用一个哈希表和一个双向链表作为数据结构;哈希表用于快速查找数据,链表用于存储和访问数据;所述缓存大小调节器用于根据采集器采集的内存使用率和系统
io
负载动态调整块缓存和组缓存的缓存空间;预取器构建单元,用于利用
XGBOOST
算法构建预取器;所述预取器以用户访问的数据

时间以及系统负载为输入,以及预测的要访问的数据键的范围为输出;交互单元,用于用户通过存储引擎暴露的接口与存储引擎进行交互;读取单元,用于当读流程先到缓存系统中查找数据时,缓存系统利用采集器和缓存大小调节器动态调整块缓存和组缓存的缓存空间;同时预取器根据预测的要访问的数据键的范围从存储引擎中抓取数据,并放入缓存系统;返回数据单元,用于若从缓存...

【专利技术属性】
技术研发人员:汪磊吕黎星蒋烁淼程学林
申请(专利权)人:上海观测未来信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1