CN114153790A - 一种降低日志文件空间占用的方法、存储介质及终端 - Google Patents

一种降低日志文件空间占用的方法、存储介质及终端 Download PDF

Info

Publication number
CN114153790A
CN114153790A CN202210123742.8A CN202210123742A CN114153790A CN 114153790 A CN114153790 A CN 114153790A CN 202210123742 A CN202210123742 A CN 202210123742A CN 114153790 A CN114153790 A CN 114153790A
Authority
CN
China
Prior art keywords
log
index table
character string
crc
processor
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
CN202210123742.8A
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.)
Sichuan Innogence Technology Co Ltd
Original Assignee
Sichuan Innogence Technology 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 Sichuan Innogence Technology Co Ltd filed Critical Sichuan Innogence Technology Co Ltd
Priority to CN202210123742.8A priority Critical patent/CN114153790A/zh
Publication of CN114153790A publication Critical patent/CN114153790A/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/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity

Landscapes

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

Abstract

本发明公开了一种降低日志文件空间占用的方法、存储介质及终端,涉及计算机技术领域。其中方法包括:构建索引表以及数据查找结构;计算日志语句中每一字符串的CRC编码,并添加至数据查找结构;将字符串添加至索引表,将日志语句中的目标字符串替换为索引表中对应位置的索引值。与打点日志法相比,本发明不需要每次更新源代码之后立即同步更新索引表,在节约大量时间成本的同时,还天然保证了日志文件和索引表的版本一致性,可靠性更高;本发明方法具备写入字符串类型参数的能力,扩展性和灵活性更强;与压缩日志法相比,本发明方法的时间复杂度和空间复杂度更低,更加节约处理器算力。

Description

一种降低日志文件空间占用的方法、存储介质及终端
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种降低日志文件空间占用的方法、存储介质及终端。
背景技术
日志功能对于服务器、通信基站、工业网关和路由器等需要长时间持续运行的设备来讲是一项必备的基础功能,完善的日志功能可以非常有效地帮助运维人员排查定位设备的问题。然而,由于设备的长时间持续运行,必将会产生大量的日志数据,这些日志文件将造成相当大的空间占用。与此同时,无论是硬盘存储器还是闪存,其价格都与存储容量呈正相关,庞大的日志数据文件给设备的生产和运维带来了巨大的成本负担。
容易想到的是,为解决以上提及的问题,我们可以将每一条日志语句映射为一个索引值,在存储日志语句的时候仅需要存储日志语句相对应的索引值和参数即可,也就是通信行业较为常用的打点日志法。其运行逻辑的流程图如图2所示。
然而,打点日志法存在两个问题,一个是打点日志必须在每次更新源代码之后,使用独立的索引表生成器将整个工程的源代码扫描一遍,并提取源代码中存在的所有日志语句,为每一条日志语句生成一个全局唯一的索引值,最终形成索引表文件。对于规模较大的软件工程而言,以上的过程是相当耗时的。而且,一旦在源代码更新之后没有立即更新索引表,将造成源代码和索引表的版本不一致,这将会使得最终生成的日志文件无法正常解析和显示。二是打点日志没有写入字符串类型参数的能力,这将严重限制日志功能的扩展性和灵活性。
而另一种在互联网领域常用的降低日志文件空间占用的方法是压缩日志法,如图3所示,也就是在写入日志语句到文件之前对日志数据进行压缩,这可以非常有效地降低日志文件空间占用。但是,压缩日志数据的算法较为复杂,对于处理器算力的消耗通常也是比较大的。然而,我们并不希望在降低日志文件空间占用的同时,消耗掉太多的处理器算力,毕竟处理器算力才是整台设备当中最宝贵的资源。
发明内容
本发明在于提供一种降低日志文件空间占用的方法、存储介质及终端,其克服了现有的打点日志法和压缩日志法所存在的上述问题,既可以显著降低日志文件空间占用,又非常节约处理器算力。
为了解决上述的问题,本发明采取的技术方案如下:
第一方面,本发明提供了一种降低日志文件空间占用的方法,包括以下步骤:
S1、构建数据查找结构以及索引表;
S2、基于数据查找结构和索引表处理日志语句;
S3、保存处理后的日志语句;
所述步骤S2包括以下步骤:
S21、判断日志语句是否存在字符串,若存在,则继续执行步骤S22,若不存在,则日志语句处理过程结束;
S22、提取日志语句中的字符串作为目标字符串;
S23、计算目标字符串的CRC编码;
S24、判断数据查找结构中是否存在目标字符串的CRC编码,若存在,则跳转至步骤S27,若不存在,则继续执行步骤S25;
S25、将目标字符串的CRC编码添加至数据查找结构;
S26、将目标字符串添加到索引表;
S27、将日志语句中的目标字符串替换为索引表中对应位置的索引值,跳转至步骤S21。
本方案在每写一条日志语句时,提取出日志语句中所有的字符串,并将字符串映射为全局唯一的索引值。当把日志语句中的所有字符串都替换为相应的索引值之后,再将日志语句写入日志文件当中,能显著降低日志文件空间占用。对日志语句中的字符串计算CRC编码值,相当于是在计算字符串的“数字指纹”。使用CRC编码,对于处理器算力的需求相对较小,可以更加快速地计算出字符串的数字指纹。在实际的工程实施过程中,使用MD5或HASH等计算数字指纹的算法同样也是可以的,但是计算速度稍低。
在实际的工程实施当中,数据查找结构可采用红黑树、哈希表、排序树和有序数组等可以实现快速搜索的数据结构。也就是说,本发明使用任何一种可以实现快速搜索的数据结构,均落入本专利的保护范围。
在本发明的一较佳实施方式中,若采用32位处理器实现所述方法,则采用CRC-32算法计算字符串的CRC编码,若采用64位处理器实现所述方法,则采用CRC-64算法计算字符串的CRC编码。
本方案可使CRC编码的位宽与处理器寄存器位宽相等,可以尽可能地节约处理器算力,同时也由于CRC编码位宽较大,可以最大程度地避免CRC编码值冲突问题。
在本发明的一较佳实施方式中,所述数据查找结构为红黑树,所述CRC编码作为红黑树的键值。
本方案使用CRC编码值来作为红黑树的键值来创建红黑树,是因为红黑树的时间复杂度和空间复杂度均较低,具有非常高的实用价值。
第二方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质中存储有程序指令,所述程序指令被处理器执行时实现上述的方法。
第三方面,本发明提供一种终端,包括处理器及存储器,所述处理器与所述存储器电性连接,所述存储器用于存储指令和数据;所述处理器用于执行上述方法。
与现有技术相比,本发明的有益效果是:
1)与打点日志法相比,本发明不需要每次更新源代码之后立即同步更新索引表,在节约大量时间成本的同时,还天然保证了日志文件和索引表的版本一致性,可靠性更高;
2)打点日志法没有写入字符串类型参数的能力,而本发明具备此能力,扩展性和灵活性更强;
3)与压缩日志法相比,本发明方法的时间复杂度和空间复杂度更低,更加节约处理器算力。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举本发明实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本发明所述降低日志文件空间占用的方法流程示意图;
图2是现有技术中的打点日志流程图;
图3是现有技术中的压缩日志流程图;
图4、5、6、7为本发明实施例中的写入字符串时的索引表。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
请参照图1,本发明实施例提供了一种降低日志文件空间占用的方法。
在本实施例中,所适用的处理器为32位处理器,采用CRC-32算法计算字符串的CRC编码,所采用的数据查找结构为红黑树。
在本实施例中,以通信基站启动时,基站设备用以下语句记录一条日志为例,如下:
GNB_LOG(“gNodeB %s startup at %u s (UTC)”, gnb_name, timestamp)
对该日志编码处理过程如下:
首先提取第一个字符串“gNodeB ”,计算其CRC-32编码值为4264837701。此值在红黑树中不存在,所以将其添加红黑树中,将字符串“gNodeB ”添加到索引表中,得到索引表如图4所示。此时将原语句中的字符串“gNodeB ”替换为其索引值0。需要说明的是,CRC-32有标准的计算规则,为业界公知常识。甚至存在许多在线计算CRC-32的网站,比如CRC(循环冗余校验)在线计算_ip33.com。
接下来提取第二个字符串,也就是参数gnb_name的值“Inno-gence GNB”,计算其CRC-32编码值为4115690655。此值在红黑树中不存在,所以将其添加到红黑树中,将字符串“Inno-gence GNB”添加到索引表中,得到索引表如图5所示。此时将原语句中的字符串“Inno-gence GNB”替换为其索引值1。
接下来提取第三个字符串“ startup at ”,计算其CRC-32编码值为2112558363。此值在红黑树中不存在,所以将其添加到红黑树中,将字符串“ startup at ”添加到索引表中,得到索引表如图6所示。此时将原语句中的字符串“ startup at ”替换为其索引值2。
接下来提取第四个字符串“ s (UTC)”,计算其CRC-32编码值为3108629292。此值在红黑树中不存在,所以将其添加到红黑树中,将字符串“ s (UTC)”添加到索引表中,得到索引表如图7所示。此时将原语句中的字符串“ s (UTC)”替换为其索引值3。
最终得到经过编码之后的语句为“0 1 2 1634023630 3”,将该语句保存至日志文件即可。
可以看到编码之后的日志语句比原语句短小了许多,相应地对于存储空间的占用也得到了明显的降低。
编码之后的语句“0 1 2 1634023630 3”的解码过程只需要将索引值替换为相应的字符串即可实现,此处不再赘述。解码之后的输出结果为“gNodeBInno-gence GNBstartup at 1634023630 s (UTC)”。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种降低日志文件空间占用的方法,其特征在于,包括以下步骤:
S1、构建数据查找结构以及索引表;
S2、基于数据查找结构和索引表处理日志语句;
S3、保存处理后的日志语句;
所述步骤S2包括以下步骤:
S21、判断日志语句是否存在字符串,若存在,则继续执行步骤S22,若不存在,则日志语句处理过程结束;
S22、提取日志语句中的字符串作为目标字符串;
S23、计算目标字符串的CRC编码;
S24、判断数据查找结构中是否存在目标字符串的CRC编码,若存在,则跳转至步骤S27,若不存在,则继续执行步骤S25;
S25、将目标字符串的CRC编码添加至数据查找结构;
S26、将目标字符串添加到索引表;
S27、将日志语句中的目标字符串替换为索引表中对应位置的索引值,跳转至步骤S21。
2.根据权利要求1所述的方法,其特征在于,若采用32位处理器实现所述方法,则采用CRC-32算法计算字符串的CRC编码,若采用64位处理器实现所述方法,则采用CRC-64算法计算字符串的CRC编码。
3.根据权利要求1所述的方法,其特征在于,所述数据查找结构为红黑树。
4.根据权利要求3所述的方法,其特征在于,所述CRC编码作为红黑树的键值。
5.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序指令,所述程序指令被处理器执行时实现权利要求1-4中任一项所述的方法。
6.一种终端,其特征在于,包括处理器及存储器,所述处理器与所述存储器电性连接,所述存储器用于存储指令和数据;所述处理器用于执行权利要求1-4任一项所述的方法。
CN202210123742.8A 2022-02-10 2022-02-10 一种降低日志文件空间占用的方法、存储介质及终端 Pending CN114153790A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210123742.8A CN114153790A (zh) 2022-02-10 2022-02-10 一种降低日志文件空间占用的方法、存储介质及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210123742.8A CN114153790A (zh) 2022-02-10 2022-02-10 一种降低日志文件空间占用的方法、存储介质及终端

Publications (1)

Publication Number Publication Date
CN114153790A true CN114153790A (zh) 2022-03-08

Family

ID=80450403

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210123742.8A Pending CN114153790A (zh) 2022-02-10 2022-02-10 一种降低日志文件空间占用的方法、存储介质及终端

Country Status (1)

Country Link
CN (1) CN114153790A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050055367A1 (en) * 2003-07-17 2005-03-10 Vo Binh Dao Method and apparatus for windowing in entropy encoding
CN102227103A (zh) * 2011-06-23 2011-10-26 天津大学 一种基于不等差错保护喷泉码的信道编码传输方法
US20140324881A1 (en) * 2005-12-29 2014-10-30 Amazon Technologies, Inc. Method and apparatus for stress management in a searchable data service
CN104298718A (zh) * 2014-09-23 2015-01-21 中国南方电网有限责任公司 一种基于soa的分布式图档系统
CN107291858A (zh) * 2017-06-09 2017-10-24 成都索贝数码科技股份有限公司 一种基于字符串后缀的数据索引方法
CN109450452A (zh) * 2018-11-27 2019-03-08 中国科学院计算技术研究所 一种针对基因数据的取样字典树索引的压缩方法和系统
CN110119362A (zh) * 2018-02-07 2019-08-13 英特尔公司 存储器写日志存储处理器、方法、系统和指令
CN111538639A (zh) * 2020-04-29 2020-08-14 湖南大学 一种日志解析方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050055367A1 (en) * 2003-07-17 2005-03-10 Vo Binh Dao Method and apparatus for windowing in entropy encoding
US20140324881A1 (en) * 2005-12-29 2014-10-30 Amazon Technologies, Inc. Method and apparatus for stress management in a searchable data service
CN102227103A (zh) * 2011-06-23 2011-10-26 天津大学 一种基于不等差错保护喷泉码的信道编码传输方法
CN104298718A (zh) * 2014-09-23 2015-01-21 中国南方电网有限责任公司 一种基于soa的分布式图档系统
CN107291858A (zh) * 2017-06-09 2017-10-24 成都索贝数码科技股份有限公司 一种基于字符串后缀的数据索引方法
CN110119362A (zh) * 2018-02-07 2019-08-13 英特尔公司 存储器写日志存储处理器、方法、系统和指令
CN109450452A (zh) * 2018-11-27 2019-03-08 中国科学院计算技术研究所 一种针对基因数据的取样字典树索引的压缩方法和系统
CN111538639A (zh) * 2020-04-29 2020-08-14 湖南大学 一种日志解析方法

Similar Documents

Publication Publication Date Title
US9223765B1 (en) Encoding and decoding data using context model grouping
CN103326732B (zh) 压缩数据的方法、解压数据的方法、编码器和解码器
RU2629440C2 (ru) Устройство и способ для ускорения операций сжатия и распаковки
JP3778087B2 (ja) データ符号化装置及びデータ復号装置
US9760593B2 (en) Data dictionary with a reduced need for rebuilding
CN111008230B (zh) 数据存储方法、装置、计算机设备及存储介质
WO2018005342A1 (en) Optimized selection of hash collision chains
US11070231B2 (en) Reducing storage of blockchain metadata via dictionary-style compression
CN114764557A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN115189696A (zh) 一种基于Huffman解码表的硬件压缩解压方法
CN112380238A (zh) 数据库数据查询方法、装置、电子设备及存储介质
CN115408350A (zh) 日志压缩、日志还原方法、装置、计算机设备和存储介质
US7167115B1 (en) Method, apparatus, and computer-readable medium for data compression and decompression utilizing multiple dictionaries
CN114153790A (zh) 一种降低日志文件空间占用的方法、存储介质及终端
CN108959411B (zh) Etl任务的处理方法、装置和设备
CN111767280A (zh) 数据处理方法、装置及存储介质
US8463759B2 (en) Method and system for compressing data
CN115904240A (zh) 数据处理方法、装置、电子设备和存储介质
JP2016052046A (ja) 圧縮装置、伸長装置およびストレージ装置
US10803243B2 (en) Method, device, and medium for restoring text using index which associates coded text and positions thereof in text data
CN112395468A (zh) 一种号码管理方法、装置及电子设备和存储介质
US20190130022A1 (en) Data generation method, information processing device, and recording medium
CN112527753B (zh) Dns解析记录无损压缩方法、装置、电子设备及存储介质
CN115001628B (zh) 数据编码的方法及装置、数据解码的方法及装置和数据结构
CN115293105A (zh) 字符编译方法及装置、设备及介质

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20220308

RJ01 Rejection of invention patent application after publication