[发明专利]基于Kafka的分布式数据流分级缓存自动迁移方法有效
申请号: | 202010785947.3 | 申请日: | 2020-08-07 |
公开(公告)号: | CN112051968B | 公开(公告)日: | 2021-10-22 |
发明(设计)人: | 付国;杨慧丽;张岩峰;张一奇 | 申请(专利权)人: | 东北大学 |
主分类号: | G06F3/06 | 分类号: | G06F3/06;H04L29/08 |
代理公司: | 大连理工大学专利中心 21200 | 代理人: | 戴风友;梅洪玉 |
地址: | 110819 辽宁*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 kafka 分布式 数据流 分级 缓存 自动 迁移 方法 | ||
1.一种基于Kafka的分布式数据流分级缓存自动迁移方法,其特征在于,以下步骤:
步骤一:对本地所有的TopicPartition进行基本热数据HotData统计,包括最近一次的读写时间信息;
步骤二:计算访问热度score
根据HotData信息,对本地所有的TopicPartition进行score统计,score越大则代表数据热度越高,计算过程如下:
判断所有本地副本集合valueToBrokerId中是否包含该TopicPartition,如果不包含则初始化其score值:TopicPartition为leader副本时score=I_L,为follower副本时score=I_F;I_L和I_F是根据不同硬件配置设置的score初始化参数,并且保证I_LI_F0;如果包含该TopicPartition,则更新其score值,如公式(1)所示:
score=score+sleader+sread+swrite (1)
其中sleader、sread和swrite代表一个log对象的三个不同方面的统计得分:若该TopicPartition是leader副本,sleader取值为S_L,S_L表示leader得分,否则取值为0;若发生读,sread取值为S_R,S_R表示读操作得分,否则取值为0;若发生写,swrite取值为S_W,S_W表示写操作得分,否则取值为0;
步骤三:计算迁移频率counter
统计TopicPartition的迁移频率counter,值越大代表迁移的频率越高,其计算过程分为增加和衰减两个过程:
如果每命中一次就进行增加,那么随着log对象的命中该counter值会非常大,因此将该值控制在0-255之间;每次命中时,计算一个增加阈值p,并更新counter值,计算方式如公式(2):
其中FlogFactor是增长系数,值越大意味着counter值越难增加;r是一个随机数,只有其小于阈值p时才会更新counter值;
在衰减时,计算一个衰减阈值q,并更新counter值,计算方式如公式(3):
其中FDecayTime是衰减系数,值越大代表counter衰减越慢,time是当前系统时间,LastDecreTime是HotData中统计的上次衰减时间;
步骤四:按照迁移频率和访问热度排序,确定需要迁移的TopicPartition;
对所有TopicPartition按迁移频率由高到低排序,排序靠前的不进行迁移,排序的后一半数据再根据score值从大到小重新排序;后一半数据中,score值越高的数据热度越高,若SSD的存储空间能够容纳这些数据,则将他们迁移到SSD中;而score值越低的数据热度相对较低,将自动迁移到HDD中。
2.如权利要求1所述的一种基于Kafka的分布式数据流分级缓存自动迁移算法,其特征在于,步骤三中,所述的公式(2)保证在上百万次的命中时才会增加到255,这样既节省了存储的空间,又保证该值能够代表TopicPartition的命中率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东北大学,未经东北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010785947.3/1.html,转载请声明来源钻瓜专利网。