[发明专利]一种数据处理方法及装置有效
申请号: | 201710254737.X | 申请日: | 2017-04-18 |
公开(公告)号: | CN108733582B | 公开(公告)日: | 2021-10-29 |
发明(设计)人: | 张浩 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F12/0842 | 分类号: | G06F12/0842;G06F12/084;G06F12/0893 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 焦方佼;王琦 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据处理 方法 装置 | ||
本发明提供一种数据处理方法及装置,该方法包括:获取第一数据请求对象在时刻T1发送的目标数据获取请求;根据目标数据获取请求在缓存模块中未获取到相应的目标数据时,判断在时刻T1之前的预定时间段△t1内是否已向至少一其他数据请求对象发送授权指示;在确认出在时刻T1之前的预定时间段△t1内已向至少一其他数据请求对象发送授权指示时,向第一数据请求对象发送重请求反馈消息;在确认出在时刻T1之前的预定时间段△t1内未向至少一其他数据请求对象发送授权指示时,向第一数据请求对象发送授权指示。通过本发明提供的数据处理方法,不仅可以保证尽快的将目标数据写回缓存模块,也可以有效减少访问存储模块的数据请求对象的数量。
技术领域
本发明涉及通信技术领域,尤其涉及一种数据处理方法及装置。
背景技术
在使用缓存过程中,对数据的读取操作包括如下步骤:
步骤A1,应用请求读取缓存中的数据A;
步骤A2,当从缓存无法读取到数据A(即缓存未命中)时,应用会读取存储模块;
步骤A3,应用将从存储模块中读取到的数据A回写到缓存。
而缓存未命会导致对存储模块资源的使用造成较大的影响,尤其是数据A是热点数据(也即访问频次较高的数据)时,对此解释如下。
结合上述的缓存数据读写操作可以发现,当其他应用在步骤A2和步骤A3之间请求从缓存读取数据A时,由于数据A还未回写到缓存,就会产生读请求持续未命中的情形,而这些应用都会执行从存储模块读取数据A,并回写数据A到缓存的操作。而当数据A是热点数据时,会在短时间内产生大量的针对存储模块的读请求,这些请求会占用较多存储模块资源,引起存储模块短时失效,无法访问,也即引起存储毛刺。
对此结合图1具体说明如下:
假设初始时缓存中不存在数据Key,数据请求对象X1,数据请求对象X2和数据请求对象X3分别去缓存里读数据,均未命中。其中,数据请求对象可以是不同前端业务模块,也可以是同一个前端业务模块里的不同进程或者线程。由于在步骤1到步骤3之间的时间段内,所有的数据请求对象去缓存读取数据Key都会发生未命中的情形,因此导致步骤4到步骤9之间的时间段全部的需要读取Key的数据请求对象都会去读存储模块中的Key,并回写缓存。
当数据Key是一个热数据时候,步骤4到步骤6之间的时间段内存储模块会接收到大量的读请求,导致存储模块短时间接收的读请求过多,出现毛刺。
在现有技术中,针对因缓存未命中引起存储毛刺的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供一种数据处理方法及装置,以减少因缓存未命中引起的存储毛刺。
第一方面,本发明实施例提供了一种数据处理方法。该方法包括:获取第一数据请求对象在时刻T1发送的目标数据获取请求;根据目标数据获取请求在缓存模块中未获取到相应的目标数据时,判断在时刻T1之前的预定时间段△t1内是否已向至少一其他数据请求对象发送授权指示,其中,授权指示用于指示其他数据请求对象从存储模块读取目标数据、及将目标数据回写到缓存模块;在确认出在时刻T1之前的预定时间段△t1内已向至少一其他数据请求对象发送授权指示时,向第一数据请求对象发送重请求反馈消息,重请求反馈消息用于指示第一数据请求对象等待时间△t2后重新向缓存模块请求目标数据;在确认出在时刻T1之前的预定时间段△t1内未向至少一其他数据请求对象发送授权指示时,向第一数据请求对象发送授权指示。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710254737.X/2.html,转载请声明来源钻瓜专利网。