CN118051485A - 日志处理方法、装置、电子设备及计算机可读存储介质 - Google Patents
日志处理方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN118051485A CN118051485A CN202410301383.XA CN202410301383A CN118051485A CN 118051485 A CN118051485 A CN 118051485A CN 202410301383 A CN202410301383 A CN 202410301383A CN 118051485 A CN118051485 A CN 118051485A
- Authority
- CN
- China
- Prior art keywords
- log
- data object
- deleting
- logs
- target data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 33
- 238000012217 deletion Methods 0.000 claims abstract description 69
- 230000037430 deletion Effects 0.000 claims abstract description 69
- 238000012545 processing Methods 0.000 claims abstract description 45
- 230000008859 change Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 230000001960 triggered effect Effects 0.000 claims description 2
- 238000000034 method Methods 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 12
- 230000001360 synchronised effect Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003203 everyday effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种日志处理方法、装置、电子设备及计算机可读存储介质。其中,该方法包括:在检测到目标数据对象触发删除操作之后,获取目标数据对象对应的日志序列,其中,日志序列由N个日志组成,日志序列中的每个日志至少包括目标数据对象的对象标识以及该日志的日志标识,日志序列中的第i个日志中还包括日志序列中的第i‑1个日志的日志标识,i为大于1并且小于或等于N的整数,N为大于1的整数;将日志序列中的N个日志删除。本申请解决了现有技术中在删除数据对象对应的多个日志时,需要重复执行查询数据对象对应的元数据是否存在的操作,导致的日志删除效率低的技术问题。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及计算机信息存储领域,具体而言,涉及一种日志处理方法、装置、电子设备及计算机可读存储介质。
背景技术
随着互联网应用的高速发展,日益产生的海量非结构化数据需要进行存储。其中,对象存储能够提供海量存储的解决方案,支持百亿或者千亿对象产品规格。
在对象存储解决方案中,非结构化数据修改时需要记录相对应的日志,其中,日志包含数据对象的元数据信息和唯一标识等信息。日志可以用来驱动触发功能特性,实现用户的需求,例如,利用日志实现数据对象的生命周期管理、存储桶的复制和数据归并。另外,在现有技术中,日志是直接存储在元数据中的。需要说明的是,由于在数据对象删除或发生变更后,该数据对象的日志便失去了存在意义,并且占用冗余空间,因此需要及时地对这类日志进行删除以释放冗余空间。
然而,现有技术中在删除数据对象的每个日志时,都需要根据该日志中的对象标识扫描查询数据对象对应的元数据是否已被删除,如果数据对象对应的元数据已被删除,则再删除该日志,因此,在数据对象的日志数量为N个时,则需要重复执行N次查询数据对象对应的元数据是否存在的操作,由于一个数据对象的日志数据通常很多,因此,这会带来大量频繁的元数据查询操作,占用过多的系统开销资源,进而使得日志的删除效率较低。
发明内容
本申请提供了一种日志处理方法、装置、电子设备及计算机可读存储介质,以至少解决现有技术中在删除数据对象对应的多个日志时,需要重复执行查询数据对象对应的元数据是否存在的操作,导致的日志删除效率低的技术问题。
根据本申请的一个方面,提供了一种日志处理方法,包括:在检测到目标数据对象触发删除操作之后,获取目标数据对象对应的日志序列,其中,日志序列由N个日志组成,日志序列中的每个日志至少包括目标数据对象的对象标识以及该日志的日志标识,日志序列中的第i个日志中还包括日志序列中的第i-1个日志的日志标识,i为大于1并且小于或等于N的整数,N为大于1的整数;将日志序列中的N个日志删除。
可选地,日志处理方法还包括:在获取目标数据对象对应的日志序列之前,在检测到目标数据对象创建成功时,生成目标数据对象对应的日志序列中的第一个日志,其中,第一个日志的键信息中至少包括第一个日志的日志标识,第一个日志的值信息中至少包括第一个日志的生成时刻以及目标数据对象的对象标识;在检测到目标数据对象第i次发生变化时,生成目标数据对象对应的日志序列中的第i个日志,其中,第i个日志的键信息中至少包括第i个日志的日志标识,第i个日志的值信息中至少包括第i个日志的生成时刻、目标数据对象的对象标识以及第i-1个日志的日志标识。
可选地,日志处理方法还包括:目标数据对象的元数据的键信息中至少包括目标数据对象的对象标识以及目标数据对象对应的最新日志的日志标识。
可选地,日志处理方法还包括:通过第一删除模式将日志序列中的N个日志删除,其中,第一删除模式用于将日志序列中的N个日志依次移动至缓存队列中,并在缓存队列中的日志达到预设数量之后,删除缓存队列中的所有日志,直至日志序列中的N个日志均移动至缓存队列中并删除。
可选地,日志处理方法还包括:通过第二删除模式将日志序列中的N个日志删除,其中,第二删除模式用于在目标时刻将日志序列中的N个日志删除,目标时刻与日志序列中的最后一个日志的生成时刻的时间间隔时长为预设时长,最后一个日志为目标数据对象触发删除操作时所生成的日志,日志序列中的N个日志在目标时刻来临之前禁止删除。
可选地,日志处理方法还包括:在将日志序列中的N个日志删除之前,判断目标数据对象的管理系统的系统处理速度是否大于预设阈值;在系统处理速度大于预设阈值的情况下,确定在将日志序列中的N个日志删除时采用的删除模式为第一删除模式;在系统处理速度小于或等于预设阈值的情况下,确定在将日志序列中的N个日志删除时采用的删除模式为除第一删除模式之外的删除模式。
可选地,日志处理方法还包括:在将日志序列中的N个日志删除之前,判断目标数据对象的管理系统的系统处理速度是否大于预设阈值;在系统处理速度小于或等于预设阈值的情况下,确定在将日志序列中的N个日志删除时采用的删除模式为第二删除模式;在系统处理速度大于预设阈值的情况下,确定在将日志序列中的N个日志删除时采用的删除模式为除第二删除模式之外的删除模式。
根据本申请的另一方面,还提供了一种日志处理装置,其中,日志处理装置包括:日志序列获取单元,用于在检测到目标数据对象触发删除操作之后,获取目标数据对象对应的日志序列,其中,日志序列由N个日志组成,日志序列中的每个日志至少包括目标数据对象的对象标识以及该日志的日志标识,日志序列中的第i个日志中还包括日志序列中的第i-1个日志的日志标识,i为大于1并且小于或等于N的整数,N为大于1的整数;日志删除单元,用于将日志序列中的N个日志删除。
根据本申请的另一方面,还提供了一种计算机可读存储介质,其中,计算机可读存储介质中存储有计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述任意一项的日志处理方法。
根据本申请的另一方面,还提供了一种电子设备,其中,电子设备包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述任意一项的日志处理方法。
在本申请中,采用将目标数据对象对应的多个日志组成日志序列的方式,在检测到目标数据对象触发删除操作之后,获取目标数据对象对应的日志序列,其中,日志序列由N个日志组成,日志序列中的每个日志至少包括目标数据对象的对象标识以及该日志的日志标识,日志序列中的第i个日志中还包括日志序列中的第i-1个日志的日志标识,i为大于1并且小于或等于N的整数,N为大于1的整数。然后将日志序列中的N个日志删除。
由上述内容可知,本申请在检测到目标数据对象触发删除操作之后,获取目标数据对象对应的日志序列,由于日志序列由N个日志组成,日志序列中的每个日志至少包括目标对象的对象标识以及该日志的日志标识,日志序列中的第i个日志中还包括日志序列中的第i-1个日志的日志标识,因此本申请实质上将目标数据对象对应的所有日志通过日志标识关联起来,进而在无需重复执行N次查询目标数据对象对应的元数据是否存在的操作的情况下,便可以确定目标数据对象对应的所有日志,并且将目标数据对象对应的所有日志进行删除,从而解决了现有技术中在删除目标数据对象对应的多个日志时,需要重复执行查询目标数据对象对应的元数据是否存在的操作,导致的日志删除效率低的技术问题,达到了及时释放目标数据对象对应的日志所占用的存储空间的技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种可选的日志处理方法的流程图;
图2是根据本申请实施例的一种可选的元数据的key信息示意图;
图3是根据本申请实施例的一种可选的日志的key信息示意图;
图4是根据本申请实施例的一种可选的日志写入过程的示意图;
图5是根据本申请实施例的一种可选的日志序列的示意图;
图6是根据本申请实施例的一种可选的基于不同删除模式对日志序列进行删除的示意图;
图7是根据本申请实施例的一种可选的删除模式选择示意图;
图8是根据本申请实施例的一种可选的日志处理装置的示意图;
图9是根据本申请实施例提供的一种电子设备的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
还需要说明的是,本申请所涉及的相关信息和数据,均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
根据本申请实施例,提供了一种日志处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本申请实施例的一种可选的日志处理方法的流程图,如图1所示,该方法包括如下步骤:
步骤S101,在检测到目标数据对象触发删除操作之后,获取目标数据对象对应的日志序列。
在步骤S101中,日志序列由N个日志组成,日志序列中的每个日志至少包括目标数据对象的对象标识以及该日志的日志标识,日志序列中的第i个日志中还包括日志序列中的第i-1个日志的日志标识,i为大于1并且小于或等于N的整数,N为大于1的整数。
可选地,一种日志管理系统可以作为本申请实施例中的日志处理方法的执行主体,其中,日志管理系统可以是一种软件系统,也可以是一种软硬件相结合的嵌入式系统。
可选地,目标数据对象可以是基于存储桶存储的数据对象,其中,目标数据对象对应的日志可以是桶访问日志(Bucket Index Log,简称为bilog)。
可选地,在本申请中,目标数据对象每次发生变化时都会生成一个对应的日志,其中,目标数据对象在被创建时生成第一个日志,第一个日志中至少包括有目标数据对象的对象标识、目标数据对象对应的存储桶标识以及第一个日志的日志标识。随后,在目标数据对象第i次发生变化时,生成目标数据对象对应的日志序列中的第i个日志,其中,第i个日志中至少包括第i个日志的日志标识、第i个日志的生成时刻、目标数据对象的对象标识、目标数据对象对应的存储桶标识以及第i-1个日志的日志标识。
可选地,利用目标数据对象对应的第一个日志的日志标识、第i个日志的日志标识以及第i个日志中记录的第i-1个日志的日志标识,可以将目标数据对象对应的所有日志(即目标数据对象对应的N个日志)组成一个日志序列。
需要说明的是,与现有技术中在目标数据对象的日志数量为N个时需要重复执行N次扫描查询目标数据对象对应的元数据是否存在的操作不同,本申请的方案不需要查询目标数据对象对应的任何元数据即可依据日志序列确定目标数据对象对应的所有日志,从而避免了频繁执行元数据查询操作所导致的系统资源开销大的问题。
为了更清楚地说明本申请实施例的方案与现有技术的区别,以下通过举例进行说明:
假设需要删除目标数据对象对应的所有访问日志,依据现有技术的方案,需要从每个存储桶对应的所有桶访问日志中查询到包括有目标数据对象的对象标识(假设为对象标识A)的日志,如果查询到一个包括对象标识A的日志,便从所有的元数据中查找是否还存在有包括对象标识A的元数据,如果没有查找到包括对象标识A的元数据,则将该日志删除。需要注意到的是,如果目标数据对象的日志数量有N个,则依据现有技术需要重复执行N次扫描查询目标数据对象对应的元数据是否存在的操作,这不仅会因为频繁查询元数据导致系统资源开销大的问题,还会影响N个日志的删除效率。
而在本申请中,由于在管理目标数据对象的N个日志时,已经将N个日志通过每个日志对应的日志标识关联起来,因此可以在无需查询目标数据对象对应的元数据的情况下,直接确定日志序列的N个日志并进行删除,从而解决了现有技术中在删除目标数据对象对应的多个日志时,需要重复执行扫描查询目标数据对象对应的元数据是否存在的操作,导致的日志删除效率低的技术问题。
步骤S102,将日志序列中的N个日志删除。
可选地,在确定目标数据对象的N个日志之后,日志管理系统可以将目标数据对象的N个日志删除,从而实现尽快释放冗余空间的技术效果。
基于上述步骤S101至步骤S102的内容可知,在本申请中,采用将目标数据对象对应的多个日志组成日志序列的方式,在检测到目标数据对象触发删除操作之后,获取目标数据对象对应的日志序列,其中,日志序列由N个日志组成,日志序列中的每个日志至少包括目标数据对象的对象标识以及该日志的日志标识,日志序列中的第i个日志中还包括日志序列中的第i-1个日志的日志标识,i为大于1并且小于或等于N的整数,N为大于1的整数。然后将日志序列中的N个日志删除。
由上述内容可知,本申请在检测到目标数据对象触发删除操作之后,获取目标数据对象对应的日志序列,由于日志序列由N个日志组成,日志序列中的每个日志至少包括目标对象的对象标识以及该日志的日志标识,日志序列中的第i个日志中还包括日志序列中的第i-1个日志的日志标识,因此本申请实质上将目标数据对象对应的所有日志通过日志标识关联起来,进而在无需重复执行N次查询目标数据对象对应的元数据是否存在的操作的情况下,便可以确定目标数据对象对应的所有日志,并且将目标数据对象对应的所有日志进行删除,从而解决了现有技术中在删除目标数据对象对应的多个日志时,需要重复执行查询目标数据对象对应的元数据是否存在的操作,导致的日志删除效率低的技术问题,达到了及时释放目标数据对象对应的日志所占用的存储空间的技术效果。
在一种可选的实施例中,在获取目标数据对象对应的日志序列之前,在检测到目标数据对象创建成功时,日志管理系统生成目标数据对象对应的日志序列中的第一个日志,其中,第一个日志的键信息中至少包括第一个日志的日志标识,第一个日志的值信息中至少包括第一个日志的生成时刻以及目标数据对象的对象标识。
可选地,日志管理系统可以基于序列发生器产生自增加的日志标识(versionstamp),其中,目标数据对象的元数据的键信息(key)中至少包括目标数据对象的对象标识以及目标数据对象对应的最新日志的日志标识。目标数据对象的每个日志的键信息中也包括该日志的日志标识以及目标数据对象的对象标识,因此,通过目标数据对象的对象标识、日志标识能确定目标数据对象的元数据和日志之间的关联关系,也就是实现了元数据和日志的关联关系绑定,并且两者是通过一个事务一起写入元数据。
可选地,在检测到目标数据对象第i次发生变化时,日志管理系统生成目标数据对象对应的日志序列中的第i个日志,其中,第i个日志的键信息中至少包括第i个日志的日志标识,第i个日志的值信息中至少包括第i个日志的生成时刻、目标数据对象的对象标识以及第i-1个日志的日志标识。
可选地,目标数据对象在被创建(上传)成功时,生成目标数据对象的第一个日志,随后,每次目标数据对象发生变化时,都会生成与本次变化类型相关的一个日志,其中,表1为可选的多种会导致目标数据对象发生变化的操作类型。
表1
可选地,数据对象的元数据和日志都可以设计为key-value(键值对)的形式,另外,元数据和日志可以通过命名空间(namespace)作为前缀进行区分,以下简称ns。如图2所示,对象元数据的key包括命名空间I、分隔符类型1、bucket_id(桶id,即存储桶标识)、分隔符1、obj_name(数据对象的对象标识)、分隔符2、对象类型(非为null版本和带version版本)、versionstamp(唯一版本号,即日志标识),其中分隔符有两种,分别是分隔符1(:)和分隔符2(\x00)。由于对象名可以允许有“:”,因此引入分隔符2是为了简化分割逻辑。
可选地,如图3所示,数据对象的日志的key包括命名空间L、分隔符类型1、bucket_id、分隔符1、shard_id、分隔符1、versionstamp,其中,shard_id由数据对象的对象标识对存储桶的总shard数量(例如,199)取hash值计算得到。
可选地,数据对象的日志的value中还至少存储了数据对象的对象标识、数据唯一标签标识(tag)、日志生成时刻的时间戳信息,在数据对象的非第一个日志的value中还存储了该日志的上一个日志的日志标识(versionstamp)。
可选地,数据对象的日志里面记录了versionstamp信息,并且数据对象的元数据中也记录了versionstamp信息,因此可以通过versionstamp找到日志对应的元数据信息。
可选地,首次创建的数据对象的前一个versionstamp是空值,数据对象发生变化、修改时需要读取当前元数据信息,并更为新的元数据信息。因此在更新元数据时会把前一个versionstamp更新在新生成日志的value里面,以保证数据对象对应的所有的日志成为一个链式结构,通过最后的删除类型的日志能向前找到所有的日志进行遍历删除,以达到释放空间的目的。
可选地,图4是根据本申请实施例的一种可选的日志写入过程的示意图,如图4所示,日志标识versionstamp由10个char组成,其中,存储桶bucket1的桶标识为2,桶对应的shard(存储碎片)总共是199个,以shard0为例,顺序进行了4个操作,分别是put写入1.txt(对应的日志key为L:2:0:0000085d9f93fc740000),修改了1.txt的元数据(对应的日志key为L:2:0:0000085d9f93fc740001),post上传了2.txt(对应的日志key为L:2:0:0000085d9f93fc740002),删除了1.txt对象(对应的日志key为L:2:0:0000085d9f93fc740003)。由于遇到了DELETE删除请求,因此将日志“L:2:0:0000085d9f93fc740003”插入访问日志删除模块准备进行删除。
可选地,如图4所示,每个日志的value中至少记录了如下信息:op(操作类型)、obj(数据对象的对象标识)、tag(数据唯一标签标识)、mtime(日志的时间戳信息)、last_versionstamp(基于相同数据对象的上一个日志的versionstamp,如果没有,则为空值)。
在一种可选的实施例中,在将日志序列中的N个日志删除时,可以通过第一删除模式将日志序列中的N个日志删除,其中,第一删除模式用于将日志序列中的N个日志依次移动至缓存队列中,并在缓存队列中的日志达到预设数量之后,删除缓存队列中的所有日志,直至日志序列中的N个日志均移动至缓存队列中并删除。
可选地,通过在日志的value中存储versionstamp,使得目标数据对象对应的所有日志变成了一个倒序的单链表(即日志序列),进而在触发删除的时候通过遍历该单链表做到目标数据对象的所有日志直接删除。与传统的实现方式相比,本申请不用额外再读取目标数据对象的元数据以判断数据对象是否存在,从而实现了降低系统的元数据读取操作所带来的资源消耗的目的。
可选地,如图5所示,shard0写入的4个日志,可以抽象理解为组成了两个单链表(即日志序列),分别是1.txt(L:2:0:0000085d9f93fc740000、L:2:0:0000085d9f93fc740001、L:2:0:0000085d9f93fc740003)和2.txt(L:2:0:0000085d9f93fc740001)。其中,由于删除操作是针对L:2:0:0000085d9f93fc740003的,因此需要删除1.txt(L:2:0:0000085d9f93fc740000、L:2:0:0000085d9f93fc740001、L:2:0:0000085d9f93fc740003)。
可选地,图6是根据本申请实施例的一种可选的基于不同删除模式对日志序列进行删除的示意图,如图6所示,第一删除模式也称为同步删除模式,在删除1.txt(L:2:0:0000085d9f93fc740000、L:2:0:0000085d9f93fc740001、L:2:0:0000085d9f93fc740003)三个日志时,将key为L:2:0:0000085d9f93fc740003的日志、key为L:2:0:0000085d9f93fc740001的日志、key为1.txt(L:2:0:0000085d9f93fc740000依次插入至缓存队列中,在缓存队列中的日志达到预设数量(例如10)之后,删除缓存队列中的所有日志。
在一种可选的实施例中,日志管理系统还可以通过第二删除模式将日志序列中的N个日志删除,其中,第二删除模式用于在目标时刻将日志序列中的N个日志删除,目标时刻与日志序列中的最后一个日志的生成时刻的时间间隔时长为预设时长,最后一个日志为目标数据对象触发删除操作时所生成的日志,日志序列中的N个日志在目标时刻来临之前禁止删除。
可选地,如图6所示,第二删除模式也可以称为异步删除模式,在使用异步删除模式时,日志管理系统会每天扫描每个存储桶对应的删除类型的日志(即数据对象触发删除操作时所生成的日志),然后判断删除类型的日志的生成时刻与当前时刻的间隔时长是否为预设时长(例如30天),如果删除类型的日志的生成时刻与当前时刻的间隔时长为预设时长,则将该日志以及与该日志对应的日志序列插入到日志删除模块进行删除。
需要说明的是,日志管理系统在扫描每个存储桶时是从前往后扫描,由于日志可能在一定时间内还需要继续使用,因此本申请设置了预设时长作为删除等待期。本申请中日志管理系统在使用第二删除模式时会每天扫描所有的存储桶,遍历得到对每个存储桶的获取进度,扫描对应的删除类型的日志,直到满足预设时长的删除等待期,将扫描到的删除类型的日志插入到删除模块进行删除。
在一种可选的实施例中,日志管理系统判断目标数据对象的管理系统的系统处理速度是否大于预设阈值,在系统处理速度大于预设阈值的情况下,日志管理系统确定在将日志序列中的N个日志删除时采用的删除模式为第一删除模式,在系统处理速度小于或等于预设阈值的情况下,日志管理系统确定在将日志序列中的N个日志删除时采用的删除模式为除第一删除模式之外的删除模式。
在一种可选的实施例中,日志管理系统可以判断目标数据对象的管理系统的系统处理速度是否大于预设阈值,在系统处理速度小于或等于预设阈值的情况下,日志管理系统确定在将日志序列中的N个日志删除时采用的删除模式为第二删除模式,在系统处理速度大于预设阈值的情况下,日志管理系统确定在将日志序列中的N个日志删除时采用的删除模式为除第二删除模式之外的删除模式。
可选地,图7是根据本申请实施例的一种可选的删除模式选择示意图,如图7所示,日志管理系统可以设置压力检测服务用于检测目标数据对象的管理系统的系统压力,例如,在管理系统的系统处理速度大于预设阈值时,说明管理系统此时未处于业务高峰期,为了提高日志的删除效率,尽快释放冗余空间,可以采用同步删除模式(即第一删除模式)利用缓存队列的机制异步删除目标数据对象对应的日志。在管理系统的系统处理速度小于或等于预设阈值时,说明管理系统此时处于业务高峰期,为了避免与管理系统的业务处理抢占系统计算资源,可以采用异步删除模式(即第二删除模式)通过扫描日志触发日志删除操作。
由上述内容可知,本申请实施例的技术方案至少实现了以下技术效果:
1、基于序列发生器产生自增加的唯一标识(versionstamp),数据对象的元数据和日志的key中都包含唯一标识,通过对象标识和唯一标识能确定元数据和日志,因此实现了元数据和日志的关联关系绑定,既可以通过日志获取元数据,也可以通过元数据获取日志。
2、数据对象的元数据的key中主要记录了存储桶标识、数据对象的对象标识和versionstamp。在对数据对象进行修改时,还会修改数据对象的元数据的key和value,并产生新的日志。在新的日志的value中额外记录了之前元数据的versionstamp,使相同数据对象对应的多个日志组成一个反转的链式表(即日志序列)。
3、在删除数据对象时,基于该数据对象的日志提供了同步删除和异步删除两种模式。其中,两种删除模式可以依据对数据对象的管理系统的业务压力的影响进行选择,其中,同步删除模式会即时消耗管理系统的系统计算资源,异步删除模式则可以在业务低峰期在占用系统计算资源进行日志扫描和删除。
4、对于同步删除模式,在删除数据对象时,还需要基于数据对象的当前versionstamp确定日志名称,然后将数据对象对应的所有日志依次插入日志删除模块,进行异步删除,其中,日志删除模块会读取链式结构上的日志进行删除。
5、对于异步删除模式,在删除数据对象时还会额外记录删除类型的日志,日志扫描模块通过从前往后遍历扫描删除类型的日志,将删除类型的日志以及关联日志插入日志删除模块进行删除。无论是同步删除模式还是异步删除模式,都是只需要扫描日志,不需要获取元数据用于检查数据对象是否存在,从而减少了资源开销,并且在异步删除模式下,只需要从前往后扫描一次日志,不需要频繁扫描日志。
综上,本申请在检测到目标数据对象触发删除操作之后,获取目标数据对象对应的日志序列,由于日志序列由N个日志组成,日志序列中的每个日志至少包括目标对象的对象标识以及该日志的日志标识,日志序列中的第i个日志中还包括日志序列中的第i-1个日志的日志标识,因此本申请实质上将目标数据对象对应的所有日志通过日志标识关联起来,进而在无需重复执行N次查询目标数据对象对应的元数据是否存在的操作的情况下,便可以确定目标数据对象对应的所有日志,并且将目标数据对象对应的所有日志进行删除,从而解决了现有技术中在删除目标数据对象对应的多个日志时,需要重复执行查询目标数据对象对应的元数据是否存在的操作,导致的日志删除效率低的技术问题,达到了及时释放目标数据对象对应的日志所占用的存储空间的技术效果。
根据本申请实施例,还提供了一种日志处理装置的实施例。图8是根据本申请实施例的一种可选的日志处理装置的示意图,如图8所示,日志处理装置包括:日志序列获取单元801和日志删除单元802。
可选地,日志处理装置还包括:第一处理单元、第二处理单元。其中,第一处理单元,用于在检测到目标数据对象创建成功时,生成目标数据对象对应的日志序列中的第一个日志,其中,第一个日志的键信息中至少包括第一个日志的日志标识,第一个日志的值信息中至少包括第一个日志的生成时刻以及目标数据对象的对象标识;第二处理单元,用于在检测到目标数据对象第i次发生变化时,生成目标数据对象对应的日志序列中的第i个日志,其中,第i个日志的键信息中至少包括第i个日志的日志标识,第i个日志的值信息中至少包括第i个日志的生成时刻、目标数据对象的对象标识以及第i-1个日志的日志标识。
可选地,目标数据对象的元数据的键信息中至少包括目标数据对象的对象标识以及目标数据对象对应的最新日志的日志标识。
可选地,日志删除单元802,包括:第一删除子单元,用于通过第一删除模式将日志序列中的N个日志删除,其中,第一删除模式用于将日志序列中的N个日志依次移动至缓存队列中,并在缓存队列中的日志达到预设数量之后,删除缓存队列中的所有日志,直至日志序列中的N个日志均移动至缓存队列中并删除。
可选地,日志删除单元802,包括:第二删除子单元,用于通过第二删除模式将日志序列中的N个日志删除,其中,第二删除模式用于在目标时刻将日志序列中的N个日志删除,目标时刻与日志序列中的最后一个日志的生成时刻的时间间隔时长为预设时长,最后一个日志为目标数据对象触发删除操作时所生成的日志,日志序列中的N个日志在目标时刻来临之前禁止删除。
可选地,日志处理装置还包括:第一判断单元、第一确定单元以及第二确定单元。其中,第一判断单元,用于判断目标数据对象的管理系统的系统处理速度是否大于预设阈值;第一确定单元,用于在系统处理速度大于预设阈值的情况下,确定在将日志序列中的N个日志删除时采用的删除模式为第一删除模式;第二确定单元,用于在系统处理速度小于或等于预设阈值的情况下,确定在将日志序列中的N个日志删除时采用的删除模式为除第一删除模式之外的删除模式。
可选地,日志处理装置还包括:第二判断单元、第三确定单元以及第四确定单元。其中,第二判断单元,用于判断目标数据对象的管理系统的系统处理速度是否大于预设阈值;第三确定单元,用于在系统处理速度小于或等于预设阈值的情况下,确定在将日志序列中的N个日志删除时采用的删除模式为第二删除模式;第四确定单元,用于在系统处理速度大于预设阈值的情况下,确定在将日志序列中的N个日志删除时采用的删除模式为除第二删除模式之外的删除模式。
根据本申请实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述任意一项的日志处理方法。
根据本申请实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的日志处理方法。
图9是根据本申请实施例提供的一种电子设备的示意图,如图9所示,本申请实施例提供了一种电子设备,电子设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现上述任意一项的日志处理方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种日志处理方法,其特征在于,包括:
在检测到目标数据对象触发删除操作之后,获取所述目标数据对象对应的日志序列,其中,所述日志序列由N个日志组成,所述日志序列中的每个日志至少包括所述目标数据对象的对象标识以及该日志的日志标识,所述日志序列中的第i个日志中还包括所述日志序列中的第i-1个日志的日志标识,i为大于1并且小于或等于N的整数,N为大于1的整数;
将所述日志序列中的N个日志删除。
2.根据权利要求1所述的日志处理方法,其特征在于,在获取所述目标数据对象对应的日志序列之前,所述日志处理方法还包括:
在检测到所述目标数据对象创建成功时,生成所述目标数据对象对应的日志序列中的第一个日志,其中,所述第一个日志的键信息中至少包括所述第一个日志的日志标识,所述第一个日志的值信息中至少包括所述第一个日志的生成时刻以及所述目标数据对象的对象标识;
在检测到所述目标数据对象第i次发生变化时,生成所述目标数据对象对应的日志序列中的第i个日志,其中,所述第i个日志的键信息中至少包括所述第i个日志的日志标识,所述第i个日志的值信息中至少包括所述第i个日志的生成时刻、所述目标数据对象的对象标识以及所述第i-1个日志的日志标识。
3.根据权利要求1所述的日志处理方法,其特征在于,所述目标数据对象的元数据的键信息中至少包括所述目标数据对象的对象标识以及所述目标数据对象对应的最新日志的日志标识。
4.根据权利要求1所述的日志处理方法,其特征在于,将所述日志序列中的N个日志删除,包括:
通过第一删除模式将所述日志序列中的N个日志删除,其中,所述第一删除模式用于将所述日志序列中的N个日志依次移动至缓存队列中,并在所述缓存队列中的日志达到预设数量之后,删除所述缓存队列中的所有日志,直至所述日志序列中的N个日志均移动至所述缓存队列中并删除。
5.根据权利要求1所述的日志处理方法,其特征在于,将所述日志序列中的N个日志删除,包括:
通过第二删除模式将所述日志序列中的N个日志删除,其中,所述第二删除模式用于在目标时刻将所述日志序列中的N个日志删除,所述目标时刻与所述日志序列中的最后一个日志的生成时刻的时间间隔时长为预设时长,所述最后一个日志为所述目标数据对象触发删除操作时所生成的日志,所述日志序列中的N个日志在所述目标时刻来临之前禁止删除。
6.根据权利要求4所述的日志处理方法,其特征在于,在将所述日志序列中的N个日志删除之前,所述日志处理方法还包括:
判断所述目标数据对象的管理系统的系统处理速度是否大于预设阈值;
在所述系统处理速度大于所述预设阈值的情况下,确定在将所述日志序列中的N个日志删除时采用的删除模式为所述第一删除模式;
在所述系统处理速度小于或等于所述预设阈值的情况下,确定在将所述日志序列中的N个日志删除时采用的删除模式为除所述第一删除模式之外的删除模式。
7.根据权利要求5所述的日志处理方法,其特征在于,在将所述日志序列中的N个日志删除之前,所述日志处理方法还包括:
判断所述目标数据对象的管理系统的系统处理速度是否大于预设阈值;
在所述系统处理速度小于或等于所述预设阈值的情况下,确定在将所述日志序列中的N个日志删除时采用的删除模式为所述第二删除模式;
在所述系统处理速度大于所述预设阈值的情况下,确定在将所述日志序列中的N个日志删除时采用的删除模式为除所述第二删除模式之外的删除模式。
8.一种日志处理装置,其特征在于,包括:
日志序列获取单元,用于在检测到目标数据对象触发删除操作之后,获取所述目标数据对象对应的日志序列,其中,所述日志序列由N个日志组成,所述日志序列中的每个日志至少包括所述目标数据对象的对象标识以及该日志的日志标识,所述日志序列中的第i个日志中还包括所述日志序列中的第i-1个日志的日志标识,i为大于1并且小于或等于N的整数,N为大于1的整数;
日志删除单元,用于将所述日志序列中的N个日志删除。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至7中任意一项所述的日志处理方法。
10.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任意一项所述的日志处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410301383.XA CN118051485A (zh) | 2024-03-15 | 2024-03-15 | 日志处理方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410301383.XA CN118051485A (zh) | 2024-03-15 | 2024-03-15 | 日志处理方法、装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118051485A true CN118051485A (zh) | 2024-05-17 |
Family
ID=91046404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410301383.XA Pending CN118051485A (zh) | 2024-03-15 | 2024-03-15 | 日志处理方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118051485A (zh) |
-
2024
- 2024-03-15 CN CN202410301383.XA patent/CN118051485A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8914330B2 (en) | Bulk deletion through segmented files | |
CN100410883C (zh) | 用于处理消息队列的方法和设备 | |
US20190026042A1 (en) | Deduplication-Aware Load Balancing in Distributed Storage Systems | |
CN102629247B (zh) | 一种数据处理方法、装置和系统 | |
CN108255647B (zh) | 一种samba服务器集群下的高速数据备份方法 | |
US20060074847A1 (en) | Method and system for data processing with data replication for the same | |
US8095678B2 (en) | Data processing | |
JP2005267600A5 (zh) | ||
CN104408111A (zh) | 一种删除重复数据的方法及装置 | |
CN104965835B (zh) | 一种分布式文件系统的文件读写方法及装置 | |
Cohen et al. | Hash based disk imaging using AFF4 | |
WO2022083287A1 (zh) | 存储空间管理方法、装置、设备及存储介质 | |
Cruz et al. | A scalable file based data store for forensic analysis | |
US8176087B2 (en) | Data processing | |
Tao et al. | LHF: A new archive based approach to accelerate massive small files access performance in HDFS | |
US20240126700A1 (en) | Document locking and cache memory management in cloud computing | |
CN110352410A (zh) | 跟踪索引节点的访问模式以及预提取索引节点 | |
CN112965939A (zh) | 一种文件合并方法、装置和设备 | |
CN103810114A (zh) | 分配存储空间的方法及装置 | |
CN118051485A (zh) | 日志处理方法、装置、电子设备及计算机可读存储介质 | |
US11586353B2 (en) | Optimized access to high-speed storage device | |
CN114647658A (zh) | 一种数据检索方法、装置、设备及机器可读存储介质 | |
US8082334B1 (en) | Providing direct access to managed content | |
CA2620453A1 (en) | System and method for managing databases associated with respective personal information manager service accounts | |
US10706012B2 (en) | File creation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |