一种分布式数据库键值动态缓存装置的制作方法

文档序号:40266770发布日期:2024-12-11 13:00阅读:19来源:国知局
一种分布式数据库键值动态缓存装置的制作方法

本发明涉及分布式数据库,具体地说是一种分布式数据库键值动态缓存装置。


背景技术:

1、随着信息化时代的不断发展,发展出多种互联网应用,而互联网应用离不开数据的支撑,网络中需要大流量、低时延的场景随处可见,要求承载响应服务的网络和设备提供更高的性能。为了适应不同的业务场景和需求,需要将数据区分成多种类型,其中一种划分方式是根据数据的热度来进行划分,可将数据分为热数据和冷数据。其中热数据即频繁被访问的数据,这些热数据中,有些是可预期的,可以提前得知其大致热度,提前做好本地缓存,以应对高频访问量。而另外一些热数据则是无预期的,无法提前得知该部分数据会在什么时间多高的访问量,大量突发的访问会导致缓存难以命中,读取需要额外的时间开销,读取时延增大,导致正常排队的访问请求无法及时响应,甚至导致数据库瘫痪,业务受到影响。

2、在分布式数据库架构中,来自客户端的缓存请求随着时间和缓存热度的变化而不断变化,不同键在不同时间被访问的频率是不同的,若fpga硬件加速网卡采用静态缓存方法存储部分键值对,在特定情况下,可能导致缓存命中率降低,导致起不到加速作用。

3、故如何规避缓存热度发生变化导致的性能下降和业务影响是目前亟待解决的技术问题。


技术实现思路

1、本发明的技术任务是提供一种分布式数据库键值动态缓存装置,来解决如何规避缓存热度发生变化导致的性能下降和业务影响的问题。

2、本发明的技术任务是按以下方式实现的,一种分布式数据库键值动态缓存装置,该装置包括客户端和数据库服务器,数据库服务器接收来自客户端的缓存请求,并把响应结果返回给客户端;

3、其中,数据库服务器包括cpu、内存系统和fpga硬件加速网卡,内存系统与cpu互联,fpga硬件加速网卡通过pcie总线挂载到cpu上,用于第一层硬件缓存和基本的网络任务硬件卸载和通信协议实现;fpga硬件加速网卡通过光纤与客户端互联。

4、作为优选,所述fpga硬件加速网卡包括发送引擎、接收引擎、过滤器模块、缓存模块以及动态统计模块;fpga硬件加速网卡的工作过程具体如下:

5、(一)当接收引擎检测到网络包后,则将网络包放入到接收队列中,等待前一个网络包的解析完成后,接收引擎开始从接收队列中读取新的网络包,解析出网络包的协议类型、目的端口号、缓存请求类型和数据字段的相关信息,并将网络包的协议类型、目的端口号、缓存请求类型和数据字段的相关信息传递给过滤器;

6、(二)过滤器对包的协议类型和目的端口号进行筛选,情况如下:

7、(1)若检测到不是缓存请求的网络包,则直接旁路给cpu进行处理;

8、(2)若检测到是缓存请求的网络包,则进行请求类型的筛选;具体如下:

9、①若请求类型满足get和set类型,则将解析出来的请求类型和请求中的键传递给缓存模块;

10、②若请求类型不满足get和set类型,则旁路给cpu进行处理;

11、(三)当发送引擎检测到响应数据包后,则将响应数据包放入到发送队列中,等待前一个包发送完成后,发送引擎开始从发送队列中读取响应数据包并与目的端口号、目的ip和目的mac地址的信息组合打包发送给光口;

12、(四)动态统计模块接收到来自过滤器的键信息和缓存命中与否的标志,启动键的统计计数,得出缓存请求键的热度。

13、更优地,所述缓存模块支持get和set两种请求类型,情况如下:

14、若缓存模块检测到请求类型为get,则使用请求中的键索引存储器;并判断是否发生命中:

15、若发生命中,则直接将查询到的值写回到过滤器;过滤器模块一方面把接收到键信息和命中标志传递给动态统计模块处理,另一方面将键信息和命中标志作为响应数据包返回给发送引擎;

16、若未发送命中,则将空标志返回给过滤器,过滤器接收到空标志后,认为键查询失败,一方面将键信息和空标志发送给动态统计模块处理,另一方面则重新将请求类型和请求中的键传递给cpu进行处理,cpu将从数据库中查询到的结果写回给过滤器,过滤器把查询到的结果作为响应数据包返回给发送引擎;

17、若缓存模块检测到请求类型为set,则使用请求中的键查询存储器,并判断是否发生命中:

18、若发生命中,则更新键对应的值;

19、若未发生命中,则将空标志返回给过滤器,过滤器检测到set失败后,则把请求类型和请求中的键发送给cpu进一步处理。

20、更优地,当任一个键的频率值超过阈值后,对键的频率值进行记录保存并上报给cpu,cpu通过动态统计模块得到的键统计结果,得到当前应更新到缓存模块中的高热度键值对以及当前已缓存的低热度键值对,并进行数据的更新;

21、另外,cpu发送复位、计数器清零和设置阈值的控制信息给动态统计模块。

22、作为优选,动态统计模块包括缓存键选择器,缓存键选择器用于接收缓存键请求信号,并根据缓存命中与否的标志输出到不同的热度检测计数器中;

23、更优地,热度检测计数器包括检测高频键的approximate count-min sketch计数器和检测低频键的一维向量计数器;

24、approximate count-min sketch计数器用于接收缓存键缺失的数据流;

25、一维向量计数器用于接收到命中数据流后,将对应键的计数值加一。

26、更优地,所述动态统计模块还包括阈值比较器,阈值比较器用于判断对应键的预估请求次数是否超过设定的阈值,并统计结果上报到cpu。

27、更优地,approximate count-min sketch计数器是一种硬件实现的近似count-min sketch算法计数器,高效的完成元素计数任务;

28、其中,approximate count-min sketch计数器使用4个滚动哈希函数,分别对键计算得到哈希值后,根据approximate count-min sketch算法在哈希值二维向量每行的对应位置将计数加一,再取4个哈希函数对应计数值的最小值作为预估请求次数;计算完成后,将对应键的预估请求次数结果发送到阈值比较器中,若阈值比较器中判定对应键的预估请求次数超过设定的阈值大小,则记录保存并上报给cpu。

29、本发明的分布式数据库键值动态缓存装置具有以下优点:

30、本发明能够动态的对接收到的请求键进行频率检测,统计缓存键热度,将统计得到的高缓存键值对更新到fpga硬件加速网卡中,替换掉fpga硬件加速网卡中缓存的低频键值对,以此规避缓存热度发生变化导致的性能下降和业务影响。



技术特征:

1.一种分布式数据库键值动态缓存装置,其特征在于,该装置包括客户端和数据库服务器,数据库服务器接收来自客户端的缓存请求,并把响应结果返回给客户端;

2.根据权利要求1所述的分布式数据库键值动态缓存装置,其特征在于,所述fpga硬件加速网卡包括发送引擎、接收引擎、过滤器模块、缓存模块以及动态统计模块;fpga硬件加速网卡的工作过程具体如下:

3.根据权利要求2所述的分布式数据库键值动态缓存装置,其特征在于,所述缓存模块支持get和set两种请求类型,情况如下:

4.根据权利要求2所述的分布式数据库键值动态缓存装置,其特征在于,当任一个键的频率值超过阈值后,对键的频率值进行记录保存并上报给cpu,cpu通过动态统计模块得到的键统计结果,得到当前应更新到缓存模块中的高热度键值对以及当前已缓存的低热度键值对,并进行数据的更新;

5.根据权利要求1所述的分布式数据库键值动态缓存装置,其特征在于,动态统计模块包括缓存键选择器,缓存键选择器用于接收缓存键请求信号,并根据缓存命中与否的标志输出到不同的热度检测计数器中。

6.根据权利要求5所述的分布式数据库键值动态缓存装置,其特征在于,热度检测计数器包括检测高频键的approximate count-min sketch计数器和检测低频键的一维向量计数器;

7.根据权利要求6所述的分布式数据库键值动态缓存装置,其特征在于,所述动态统计模块还包括阈值比较器,阈值比较器用于判断对应键的预估请求次数是否超过设定的阈值,并统计结果上报到cpu。

8.根据权利要求6所述的分布式数据库键值动态缓存装置,其特征在于,approximatecount-min sketch计数器是一种硬件实现的近似count-min sketch算法计数器,高效的完成元素计数任务;


技术总结
本发明公开了一种分布式数据库键值动态缓存装置,属于分布式数据库技术领域,本发明要解决的技术问题为如何规避缓存热度发生变化导致的性能下降和业务影响,采用的技术方案为:该装置包括客户端和数据库服务器,数据库服务器接收来自客户端的缓存请求,并把响应结果返回给客户端;其中,数据库服务器包括CPU、内存系统和FPGA硬件加速网卡,内存系统与CPU互联,FPGA硬件加速网卡通过PCIe总线挂载到CPU上,用于第一层硬件缓存和基本的网络任务硬件卸载和通信协议实现;FPGA硬件加速网卡通过光纤与客户端互联。

技术研发人员:李明,陈建新,张晖
受保护的技术使用者:山东浪潮数据库技术有限公司
技术研发日:
技术公布日:2024/12/10
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1