The invention provides a data processing method and device, which includes: acquiring the target data acquisition request sent by the first data requesting object at time T1; judging whether the target data has arrived in the predetermined time period T1 before time T1 when the corresponding target data is not obtained in the cache module according to the target data acquisition request. Less than one other data requesting object sends authorization instructions; when it confirms that authorization instructions have been sent to at least one other data requesting object in the predetermined time period T1 prior to time T1, it sends a re-request feedback message to the first data requesting object; and when it confirms that at least one of them has not been sent in the predetermined time period T1 prior to time T1. When the data request object sends an authorization instruction, it sends an authorization instruction to the first data request object. The data processing method provided by the invention can not only ensure that the target data is written back to the cache module as soon as possible, but also effectively reduce the number of data requesting objects accessing the storage module.
【技术实现步骤摘要】
一种数据处理方法及装置
本专利技术涉及通信
,尤其涉及一种数据处理方法及装置。
技术介绍
在使用缓存过程中,对数据的读取操作包括如下步骤:步骤A1,应用请求读取缓存中的数据A;步骤A2,当从缓存无法读取到数据A(即缓存未命中)时,应用会读取存储模块;步骤A3,应用将从存储模块中读取到的数据A回写到缓存。而缓存未命会导致对存储模块资源的使用造成较大的影响,尤其是数据A是热点数据(也即访问频次较高的数据)时,对此解释如下。结合上述的缓存数据读写操作可以发现,当其他应用在步骤A2和步骤A3之间请求从缓存读取数据A时,由于数据A还未回写到缓存,就会产生读请求持续未命中的情形,而这些应用都会执行从存储模块读取数据A,并回写数据A到缓存的操作。而当数据A是热点数据时,会在短时间内产生大量的针对存储模块的读请求,这些请求会占用较多存储模块资源,引起存储模块短时失效,无法访问,也即引起存储毛刺。对此结合图1具体说明如下:假设初始时缓存中不存在数据Key,数据请求对象X1,数据请求对象X2和数据请求对象X3分别去缓存里读数据,均未命中。其中,数据请求对象可以是不同前端业务模块 ...
【技术保护点】
1.一种数据处理方法,其特征在于,包括:获取第一数据请求对象在时刻T1发送的目标数据获取请求;根据所述目标数据获取请求在缓存模块中未获取到相应的目标数据时,判断在时刻T1之前的预定时间段△t1内是否已向至少一其他数据请求对象发送授权指示,其中,所述授权指示用于指示其他数据请求对象从存储模块读取所述目标数据、及将所述目标数据回写到所述缓存模块;在确认出在时刻T1之前的预定时间段△t1内已向至少一其他数据请求对象发送授权指示时,向所述第一数据请求对象发送重请求反馈消息,所述重请求反馈消息用于指示所述第一数据请求对象等待时间△t2后重新向所述缓存模块请求所述目标数据;在确认出在时 ...
【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:获取第一数据请求对象在时刻T1发送的目标数据获取请求;根据所述目标数据获取请求在缓存模块中未获取到相应的目标数据时,判断在时刻T1之前的预定时间段△t1内是否已向至少一其他数据请求对象发送授权指示,其中,所述授权指示用于指示其他数据请求对象从存储模块读取所述目标数据、及将所述目标数据回写到所述缓存模块;在确认出在时刻T1之前的预定时间段△t1内已向至少一其他数据请求对象发送授权指示时,向所述第一数据请求对象发送重请求反馈消息,所述重请求反馈消息用于指示所述第一数据请求对象等待时间△t2后重新向所述缓存模块请求所述目标数据;在确认出在时刻T1之前的预定时间段△t1内未向至少一其他数据请求对象发送授权指示时,向所述第一数据请求对象发送所述授权指示。2.根据权利要求1所述的方法,其特征在于,所述判断在时刻T1之前的预定时间段△t1内是否已向至少一其他数据请求对象发送授权指示,包括:获取时刻T2,其中,所述时刻T2为上一次发送所述授权指示的时刻;判断所述时刻T1和所述时刻T2的差值是否小于预设时间门限△t1;在确认出所述时刻T1和所述时刻T2的差值小于预设时间门限△t1时,确定在所述时刻T1之前的预定时间段△t1内已向至少一其他数据请求对象发送授权指示;在确认出所述时刻T1和所述时刻T2的差值不小于预设时间门限△t1时,确定在所述时刻T1之前的预定时间段△t1内未向至少一其他数据请求对象发送授权指示;所述在确认出在时刻T1之前的预定时间段△t1内未向至少一其他数据请求对象发送授权指示时,向所述第一数据请求对象发送所述授权指示之后,所述方法还包括:将所述时刻T2更新为向所述第一数据请求对象发送所述授权指示的时刻。3.根据权利要求1所述的方法,其特征在于,所述判断在时刻T1之前的预定时间段△t1内是否已向至少一其他数据请求对象发送授权指示,包括:获取时刻T2,其中,所述时刻T2的初始值为首次发送所述授权指示的时刻;判断所述时刻T1和所述时刻T2的差值是否小于预设时间门限△t1以及判断从所述时刻T2开始是否已向N个其他数据请求对象发送所述授权指示,其中,N为大于或等于2的整数;在确认出所述时刻T1和所述时刻T2的差值小于所述预设时间门限△t1且从所述时刻T2开始已向N个其他数据请求对象发送所述授权指示,确定在所述时刻T1之前的预定时间段△t1内已向至少一其他数据请求对象发送授权指示,否则确定在所述时刻T1之前的预定时间段△t1内未向至少一其他数据请求对象发送授权指示;所述在确认出在时刻T1之前的预定时间段△t1内未向至少一其他数据请求对象发送授权指示时,向所述第一数据请求对象发送所述授权指示包括:在确认出所述时刻T1和所述时刻T2的差值大于或等于所述预设时间门限△t1时,向所述第一数据请求对象发送所述授权指示,并将所述时刻T2更新为向所述第一数据请求对象发送所述授权指示的时刻,将已发送授权指示的数据请求对象的数量设置为1;在确认出从所述时刻T2开始未向N个其他数据请求对象发送所述授权指示时,向所述第一数据请求对象发送所述授权指示,维持所述时刻T2不变,并将当前已发送授权指示的数据请求对象的数量加1。4.根据权利要求2-3中任一项所述的方法,其特征在于,△t2=△t1或△t2=△t1-(T1-T2)。5.根据权利要求2-3中任一项所述的方法,其特征在于,所述方法还包括:在所述时刻T2启动计时器,其中,所述计时器的失效时间设置为△t1;所述判断所述时刻T1和时刻T2的差值是否小于预设时间门限△t1包括:读取所述计时器的状态;在所述计时器的状态为有效状态时,确定所述时刻T1和时刻T2的差值小于所述预设时间门限△t1,否则确定所述时刻T1和时刻T2的差值大于或等于所述预设时间门限△t1;所述将所述时刻T2更新为向所述第一数据请求对象发送所述授权指示的时刻包括:在向所述第一数据请求对象发送所述授权指示时重置并启动所述计时器。6.根据权利要求2-3中任一项所述的方法,其特征在于,在判断出所述时刻T1和所述时刻T2的差值大于或等于所述预设时间门限△t1时,所述方法还包括:生成新的版本号,其中,所述版本号为所述缓存模块未命中所述目标数据的标识;所述在确认出在时刻T1之前的预定时间段△t1内未向至少一其他数据请求对象发送授权指示时,向所述第一数据请求对象发送所述授权指示,包括:向所述第一数据请求对象发送所述授权指示,其中,所述授权指示中包括所述新的版本号;所述在确认出在时刻T1之前的预定时间段△t1内未向至少一其他数据请求对象发送授权指示时,向所述第一数据请求对象发送所述授权指示之后,所述方法还包括:接收所述第一数据请求对象将所述目标数据写回所述缓存模块的请求,判断所述第一数据请求对象所携带的版本号是否为最新的版本号;在确认出所述第一数据请求对象所携带的版本号为最新的版本号,将所述第一数据请求对象返回的所述目标数据写入所述缓存模块;在确认出所述第一数据请求对象所携带的版本号不是最新的版本号时,拒绝将所述第一数据请求对象返回的所述目标数据写入所述缓存模块。7.根据权利要求6所述的方法,其特征在于,所述缓存模块中存储有数据表,所述数据表用于存储所述时刻T2和所述版本号;所述获取时刻T2包括:从所述数据表中获取所述时刻T2;所述将所述时刻T2更新为向所述第一数据请求对象发送所述授权指示的时刻包括:将所述数据表中存储的所述时刻T2更新为向所述第一数据请求对象发送所述授权指示的时刻;在所述生成新的版本号之后,所述方...
【专利技术属性】
技术研发人员:张浩,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。