CN111984618A - 日志压缩方法和装置 - Google Patents

日志压缩方法和装置 Download PDF

Info

Publication number
CN111984618A
CN111984618A CN202010842915.2A CN202010842915A CN111984618A CN 111984618 A CN111984618 A CN 111984618A CN 202010842915 A CN202010842915 A CN 202010842915A CN 111984618 A CN111984618 A CN 111984618A
Authority
CN
China
Prior art keywords
log
buffer
compression
compressed
file
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
Application number
CN202010842915.2A
Other languages
English (en)
Inventor
车晓瑶
王建华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kingbase Information Technologies Co Ltd
Original Assignee
Beijing Kingbase Information Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Kingbase Information Technologies Co Ltd filed Critical Beijing Kingbase Information Technologies Co Ltd
Priority to CN202010842915.2A priority Critical patent/CN111984618A/zh
Publication of CN111984618A publication Critical patent/CN111984618A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供一种日志压缩方法和装置,日志压缩方法包括:将新生成的日志写入到内存中的日志缓冲区;在日志缓冲区填满的情况下,对日志缓冲区暂存的日志进行压缩,得到压缩日志文件;存储压缩日志文件,并清空日志缓冲区。本申请提供的日志压缩方法,将新生成的日志存储在内存的日志缓冲区,在日志缓冲区被填满后即对其存储的日志进行压缩、得到压缩日志文件,再将压缩日志文件存储到存储器中。因为仅在存储压缩日志时调用IO进程,所以无需如现有技术一样多次使用IO进程。因为压缩日志文件是已经被压缩的文件,占用IO进程时IO进程执行压缩日志文件存储的时间也较短。

Description

日志压缩方法和装置
技术领域
本申请涉及计算机数据处理技术领域,尤其涉及一种日志压缩方 法和装置。
背景技术
在数据库运行而向外部提供服务时,服务器会记录各种操作行为 而形成日志。在长时间运行、并且触发操作频繁的情况下,服务器会 形成海量日志文件;日志文件存储在服务器硬盘中而消耗大量硬盘资 源,并且为实现日志写入硬盘,需要频繁占用硬盘的IO服务,挤占正 常业务对硬盘IO服务的使用。
为解决日志存储占用大量资源、影响服务器操作的问题,目前已 有的方法是定期的对存储在硬盘中的累积的日志文件进行压缩,存储 并压缩后文件。而对存储在硬盘中的大量日志文件进行压缩,需要占 用硬盘进行读数据操作和占用硬盘进行写数据操作(也就是IO操作); 对大量日志文件存储后进行压缩将短时间内占用大量CPU资源而减小 服务器对正常业务的处理及时性。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申 请提供了一种日志压缩方法和装置。
一方面,本申请提供一种日志压缩方法,包括:
将新生成的日志写入到内存中的日志缓冲区;
在所述日志缓冲区填满的情况下,对所述日志缓冲区暂存的日志 进行压缩,得到压缩日志文件;
存储所述压缩日志文件,并清空所述日志缓冲区。
所述日志缓冲区包括多个缓冲子区;
将新生成的日志写入到内存中的日志缓冲区包括:将新生成的、 不同类型的日志写入到不同的所述缓冲子区,或者,将新生成的、不 同应用对应的日志写入到不同的所述缓冲子区;
在所述日志缓冲区填满的情况下,对所述日志缓冲区暂存的日志 进行压缩包括:在任一缓冲子区填满的情况下,对所述任一缓冲子区 暂存的日志进行压缩;
所述清空所述日志缓冲区包括:清空所述缓冲子区。
同时开启多个压缩处理进程或者压缩处理线程;
在任一缓冲子区填满的情况下,对所述任一缓冲子区暂存的日志 进行压缩,包括:使用一处于空闲状态的所述压缩处理进程或者所述 压缩处理线程,对所述任一缓冲子区暂存的日志进行压缩。
还包括:
根据所述缓冲子区的数量和日志产生的速率,确定开启的所述压 缩处理进程或者所述压缩处理线程的数量。
存储所述压缩日志文件,包括:采用一个IO进程存储所述压缩日 志文件。
一种日志压缩装置,包括:
日志缓存单元,用于将新生成的日志写入到内存中的日志缓冲区;
日志压缩单元,用于在所述日志缓冲区填满的情况下,对所述日 志缓冲区暂存的日志进行压缩,得到压缩日志文件;
存储单元,用于存储所述压缩日志文件;
日志清空单元,用于在所述存储单元存储所述压缩日志文件后, 清空所述日志缓冲区。
所述日志缓冲区包括多个缓冲子区;
所述日志缓存单元将新生成的、不同类型的日志写入到不同的所 述缓冲子区,或者,将新生成的、不同应用对应的日志写入到不同的 所述缓冲子区;
所述日志压缩单元在任一缓冲子区填满的情况下,对所述任一缓 冲子区暂存的日志进行压缩;
所述日志清空单元在所述存储单元存储所述压缩日志文件后清空 所述日志缓冲子区。
所述日志压缩单元同时开启多个压缩处理进程或者压缩处理线 程,以及,
使用一处于空闲状态的所述压缩处理进程或者所述压缩处理线 程,对所述任一缓冲子区暂存的日志进行压缩。
本申请提供的日志压缩方法,将新生成的日志存储在内存日志缓 冲区,在日志缓冲区被填满后即对其存储的日志进行压缩、得到压缩 日志文件,再将压缩日志文件存储到存储器中。因为仅在存储压缩日 志时调用IO进程,所以无需如现有技术一样多次使用IO进程。因为 压缩日志文件是已经被压缩的文件,其文件尺寸相对较小,在占用IO 进程时IO进程执行压缩日志文件存储的时间也较短,单次日志压缩可 以占用较小的CPU使用时间,减小对正常业务处理的影响,满足了服 务器对正常业务处理的及时性需求。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符 合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面 将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而 易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前 提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的日志压缩方法的流程图;
图2是本申请实施例提供的日志压缩装置的结构示意图;
图3是本申请实施例提供的电子设备的结构示意图;
其中:11-日志缓存单元,12-日志压缩单元,13-存储单元,14-日 志清空单元;21-处理器,22-存储器,23-通信接口,24-总线***。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将 对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下, 本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但 本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书 中的实施例只是本公开的一部分实施例,而不是全部的实施例。
本申请实施例提供一种能够降低对存储器IO占用,同时能够减小 在日志压缩时长时间占用CPU日志压缩方法;本申请实施例提供的日 志压缩方法主要应用于短时间内即可能产生大量操作日志的服务器, 以提高服务器的性能。
当然,本申请实施例中的日志压缩方法也可以应用在客户端设备, 诸如个人用电脑等电子设备上;但是考虑到此类设备单次使用开机时 间较短(此类设备一般不会处在长期带电运行状态),并且每次开机使 用时产生的操作日志量也较少,所以本申请实施例提供的日志压缩方 法应用在此类设备上并不能有效地提高设备性能。
图1是本申请实施例提供的日志压缩方法的流程图。如图1所示, 本申请实施例提供的日志压缩方法包括步骤S101-S104。
S101:将新生成的日志写入到内存中的日志缓冲区。
本申请实施例中,为了能够减小对存储器IO的占用,在内存中开 设有专用的日志缓冲区;日志缓冲区是一仅能由写日志进程、日志压 缩进程读取的缓冲区,并且写日志进程对日志缓冲区仅具有写权限、 日志压缩进程对日志缓冲区具有读权限和删除权限,但没有改写权限。
在CPU根据操作生成新的日志后,CPU通过寻址确定日志缓冲区 中尚未使用的内存地址,并将新生成的日志写入到尚未使用的内存地 址中,以形成日志链表。
S102:判断日志缓冲区是否填满;若是,执行S103;若否,继续 执行S101。
本申请实施例中,在每次执行S102后,服务器可以对日志缓冲区 的填充状态做判断。
如果日志缓冲区已经被填满,此时日志缓冲区如果不被清空,将 不能用于存储新生成的日志。根据生产作业要求,日志缓冲区中存储 的日志在没有被存储的情况下并不能直接被清空,所以触发执行步骤 S103。
而如果日志缓冲区没有被填满,则此时还没有执行步骤S103的必 要,还可以直接向未写入的内存地址写入随后生成的日志,因此继续 执行S101。
S103:对日志缓冲区暂存的日志进行压缩,得到压缩日志文件。
步骤S103中,对日志缓冲区暂存的日志进行压缩,是读取缓冲的 日志,并按照特定的压缩算法采用压缩进程对数据进行操作,得到压 缩日志文件。
本申请实施例中,压缩算法可以采用zlib压缩函数库提供的压缩 算法。用户可以根据日志的重要程度、存储器的存储容量以及服务器 的CPU使用情况设定压缩级别(例如zlib中的1级至10级),以能够 在服务器性能损耗和存储空间占用量之间寻求最优。
S104:存储压缩日志文件,并清空日志缓冲区。
在步骤S103生成压缩日志文件后,服务器调用IO进程,将生成 的压缩日志文件存储值存储器。
在压缩日志文件正确存储后,日志缓冲区中暂存的日志已经在存 储器中备份,这些暂存的日志可以被清空,以使得日志缓冲区可以缓 存新的日志。
本申请实施例提供的日志压缩方法,将新生成的日志存储在内存 的日志缓冲区,在日志缓冲区被填满后即对其存储的日志进行压缩、 得到压缩日志文件,再将压缩日志文件存储到存储器中。
因为仅在存储压缩日志时调用IO进程,所以无需如现有技术一样 多次使用IO进程。因为压缩日志文件是已经被压缩的文件,其文件尺 寸相对较小,在占用IO进程时IO进程执行压缩日志文件存储的时间 也较短。
另外,因为是在日志缓冲区填满的情况下,即对其存储的日志进 行压缩,而日志缓冲区的容量较小(常规应用中,日志缓冲区的容量 在10M左右),使得单次日志压缩可以占用较小的CPU使用时间,减 小对正常业务处理的影响,满足了服务器对正常业务处理的及时性需 求。
在本申请实施例一个具体应用中,为了能够精细化地实现日志的 管理,日志缓冲区可以被划分为多个相互独立的缓冲子区。
对应地,步骤S101将新生成的日志写入到日志缓冲区可以为:根 据新生成日志的日志类型,将新生成的日志存储至对应的缓冲子区中。 例如,在一个应用中,日志分为读日志、写日志、改写日志,缓冲子 区可以分为写日志子区、改写日志子区或者缓冲子区。对应的新生成 的日志被写入到对应的日志缓冲区中。
在本申请的其他实施例中,也可以根据应用的不同将日志缓冲划 分缓冲子区,即不同的应用对应不同的缓冲子区,某一应用对应的日 志被存储在对应的缓冲子区中。
基于前述日志缓冲区被划分为多个相互独立的缓冲子区的情况, 本申请实施例中,步骤S103可以细化为:在任一缓冲子区填满的情况 下,对此缓冲子区暂存的日志进行压缩。也就是说,只要有一缓冲子 区被填满对应类型的日志,即对此缓冲子区进行压缩操作,而不考虑 日志缓冲区中其他缓冲子区是否填满。
相应地,步骤S104中的清空日志缓冲区则被细化为,清空已经对 其中日志进行压缩,并且存储对应压缩日志文件的缓冲子区。
在日志缓冲区可以被划分为多个相互独立的缓冲子区,并且每个 缓冲子区独立地进行压缩的情况下,本申请实施例中的电子设备可以 开启多个压缩处理进程,利用多个压缩处理进程执行对日志的压缩操 作。
具体的,本申请实施例中,在任一缓冲子区填满的情况下,则以 利用处在空闲状态的压缩处理进程对某一子缓存区存满的日志进行压 缩处理操作。实际应用中,因为各个缓冲子区从清空到再次填满的时 间比压缩处理进程压缩处理的时间长很多,所以压缩处理进程开启的 数量可以比缓冲子区的数量少。
在本申请实施例具体应用中,可以根据缓冲子区的数量以及日志 产生的速率,确定开启的压缩处理进程的数量。例如,在服务器数据 处理量较小的情况下,可以终止部分已经创建的进程,仅保留一个压 缩处理进程;而在服务器处在大数据吞吐的情况下,可以根据日志产 生的速率,启动满足应用需求(例如保证各个缓冲子区能够快速的清 空,而不会是的日志处在CPU的二级缓存中)数量的压缩处理进程。
在实际操作中,也可以由管理员根据服务器的应用情况设定压缩 处理进程的数量,以根据运行的硬件设备和环境,实现服务器性能的 最优化。
本申请实施例中,通过日志压缩进程对多个缓冲子区进行压缩时, 可以使得各个日志压缩进程采用轮询的方式逐个地判断缓冲子区是否 填满。如果日志压缩进程轮询确定某个缓冲子区已满,则为次标记此 缓冲子区添加互斥锁,并开始对其中的日志进行压缩;其他处在空闲 状态的日志压缩进程查看到某一缓冲子区处在锁定状态,则不会对此缓冲子区进行处理。
前述实施例中,服务器开启多个压缩处理进程用于对填满日志的 缓冲子区中的日志进行压缩处理;在其他实施例中,服务器也可以开 启一个或多个压缩处理进程,并在各个压缩处理进程中开启多个压缩 处理线程对缓存子区暂存的日志进行压缩。
本申请具体应用中,压缩处理日志而生成压缩日志文件需要较长 时间,而存储一个压缩日志文件的速率较快、存储时间相比于压缩时 间很短,因此在本申请实施例中,可以仅开启一个IO进程存储压缩日 志文件。
除了提供前述的日志压缩方法外,本申请实施例还挺一种日志压 缩装置。日志压缩装置和日志压缩方法采用相同的发明构思。下文对 本申请实施例提供的日志压缩装置的结构做介绍。
图2是本申请实施例提供的日志压缩装置的结构示意图。如图2 所示,本申请实施例提供的日志压缩装置包括日志缓存单元11、日志 压缩单元12、存储单元13和日志清空单元14。
日志缓存单元11用于将新生成的日志写入到内存中的日志缓冲 区。日志缓冲区是一仅能由日志缓存单元11、日志压缩单元12读取的 缓冲区,并且日志缓存单元11对日志缓冲区仅具有写权限、日志压缩 单元12对日志缓冲区具有读权限和删除权限,但没有改写权限。
在CPU根据操作生成新的日志后,日志缓存单元11通过寻址确 定日志缓冲区中尚未使用的内存地址,并将新生成的日志写入到尚未 使用的内存地址中。如果此时日志缓冲区处在锁定状态,则CPU可以 将新产生的日志存储在内存中的其他缓冲区,或者直接存储在二级缓 存中。
日志压缩单元12用于在日志缓冲区填满的情况下,对日志缓冲区 暂存的日志进行压缩,得到压缩日志文件。本申请实施例中,日志压 缩单元12可以采用zlib压缩函数库提供的压缩算法。用户可以根据日 志的重要程度、存储器的存储容量以及服务器的CPU使用情况设定压 缩级别(例如zlib压缩函数库中的1-10级),以能够在服务器性能损耗 和存储空间占用量之间寻求最优。
存储单元13用于存储压缩日志文件。本申请实施例中,存储单元13为设置在非易失性存储器上,以能够在设备掉电的情况下仍能存储 压缩日志文件,保证压缩日志文件不丢失。
日志清空单元14用于在存储单元13存储压缩日志文件后,清空 日志缓冲区。在压缩日志文件正确存储后,日志缓冲区中暂存的日志 已经在存储器中备份,这些暂存的日志可以被清空,以使得日志缓冲 区可以缓存新的日志。
本申请实施例提供的日志压缩装置,将新生成的日志存储在内存 的日志缓冲区,在日志缓冲区被填满后即对其存储的日志进行压缩、 得到压缩日志文件,再将压缩日志文件存储到存储器中。
因为仅在存储压缩日志时调用IO进程,所以无需如现有技术一样 多次使用IO进程。因为压缩日志文件是已经被压缩的文件,其文件尺 寸相对较小,在占用IO进程时IO进程执行压缩日志文件存储的时间 也较短。
另外,因为是在日志缓冲区填满的情况下,即对其存储的日志进 行压缩,而日志缓冲区的容量较小(常规应用中,日志缓冲区的容量 在10M左右),使得单次日志压缩可以占用较小的CPU使用时间,减 小对正常业务处理的影响,满足了服务器对正常业务处理的及时性需 求。
本申请实施例的一个具体应用中,日志缓冲区包括多个缓冲子区。
对应的,日志缓存单元11可以将新生成的、不同类型的日志写入 到不同的缓冲子区,或者,将新生成的、不同应用对应的日志写入到 不同的缓冲子区。
在日志缓冲区包括多个缓冲子区,并且各个缓冲子区相互独立的 情况下,日志压缩单元12在任一缓冲子区填满的情况下,对任一缓冲 子区暂存的日志进行压缩。
另外,在日志缓冲区包括多个缓冲子区,并且各个缓冲子区相互 独立的情况下,日志清空单元14在存储单元13存储压缩日志文件后 清空日志缓冲子区。
在本申请实施例中,日志压缩单元12可以同时开启多个压缩处理 进程或者压缩处理线程,并使用一处于空闲状态的压缩处理进程或者 压缩处理线程,对任一缓冲子区暂存的日志进行压缩。
具体的,在任一缓冲子区填满的情况下,日志压缩单元12则查找 一处在空闲状态的压缩处理进程,以利用此进程对某一子缓存区存满 的日志进行压缩处理操作。
在某些应用条件下,因为各个缓冲子区从清空到再次填满的时间 比压缩处理进程压缩处理的时间长很多,所以压缩处理进程开启的数 量可以比缓冲子区的数量少。
实际应用中,日志压缩单元12可以根据缓冲子区的数量以及日志 产生的速率,确定开启的压缩处理进程的数量。例如,在服务器处在 数据处理量较小的情况下,日志压缩单元12可以终止部分已经创建的 进程;而在服务器处在大数据吞吐的情况下,日志压缩单元12可以根 据日志产生的速率,启动满足应用需求(例如保证各个缓冲子区能够 快速的清空,而不会是的日志处在CPU的二级缓存中)数量的压缩处 理进程。
本申请具体应用中,日志压缩单元12通过日志压缩进程对多个缓 冲子区进行压缩时,可以使各个日志压缩进程采用轮询的方式逐个地 判断缓冲子区是否填满。如果日志压缩进程轮询确定某个缓冲子区已 满,则标记此缓冲子区处在锁定状态,并开始对其中的日志进行压缩; 其他处在空闲状态的日志压缩进程查看到某一缓冲子区处在锁定状 态,则不会对此缓冲子区进行处理。
本申请具体应用中,压缩处理日志而生成压缩日志文件需要较长 时间,而存储一个压缩日志文件的速率较快、存储时间相比于压缩时 间很短,因此在本申请实施例中,存储单元13的数量仅为一个(实质 应中,存储单元被实例化为一个存储进程)。
除了提供前述的日志压缩方法和日志压缩装置外,本申请实施例 还提供可以实现前述方法的电子设备。如前所述,电子设备多为服务 器。
图3是本申请实施例提供的电子设备的结构示意图。如图3所示, 第一服务器包括至少一个处理器21、至少一个存储器22和至少一个通 信接口23。通信接口23,用于与外部设备之间的信息传输。
第一服务器中的各个组件通过总线***24耦合在一起。可理解地, 总线***24用于实现这些组件之间的连接通信。总线***24除包括 数据总线之外,还包括电源总线、控制总线和状态信号总线。但为了 清楚说明起见,在图3中将各种总线都标为总线***24。
可以理解,本实施例中的存储器22可以是易失性存储器或非易失 性存储器,或可包括易失性和非易失性存储器两者。在一些实施方式 中,存储器22存储了如下的元素,可执行单元或者数据结构,或者他 们的子集,或者他们的扩展集:操作***和应用程序。
其中,操作***,包含各种***程序,例如框架层、核心库层、 驱动层等,用于实现各种基础任务以及处理基于硬件的任务。应用程 序,包含各种应用程序,例如媒体播放器(MediaPlayer)、浏览器 (Browser)等,用于实现各种应用任务。实现本公开实施例提供的日 志压缩方法的程序可以包含在应用程序中。
在本公开实施例中,处理器21通过调用存储器22存储的程序或 指令,具体的,可以是应用程序中存储的程序或指令,处理器21用于 执行本公开实施例提供的日志压缩方法的各个步骤。
本公开实施例提供的解决天窗问题的方法可以应用于处理器21 中,或者由处理器21实现。处理器21可以是一种集成电路芯片,具 有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理 器21中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理 器21可以是通用处理器、数字信号处理器(Digital Signal Processor, DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、 现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他 可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用 处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本公开实施例提供的日志压缩方法的步骤可以直接体现为硬件译 码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行 完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只 读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介 质中。该存储介质位于存储器22,处理器21读取存储器22中的信息, 结合其硬件完成方法的步骤。
本公开实施例还提出一种非暂态计算机可读存储介质,所述非暂 态计算机可读存储介质存储程序或指令,所述程序或指令使计算机执 行日志压缩方法各实施例的步骤,为避免重复描述,在此不再赘述。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关 系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来, 而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系 或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵 盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或 者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或 者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有 更多限制的情况下,由语句“包括一个……”限定的要素,并不排除 在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要 素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理 解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说 将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精 神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限 制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖 特点相一致的最宽的范围。

Claims (10)

1.一种日志压缩方法,其特征在于,包括:
将新生成的日志写入到内存中的日志缓冲区;
在所述日志缓冲区填满的情况下,对所述日志缓冲区暂存的日志进行压缩,得到压缩日志文件;
存储所述压缩日志文件,并清空所述日志缓冲区。
2.根据权利要求1所述的日志压缩方法,其特征在于,所述日志缓冲区包括多个缓冲子区;
将新生成的日志写入到内存中的日志缓冲区包括:将新生成的、不同类型的日志写入到不同的所述缓冲子区,或者,将新生成的、不同应用对应的日志写入到不同的所述缓冲子区;
在所述日志缓冲区填满的情况下,对所述日志缓冲区暂存的日志进行压缩包括:在任一缓冲子区填满的情况下,对所述任一缓冲子区暂存的日志进行压缩;
所述清空所述日志缓冲区包括:清空所述缓冲子区。
3.根据权利要求2所述的日志压缩方法,其特征在于,同时开启多个压缩处理进程或者压缩处理线程;
在任一缓冲子区填满的情况下,对所述任一缓冲子区暂存的日志进行压缩,包括:使用一处于空闲状态的所述压缩处理进程或者所述压缩处理线程,对所述任一缓冲子区暂存的日志进行压缩。
4.根据权利要求3所述的日志压缩方法,其特征在于,还包括:
根据所述缓冲子区的数量和日志产生的速率,确定开启的所述压缩处理进程或者所述压缩处理线程的数量。
5.根据权利要求1-4任一项所述的日志压缩方法,其特征在于,
存储所述压缩日志文件,包括:采用一个IO进程存储所述压缩日志文件。
6.一种日志压缩装置,其特征在于,包括:
日志缓存单元,用于将新生成的日志写入到内存中的日志缓冲区;
日志压缩单元,用于在所述日志缓冲区填满的情况下,对所述日志缓冲区暂存的日志进行压缩,得到压缩日志文件;
存储单元,用于存储所述压缩日志文件;
日志清空单元,用于在所述存储单元存储所述压缩日志文件后,清空所述日志缓冲区。
7.根据权利要求6所述的日志压缩装置,其特征在于,所述日志缓冲区包括多个缓冲子区;
所述日志缓存单元将新生成的、不同类型的日志写入到不同的所述缓冲子区,或者,将新生成的、不同应用对应的日志写入到不同的所述缓冲子区;
所述日志压缩单元在任一缓冲子区填满的情况下,对所述任一缓冲子区暂存的日志进行压缩;
所述日志清空单元在所述存储单元存储所述压缩日志文件后清空所述日志缓冲子区。
8.根据权利要求7所述的日志压缩装置,其特征在于,
所述日志压缩单元同时开启多个压缩处理进程或者压缩处理线程,以及,
使用一处于空闲状态的所述压缩处理进程或者所述压缩处理线程,对所述任一缓冲子区暂存的日志进行压缩。
9.一种电子设备,其特征在于,包括处理器和存储器;
所述处理器通过调用所述存储器存储的程序或指令,用于执行如权利要求1至5任一项所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行如权利要求1至5任一项所述方法的步骤。
CN202010842915.2A 2020-08-20 2020-08-20 日志压缩方法和装置 Pending CN111984618A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010842915.2A CN111984618A (zh) 2020-08-20 2020-08-20 日志压缩方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010842915.2A CN111984618A (zh) 2020-08-20 2020-08-20 日志压缩方法和装置

Publications (1)

Publication Number Publication Date
CN111984618A true CN111984618A (zh) 2020-11-24

Family

ID=73443861

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010842915.2A Pending CN111984618A (zh) 2020-08-20 2020-08-20 日志压缩方法和装置

Country Status (1)

Country Link
CN (1) CN111984618A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113746665A (zh) * 2021-07-29 2021-12-03 深圳市明源云科技有限公司 日志数据处理方法、装置、计算机程序产品及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030076535A1 (en) * 2001-10-23 2003-04-24 Prosi Rainer Friedrich Banded compositor for variable data
CN101320348A (zh) * 2008-06-25 2008-12-10 中兴通讯股份有限公司 一种嵌入式***的日志功能实现方法
US7779021B1 (en) * 2004-03-09 2010-08-17 Versata Development Group, Inc. Session-based processing method and system
CN102053923A (zh) * 2009-11-05 2011-05-11 北京金山软件有限公司 一种日志数据的存储方法及存储装置
US20130117235A1 (en) * 2011-11-07 2013-05-09 Sap Ag Implicit Group Commit When Writing Database Log Entries
US20140095553A1 (en) * 2012-09-28 2014-04-03 Oracle International Corporation Techniques for moving data files without interrupting access
US20140279917A1 (en) * 2013-03-14 2014-09-18 Oracle International Corporation Techniques To Parallelize CPU and IO Work of Log Writes

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030076535A1 (en) * 2001-10-23 2003-04-24 Prosi Rainer Friedrich Banded compositor for variable data
US7779021B1 (en) * 2004-03-09 2010-08-17 Versata Development Group, Inc. Session-based processing method and system
CN101320348A (zh) * 2008-06-25 2008-12-10 中兴通讯股份有限公司 一种嵌入式***的日志功能实现方法
CN102053923A (zh) * 2009-11-05 2011-05-11 北京金山软件有限公司 一种日志数据的存储方法及存储装置
US20130117235A1 (en) * 2011-11-07 2013-05-09 Sap Ag Implicit Group Commit When Writing Database Log Entries
US20140095553A1 (en) * 2012-09-28 2014-04-03 Oracle International Corporation Techniques for moving data files without interrupting access
US20140279917A1 (en) * 2013-03-14 2014-09-18 Oracle International Corporation Techniques To Parallelize CPU and IO Work of Log Writes

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
赵伟华: "《JAVA网络编程》", 西安电子科技大学出版社, pages: 137 - 138 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113746665A (zh) * 2021-07-29 2021-12-03 深圳市明源云科技有限公司 日志数据处理方法、装置、计算机程序产品及存储介质
CN113746665B (zh) * 2021-07-29 2022-04-15 深圳市明源云科技有限公司 日志数据处理方法、装置及存储介质

Similar Documents

Publication Publication Date Title
US7707232B2 (en) Implementation for collecting unmanaged memory
KR101357397B1 (ko) 데이터 프로세싱 시스템의 메모리 사용을 추적하는 방법
US8307148B2 (en) Flash management techniques
EP3108371B1 (en) Modified memory compression
CN114096953A (zh) 内存管理方法、装置、电子设备和计算机可读介质
US9323460B2 (en) Assigning priorities to data for hybrid drives
KR20140035416A (ko) 강화된 어플리케이션 메타데이터를 갖는 메모리 매니저
US8775749B2 (en) Demand based memory management of non-pagable data storage
CN107533508B (zh) 用于减少压缩存储器时的存储器承诺用量的方法和***
US20080209264A1 (en) Method for Automatic Dump Assurance
CN107408073B (zh) 使用存储器压缩来减少存储器提交开销
CN115407943A (zh) 一种内存转储文件生成方法、装置、设备及可读存储介质
CN112214388A (zh) 内存监控方法、装置、设备及计算机可读存储介质
Han et al. A hybrid swapping scheme based on per-process reclaim for performance improvement of android smartphones (August 2018)
CN116719753A (zh) 数据处理设备、数据处理方法和计算机可读存储介质
CN111984618A (zh) 日志压缩方法和装置
US20050144389A1 (en) Method, system, and apparatus for explicit control over a disk cache memory
US20100299672A1 (en) Memory management device, computer system, and memory management method
US10417121B1 (en) Monitoring memory usage in computing devices
US7681009B2 (en) Dynamically updateable and moveable memory zones
CN112162780B (zh) 应用运行控制方法、装置及电子设备
CN115543859A (zh) 多分区ssd的磨损均衡优化方法、装置、设备及介质
CN113157513B (zh) 一种堆内存破坏检测方法、装置、电子设备及存储介质
CN111367836B (zh) 一种针对数据库的处理方法及装置
CN110209594B (zh) 一种适用于slab结构的内存管理方法及装置

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