【技术实现步骤摘要】
日志回放方法、装置、设备及介质
[0001]本申请涉及通信领域,尤其涉及一种日志回放方法、装置、设备及介质。
技术介绍
[0002]随着用户并发请求客户端的增多,客户端会通过日志回放保证请求的原子性,并且日志回放会更新元数据和同步用户数据到存储后端,所以日志回放的速度对于数据和元数据的更新至关重要。
[0003]如果数据同步到S3存储后端的延迟较高,当回放速度长时间低于写入速度时,会导致缓存盘积压太多数据,严重时还会导致上层IO降速甚至错误,因此如何提高客户端的日志回放速度成为需要解决的问题。
技术实现思路
[0004]本申请提供一种日志回放方法、装置、设备及介质,用来提高客户端的日志回放速度。
[0005]一方面,本申请提供一种日志回放方法,所述方法包括:
[0006]根据用户请求,生成待回放日志并将所述待回放日志存储至日志存储模块;通过调用事件中心线程,将所述日志存储模块中的所述待回放日志转化为待回放事件;
[0007]从多个回放队列中选取目标回放队列;其中,所述多个回放队列和多个回放线程一一对应;
[0008]将所述待回放事件加入所述目标回放队列,以通过所述目标回放队列对应的目标回放线程,依次取出所述目标回放队列中的待回放事件进行处理,完成对所述待回放事件的回放处理。
[0009]在一种实施例中,所述从多个回放队列中选取目标回放队列,包括:
[0010]对所述待回放事件的哈希值与所述多个回放队列的队列数量进行取模运算;
[0011] ...
【技术保护点】
【技术特征摘要】
1.一种日志回放方法,其特征在于,所述方法包括:根据用户请求,生成待回放日志并将所述待回放日志存储至日志存储模块;通过调用事件中心线程,将所述日志存储模块中的所述待回放日志转化为待回放事件;从多个回放队列中选取目标回放队列;其中,所述多个回放队列和多个回放线程一一对应;将所述待回放事件加入所述目标回放队列,以通过所述目标回放队列对应的目标回放线程,依次取出所述目标回放队列中的待回放事件进行处理,完成对所述待回放事件的回放处理。2.根据权利要求1所述的方法,其特征在于,所述从多个回放队列中选取目标回放队列,包括:对所述待回放事件的哈希值与所述多个回放队列的队列数量进行取模运算;将取模运算的结果对应的回放队列,确定为所述目标回放队列。3.根据权利要求1所述的方法,其特征在于,所述将所述待回放事件加入所述目标回放队列,包括:确定所述待回放事件的操作类型;若所述待回放事件的操作类型为重命名操作,则检测当前所述多个回放队列是否为空;若为空,则将所述待回放事件加入所述目标回放队列,否则,等待所述多个回放队列中的所有事件均完成回放后,将所述待回放事件加入所述目标回放队列;若所述待回放事件的操作类型为写操作或者更新元数据操作,则获取所述多个回放队列中属于写操作和更新元数据操作的第一事件的资源量;若所述第一事件的资源量超过预先设定的第一阈值,则等待所述多个回放队列中的所有事件均完成回放后,将所述待回放事件加入所述目标回放队列,否则,将所述待回放事件加入所述目标回放队列;若所述待回放事件的操作类型为写操作或者更新元数据操作,则检测所述多个回放线程中处于工作状态的工作线程资源量是否超过预先设定的第二阈值;若不超过,则将所述待回放事件加入所述目标回放队列,否则,等待直至所述工作线程资源量不超过所述第二阈值。4.根据权利要求1所述的方法,其特征在于,所述根据用户请求,生成待回放日志,包括:根据用户请求,生成待回放日志并为所述待回放日志添加标识,所述标识表征所述待回放日志所在的日志文件以及所述待回放日志在所述日志文件中的偏移量。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:将完成回放处理的事件对应的日志加入完成事件队列集合;根据所述事件队列集合中存在标识的日志文件相同且偏移量连续的多个事件,则删除所述日志存储模块中的该日志文件。6.根据权利要求1
‑
5任一项所述的方法,其特征在于,所述方法还包括:针对回放线程正在处理的每个事件,计算分配给所述事件的线程资源量与所述事件所需的线程资源量的差值,若所述差值不为零,则释放分配给所述事件的部分线程资源量,直至当前的所述差值为零。7.一种日志回放装置,其特征在于,所述装置包括:
生成模块,用于根据用户请求,生成待回放日志并将所述待回放日志存储至日志存储模块;通过调用事件中心线程,将所述日志存储模块中的所述待回放日志转化为待回放事件;选取模块,用于从多个回放队列中选取目标回放队列;其中,所述多个回放队列和多个回放...
【专利技术属性】
技术研发人员:唐蜜,过晓春,徐文松,陈学伟,黄侨星,
申请(专利权)人:联通数字科技有限公司联通云数据有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。