日志回放方法、装置、设备及介质制造方法及图纸

技术编号:36541420 阅读:27 留言:0更新日期:2023-02-01 16:41
本申请提供一种日志回放方法、装置、设备及介质,其中方法包括根据用户请求,生成待回放日志并将所述待回放日志存储至日志存储模块;通过调用事件中心线程,将所述日志存储模块中的所述待回放日志转化为待回放事件;从多个回放队列中选取目标回放队列;其中,所述多个回放队列和多个回放线程一一对应;将所述待回放事件加入所述目标回放队列,以通过所述目标回放队列对应的目标回放线程,依次取出所述目标回放队列中的待回放事件进行处理,完成对所述待回放事件的回放处理。本申请的方案由多条回放线程并行完成多条回放队列中的待回放事件的回放处理,可提高客户端的日志回放速度,加快客户端到存储后端的同步速度。加快客户端到存储后端的同步速度。加快客户端到存储后端的同步速度。

【技术实现步骤摘要】
日志回放方法、装置、设备及介质


[0001]本申请涉及通信领域,尤其涉及一种日志回放方法、装置、设备及介质。

技术介绍

[0002]随着用户并发请求客户端的增多,客户端会通过日志回放保证请求的原子性,并且日志回放会更新元数据和同步用户数据到存储后端,所以日志回放的速度对于数据和元数据的更新至关重要。
[0003]如果数据同步到S3存储后端的延迟较高,当回放速度长时间低于写入速度时,会导致缓存盘积压太多数据,严重时还会导致上层IO降速甚至错误,因此如何提高客户端的日志回放速度成为需要解决的问题。

技术实现思路

[0004]本申请提供一种日志回放方法、装置、设备及介质,用来提高客户端的日志回放速度。
[0005]一方面,本申请提供一种日志回放方法,所述方法包括:
[0006]根据用户请求,生成待回放日志并将所述待回放日志存储至日志存储模块;通过调用事件中心线程,将所述日志存储模块中的所述待回放日志转化为待回放事件;
[0007]从多个回放队列中选取目标回放队列;其中,所述多个回放队列和多个回放线程一一对应;
[0008]将所述待回放事件加入所述目标回放队列,以通过所述目标回放队列对应的目标回放线程,依次取出所述目标回放队列中的待回放事件进行处理,完成对所述待回放事件的回放处理。
[0009]在一种实施例中,所述从多个回放队列中选取目标回放队列,包括:
[0010]对所述待回放事件的哈希值与所述多个回放队列的队列数量进行取模运算;
[0011]将取模运算的结果对应的回放队列,确定为所述目标回放队列。
[0012]在一种实施例中,所述将所述待回放事件加入所述目标回放队列,包括:
[0013]确定所述待回放事件的操作类型;
[0014]若所述待回放事件的操作类型为重命名操作,则检测当前所述多个回放队列是否为空;若为空,则将所述待回放事件加入所述目标回放队列,否则,等待所述多个回放队列中的所有事件均完成回放后,将所述待回放事件加入所述目标回放队列;
[0015]若所述待回放事件的操作类型为写操作或者更新元数据操作,则获取所述多个回放队列中属于写操作和更新元数据操作的第一事件的资源量;若所述第一事件的资源量超过预先设定的第一阈值,则等待所述多个回放队列中的所有事件均完成回放后,将所述待回放事件加入所述目标回放队列,否则,将所述待回放事件加入所述目标回放队列;
[0016]若所述待回放事件的操作类型为写操作或者更新元数据操作,则检测所述多个回放线程中处于工作状态的工作线程资源量是否超过预先设定的第二阈值;若不超过,则将
所述待回放事件加入所述目标回放队列,否则,等待直至所述工作线程资源量不超过所述第二阈值。
[0017]在一种实施例中,所述根据用户请求,生成待回放日志,包括:
[0018]根据用户请求,生成待回放日志并为所述待回放日志添加标识,所述标识表征所述待回放日志所在的日志文件以及所述待回放日志在所述日志文件中的偏移量。
[0019]在一种实施例中,所述方法还包括:
[0020]将完成回放处理的事件对应的日志加入完成事件队列集合;
[0021]根据所述事件队列集合中存在标识的日志文件相同且偏移量连续的多个事件,则删除所述日志存储模块中的该日志文件。
[0022]在一种实施例中,所述方法还包括:
[0023]针对回放线程正在处理的每个事件,计算分配给所述事件的线程资源量与所述事件所需的线程资源量的差值,若所述差值不为零,则释放分配给所述事件的部分线程资源量,直至当前的所述差值为零。
[0024]另一方面,本申请提供一种日志回放装置,所述装置包括:
[0025]生成模块,用于根据用户请求,生成待回放日志并将所述待回放日志存储至日志存储模块;通过调用事件中心线程,将所述日志存储模块中的所述待回放日志转化为待回放事件;
[0026]选取模块,用于从多个回放队列中选取目标回放队列;其中,所述多个回放队列和多个回放线程一一对应;
[0027]处理模块,用于将所述待回放事件加入所述目标回放队列,以通过所述目标回放队列对应的目标回放线程,依次取出所述目标回放队列中的待回放事件进行处理,完成对所述待回放事件的回放处理。
[0028]在一种实施例中,所述选取模块,具体用于对所述待回放事件的哈希值与所述多个回放队列的队列数量进行取模运算;
[0029]所述选取模块,具体还用于将取模运算的结果对应的回放队列,确定为所述目标回放队列。
[0030]在一种实施例中,所述处理模块,具体用于确定所述待回放事件的操作类型;
[0031]所述处理模块,具体还用于所述待回放事件的操作类型为重命名操作,则检测当前所述多个回放队列是否为空;若为空,则将所述待回放事件加入所述目标回放队列,否则,等待所述多个回放队列中的所有事件均完成回放后,将所述待回放事件加入所述目标回放队列;
[0032]所述处理模块,具体还用于若所述待回放事件的操作类型为写操作或者更新元数据操作,则获取所述多个回放队列中属于写操作和更新元数据操作的第一事件的资源量;若所述第一事件的资源量超过预先设定的第一阈值,则等待所述多个回放队列中的所有事件均完成回放后,将所述待回放事件加入所述目标回放队列,否则,将所述待回放事件加入所述目标回放队列;
[0033]所述处理模块,具体还用于若所述待回放事件的操作类型为写操作或者更新元数据操作,则检测所述多个回放线程中处于工作状态的工作线程资源量是否超过预先设定的第二阈值;若不超过,则将所述待回放事件加入所述目标回放队列,否则,等待直至所述工
作线程资源量不超过所述第二阈值。
[0034]在一种实施例中,所述生成模块,具体用于根据用户请求,生成待回放日志并为所述待回放日志添加标识,所述标识表征所述待回放日志所在的日志文件以及所述待回放日志在所述日志文件中的偏移量。
[0035]在一种实施例中,所述处理模块,具体还用于将完成回放处理的事件对应的日志加入完成事件队列集合;
[0036]所述处理模块,具体还用于根据所述事件队列集合中存在标识的日志文件相同且偏移量连续的多个事件,则删除所述日志存储模块中的该日志文件。
[0037]在一种实施例中,所述处理模块,具体还用于针对回放线程正在处理的每个事件,计算分配给所述事件的线程资源量与所述事件所需的线程资源量的差值,若所述差值不为零,则释放分配给所述事件的部分线程资源量,直至当前的所述差值为零。
[0038]又一方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
[0039]所述存储器存储计算机执行指令;
[0040]所述处理器执行所述存储器存储的计算机执行指令,以实现如前所述的日志回放方法。
[0041]又一方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种日志回放方法,其特征在于,所述方法包括:根据用户请求,生成待回放日志并将所述待回放日志存储至日志存储模块;通过调用事件中心线程,将所述日志存储模块中的所述待回放日志转化为待回放事件;从多个回放队列中选取目标回放队列;其中,所述多个回放队列和多个回放线程一一对应;将所述待回放事件加入所述目标回放队列,以通过所述目标回放队列对应的目标回放线程,依次取出所述目标回放队列中的待回放事件进行处理,完成对所述待回放事件的回放处理。2.根据权利要求1所述的方法,其特征在于,所述从多个回放队列中选取目标回放队列,包括:对所述待回放事件的哈希值与所述多个回放队列的队列数量进行取模运算;将取模运算的结果对应的回放队列,确定为所述目标回放队列。3.根据权利要求1所述的方法,其特征在于,所述将所述待回放事件加入所述目标回放队列,包括:确定所述待回放事件的操作类型;若所述待回放事件的操作类型为重命名操作,则检测当前所述多个回放队列是否为空;若为空,则将所述待回放事件加入所述目标回放队列,否则,等待所述多个回放队列中的所有事件均完成回放后,将所述待回放事件加入所述目标回放队列;若所述待回放事件的操作类型为写操作或者更新元数据操作,则获取所述多个回放队列中属于写操作和更新元数据操作的第一事件的资源量;若所述第一事件的资源量超过预先设定的第一阈值,则等待所述多个回放队列中的所有事件均完成回放后,将所述待回放事件加入所述目标回放队列,否则,将所述待回放事件加入所述目标回放队列;若所述待回放事件的操作类型为写操作或者更新元数据操作,则检测所述多个回放线程中处于工作状态的工作线程资源量是否超过预先设定的第二阈值;若不超过,则将所述待回放事件加入所述目标回放队列,否则,等待直至所述工作线程资源量不超过所述第二阈值。4.根据权利要求1所述的方法,其特征在于,所述根据用户请求,生成待回放日志,包括:根据用户请求,生成待回放日志并为所述待回放日志添加标识,所述标识表征所述待回放日志所在的日志文件以及所述待回放日志在所述日志文件中的偏移量。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:将完成回放处理的事件对应的日志加入完成事件队列集合;根据所述事件队列集合中存在标识的日志文件相同且偏移量连续的多个事件,则删除所述日志存储模块中的该日志文件。6.根据权利要求1

5任一项所述的方法,其特征在于,所述方法还包括:针对回放线程正在处理的每个事件,计算分配给所述事件的线程资源量与所述事件所需的线程资源量的差值,若所述差值不为零,则释放分配给所述事件的部分线程资源量,直至当前的所述差值为零。7.一种日志回放装置,其特征在于,所述装置包括:
生成模块,用于根据用户请求,生成待回放日志并将所述待回放日志存储至日志存储模块;通过调用事件中心线程,将所述日志存储模块中的所述待回放日志转化为待回放事件;选取模块,用于从多个回放队列中选取目标回放队列;其中,所述多个回放队列和多个回放...

【专利技术属性】
技术研发人员:唐蜜过晓春徐文松陈学伟黄侨星
申请(专利权)人:联通数字科技有限公司联通云数据有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1