CN109918341B - 日志处理方法及装置 - Google Patents
日志处理方法及装置 Download PDFInfo
- Publication number
- CN109918341B CN109918341B CN201910142862.0A CN201910142862A CN109918341B CN 109918341 B CN109918341 B CN 109918341B CN 201910142862 A CN201910142862 A CN 201910142862A CN 109918341 B CN109918341 B CN 109918341B
- Authority
- CN
- China
- Prior art keywords
- log
- information
- index
- node
- target
- 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.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种日志处理方法及装置,应用于数据处理设备。在不使用专业数据库的前提下,通过在日志文件的预设位置配置一存储区域,该存储区域用于存储B‑Tree结构的日志头。该数据处理设备通过该日志头查询待查找的目标日志信息的存储位置,进而快速的获得该目标日志信息。由于不需要专业的数据库,减少了数据处理设备的成本。同时,得益于该日志头快速的索引能力,减少了查询目标日志信息的查找时间,提高了存储介质的使用寿命。
Description
技术领域
本申请涉及数据处理领域,具体而言,涉及一种日志处理方法及装置。
背景技术
在计算机中,日志文件用于存储该计算机在运行过程中发生的事件,比如,用户操作事件、设备运行错误事件或者其他一些能体现设备当前状态的信息。目前,在处理大量的日志信息时,通常使用专业的数据库进行存储。然而,使用专业的数据库会导致设备成本的增加。
发明内容
为了克服现有技术中的上述不足,本申请的目的在于提供一种日志处理方法,应用于数据处理设备,所述数据处理设备预存有日志文件,所述日志文件包括日志体及日志头,所述日志体用于存储日志信息,所述日志头用于存储所述日志信息的存储位置对应的索引信息,所述位置索引信息为所述日志信息的日志标识与该日志信息的存储位置之间的对应关系,所述日志头中存储的位置索引信息为预设层数和预设阶数的B-Tree结构,所述方法包括:
获取待查找的目标日志信息的目标日志标识;
从所述B-Tree结构的根索引节点起,按照B-Tree索引规则查询与该目标日志标识对应的目标存储位置;
从所述目标存储位置获取所述目标日志信息。
可选地,所述B-Tree结构包括多个索引节点,所述索引节点包括多个所述位置索引信息,所述位置索引信息还包括所述日志信息的日志标识和映射信息的对应关系,所述映射信息用于指向其他索引节点存储位置,所述从所述B-Tree结构的根索引节点起,按照B-Tree索引规则查询与该目标日志标识对应的目标存储位置的步骤包括:
将所述B-Tree结构的根索引节点作为目标索引节点,执行节点索引步骤,其中所述节点索引步骤包括:
若在所述目标索引节点中未查询到所述目标日志标识对应的目标存储位置,则根据所述目标日志标识所在的数值区间确定目标映射信息,所述数值区间由所述目标索引节点包括的日志标识组成,所述日志标识的类型为数字;
通过所述目标映射信息获得所述目标索引节点的下一个子索引节点的存储位置;
将所述下一个子索引节点作为新的目标索引节点,再次执行所述节点索引步骤。
可选地,所述方法还包括:
创建所述日志文件;
在所述日志文件的第一预设位置配置为用于存储所述日志头的存储区域。
可选地,所述方法还包括:
在所述日志文件的第二预设位置配置为用于存储所述日志头的属性信息的存储区域。
可选地,所述方法还包括:
获取待存储日志信息的日志标识;
将所述待存储日志信息存储到所述日志文件的日志体,并获取相应的存储位置;
根据所述待存储日志信息的日志标识及存储位置生成该待存储日志信息的位置索引信息,根据B-Tree结构的插入规则从所述日志头中选取一索引节点作为插入节点,并将所述待存储日志信息的位置索引信息插入所述插入节点。
可选地,所述将所述待存储日志信息的日志标识和所述待存储日志信息的存储位置作为新的位置索引信息,根据B-Tree结构的插入规则从所述日志头中选取一索引节点作为插入节点,并将所述新的位置索引信息插入所述插入节点的步骤包括:
检测所述插入节点所包括的日志标识的数量;
若所述新的位置索引信息插入所述插入节点后,所述插入节点所包括的日志标识的数量等于所述预设阶数,执行结构调整步骤,所述结构调整步骤包括:
将所述插入节点预设位置的位置索引信息插入到该插入节点的父索引节点,使得所述插入节点裂变出一个新的索引节点;
获取所述新的索引节点的位置信息,存储到所述父索引节点新插入的位置索引信息中,作为该新插入的位置索引信息的映射信息,使得所述父节点指向所述新的索引节点;
将所述父索引节点作为新的插入节点,再次执行所述结构调整步骤。
可选地,所述方法还包括:
将所述日志头做进行内存映射文件处理。
本申请的另一目的在于提供一种日志处理装置,应用于数据处理设备,所述数据处理设备预存有日志文件,所述日志文件包括日志体及日志头,所述日志体用于存储日志信息,所述日志头用于存储所述日志信息的位置索引信息,所述位置索引信息为所述日志信息的日志标识与该日志信息的存储位置之间的对应关系,所述日志头中存储的位置索引信息为预设层数和预设阶数的B-Tree结构,所述日志处理装置包括标识获取模块、索引模块和日志获取模块;
所述标识获取模块用于获取待查找的目标日志信息的目标日志标识;
所述索引模块从所述B-Tree结构的根索引节点起,按照B-Tree索引规则查询与该目标日志标识对应的目标存储位置;
所述日志获取模块从所述目标存储位置获取所述目标日志信息。
可选地,所述B-Tree结构包括多个索引节点,所述索引节点包括多个所述位置索引信息,所述位置索引信息还包括所述日志信息的日志标识和映射信息的对应关系,所述映射信息用于指向其他索引节点存储位置,所述索引模块通过以下方式查询所述目标日志:
将所述B-Tree结构的根索引节点作为目标索引节点,执行节点索引步骤,其中所述节点索引步骤包括:
若在所述目标索引节点中未查询到所述目标日志标识对应的目标存储位置,则根据所述目标日志标识所在的数值区间确定目标映射信息,所述数值区间由所述目标索引节点包括的日志标识组成,所述日志标识的类型为数字;
通过所述目标映射信息获得所述目标索引节点的下一个子索引节点的存储位置;
将所述下一个子索引节点作为新的目标索引节点,再次执行所述节点索引步骤。
可选地,所述日志处理装置还包括创建模块和配置模块;
所述创建模块创建所述日志文件;
所述配置模块用于在所述日志文件的第一预设位置配置为用于存储所述日志头的存储区域。
相对于现有技术而言,本申请具有以下有益效果:
本申请实施例提供一种日志处理方法及装置,应用于数据处理设备。在不使用专业数据库的前提下,通过在日志文件的预设位置配置一存储区域,该存储区域用于存储B-Tree结构的日志头。该数据处理设备通过该日志头索引待查找的目标日志信息的存储位置,进而快速的获得该目标日志信息。由于不需要专业的数据库,减少了数据处理设备的成本。同时,得益于该日志头快速的索引能力,减少了查询该目标日志信息的查找时间,提高了存储介质的使用寿命。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的数据处理设备的硬件结构图;
图2为本申请实施例提供的日志处理方法的步骤流程图;
图3为本申请实施例提供的索引节点的结构示意图;
图4为本申请实施例提供的日志头的结构示意图;
图5为本申请实施例提供的日志头插入流程示意图之一;
图6为本申请实施例提供的日志头插入流程示意图之二;
图7为本申请实施例提供的日志处理装置的功能模块示意图之一;
图8为本申请实施例提供的日志处理装置的功能模块示意图之二。
图标:100-数据处理设备;130-处理器;110-日志处理装置;120-存储器;6001-第一插入节点A;6002-第一待插入位置索引信息;6003-第一插入节点B;6005-第二插入节点A;6006-第二待插入位置索引信息;6007-第二插入节点B;6008-父索引节点;6009-第二插入节点C;6010-新的索引节点;1101-标识获取模块;1102-索引模块;1103-日志获取模块;1104-创建模块;1105-配置模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在一种实施例中,数据处理设备100将日志文件存储到长效存储介质中,当日志文件对应的设备或者系统出现故障时,需要读取日志文件,并分析日志文件进而确定故障发生的原因。数据处理设备100一般通过逐条读取日志文件,并通过每一条日志文件的唯一标识符对读取的日志文件进行过滤。这种逐条过滤日志文件的方式,在日志量小的情况下可以满足业务需求,当日志量达到一定数量级时,就会出现性能和效率上的瓶颈。
有鉴于此,本实施例提供一种数据处理设备100。请参照图1,所示的数据处理设备100的硬件结构图。数据处理设备100包括处理器130、存储器120和日志处理装置110。存储器120和处理器130以及其他各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
数据处理设备100可以是,但不限于,智能手机、个人电脑(personal computer,PC)、平板电脑、个人数字助理(personal digital assistant,PDA)、移动上网设备(mobileInternet device,MID)等。
数据处理设备100的操作系统可以是,但不限于,安卓(Android)系统、IOS(iPhoneoperating system)系统、Windows phone系统、Windows系统等。
请参照图2,所示的应用与图1所示数据处理设备100的数据处理方法的步骤流程图。数据处理设备100预存有日志文件。日志文件包括日志体及日志头。该日志体用于存储日志信息;该日志头用于存储该日志信息的存储位置对应的位置索引信息。位置索引信息为日志信息的日志标识与该日志信息的存储位置之间的对应关系。日志头中存储的位置索引信息为预设层数和预设阶数的B-Tree结构。B-Tree结构包括多个索引节点,其中,每个索引节点包括多个位置索引信息。位置索引信息还包括日志信息的日志标识和映射信息的对应关系。映射信息用于指向其他索引节点存储位置。
请参照图3所示,索引节点的结构示意图,图3中的每一列表示一个用于存储该位置索引信息的存储单元。存储该位置索引信息的存储单元包括关键字字段、偏移字段、映射字段,其中,关键字字段用于存储日志标识,偏移字段用于存储日志信息的存储位置,偏移字段用于存储指向其他索引节点的映射信息。相较于一般的B-Tree结构,通过在日志头的每一个索引节点设置偏移字段,使得在查询日志头时,不需要查询到该B-Tree结构的叶子节点才能获得待查找的目标日志信息对应存储位置,提高了索引效率。
值得说明的是,索引节点的最后一列用于存储位置索引信息的存储单元包括空白字段和映射字段,其中空白字段不用于存储数据。将该索引节点按照图3所示的结构设计,使得数据处理设备100能够根据待查找的目标日志信息的日志标识,从多个用于存储位置索引信息的存储单元中确定一个存储单元作为目标映射单元,进而通过目标映射单元的映射字段获得其指向的子索引节点的位置。以下将对方法包括各个步骤进行详细阐述。
在一种实施方式中,普通磁盘的读写速度大约为200M每秒,当逐条读取2T的日志文件时,大约需要3个小时,这样会浪费大量的时间。另外,在读取日志文件是一个需要占用大量I/O资源的行为,也就是说,在读取逐条读取日志的时候,会对写入日志文件造成影响。
有鉴于此,数据处理设备100预存有日志文件,日志文件的包括用于索引目标日志信息的日志头,其中,日志头用于存储日志文件所存储的日志信息的日志标识和该日志信息存储位置的对应关系。当用户需要查找某条目标日志信息的时候,数据处理设备100先通过目标日志信息的目标日志标识查询日志头,进而获得该目标日志标识对应的目标日志信息的存储位置,进一步地,通过该目标日志信息的存储位置获得目标日志信息。
步骤S100,获取待查找的目标日志信息的目标日志标识。
可选的,日志文件存储的每一条日志都有其对应的日志标识,用来唯一标识该条日志信息。比如,某一用户在某一时间做出了某种操作等信息可以用于表示某条日志信息的日志标识,由于日志标识为一字符串,字符串并不适合用于组织B-Tree结构,所以,需要对日志标识进行哈希值的计算。值得说明的是,位置索引信息的存储单元中,关键字字段用于存储该哈希值。
步骤S200,从所述B-Tree结构的根索引节点起,按照B-Tree索引规则查询与该目标日志标识对应的目标存储位置。
进一步地,为了提高查询目标日志信息的效率,日志头所存储的位置索引信息为预设层数和预设阶数的B-Tree结构。由于日志头包括多个索引节点,每一个索引节点又包括多个日志标识,其中,日志标识的数量少于该B-Tree结构的预设阶数。
从B-Tree结构的根索引节点开始,数据处理设备100将根索引节点作为目标索引节点,执行节点索引步骤,其中节点索引步骤包括:
数据处理设备100将目标日志信息对应的目标日志标识同目标索引节点各个关键字字段所存储的日志标识进行匹配,若数据处理设备100匹配到存储有目标标识的目标关键字字段,则从目标关键字字段对应的偏移字段获取目标日志信息的存储位置,进而读取该目标日志信息。
若所述处理设备在该根索引节点中未匹配到存储有目标标识的目标关键字字段,则根据目标日志标识所在的数值区间确定目标映射信息;该数值区间由根索引节点所包括的日志标识构成,该日志标识的类型为数字。数据处理设备100通过目标映射信息获得其指向的子索引节点的存储位置,并将子索引节点作为新的目标索引节点,再次执行索引步骤,直到匹配到存储有目标日志标识的目标关键字字段。
步骤S300,从所述目标存储位置获取所述目标日志信息。
例如,在一种可能的示例中,日志头的结构示意图如图4所示,图4中的日志头包括多个索引节点,图中每一个索引节点的每一列代表用于存储位置索引信息的存储单元;图中的每一个索引节点的第一行的数字表示各个关键字字段存储的日志标识;每一个索引节点的第二行的字母表示日志文件中所存储日志信息的存储位置;每一个索引节点的第三行的数字表示其指向的索引节点的编号,本实施例中,每一个索引节点所占有的存储空间为固定值,进而,数据处理设备100可以根据索引节点的编号获得该编号对应的索引节点的存储位置。
若待查找的目标日志信息的目标日志标识的值为800,数据处理设备100从图4中第一个根索引节点开始,将该根索引节点作为目标索引节点,将目标日志标识同目标索引节点存储的每一个日志标识进行匹配。由于图4中第二个存储单元的关键字字段存储的值为800,则数据处理设备100可以通过第二存储单元的偏移字段获得目标日志信息的存储位置。
请再次参照图4,若目标日志信息的目标日志标识的值为545,从第一个根索引节点开始,数据处理设备100将该根索引节点作为目标索引节点,日志标识545位于目标索引节点第一个存储单元和第二存储单元所存储的日志标识之间,则数据处理设备100将第二个存储单元作为映射单元,并从该映射单元的映射字段获得其指向的下一个子索引节点的编号,进而确定该子索引节点的存储位置。数据处理设备100将下一个子索引节点作为新的目标索引节点,再次执行目标日志标识的查询操作。
可选地,数据处理设备100创建一日志文件,在该日志文件的第一预设位置配置为用于存储所述日志头的存储区域,以及该日志文件的第二预设位置配置为用于存储所述日志头的属性信息的存储区域。
例如,在一种可能的示例中,数据处理设备100在新建的日志文件的文件头部预留出4096B(Byte)+32M的磁盘存储空间,其中4096的存储空间用于存储日志头,32M的存储空间用于存储日志头的属性信息。日志头的属性信息包括日志头的B-Tree阶数、B-Tree层数、根索引节点存储位置、每一个用于存储位置索引信息的存储单元的大小、关键字字段容量大小、偏移字段容量大小和映射字段容量大小。在一种可能的示例中,用于存储位置索引信息的存储单元为16个字节,其中,关键字字段为8个字节,偏移字段为5个字节,映射字段为3个字节。32M的存储空间用于存储3层128阶的B-Tree结构的日志头,其中,3层表示日志头的高度,128阶表示每一个索引节点的所包括的用于存储位置索引信息的存储单元的最大数量。数据处理设备100在获取到待存储日志信息,并存储到日志文件的相应位置,将待存储日志信息的位置索引信息插入日志头。
可选地,数据处理设备100从日志头中选取一索引节点作为插入节点,通过以下B-Tree结构的插入规则将位置索引信息插入到插入节点,生成新的位置索引信息。
可选地,若位置索引信息插入该插入节点之后,插入节点所包括的日志标识的数量等于预设阶数,执行结构调整步骤,该结构调整步骤包括:
数据处理设备100将插入节点预设位置的位置索引信息插入到该插入节点的父索引节点,使得该插入节点裂变出一个新的索引节点;获取新的索引节点的位置信息,存储到父索引节点新插入的位置索引信息中,作为该新插入的位置索引信息的映射信息,使得父索引节点指向新的索引节点;将该父索引节点作为新的插入节点,再次执行结构调整步骤。
例如,在一种可能的示例中,请参照图5所示,日志头的插入规则示意图之一,图5所示第一日志头为4阶的B-Tree结构,包括第一插入节点A6001,第一待插入位置索引信息6002。第一插入节点A6001包括2个用于存储位置索引信息的存储单元,分别存储的日志标识的值为10和20。数据处理设备100根据从小到大的排序方式,将第一待插入位置索引信息6002插入第一插入节点A6001得到第一插入节点B6003。由于第一插入节点B6003所包括的日志标识的数量少于第一日志头的预设阶数,数据处理设备100不对第一插入节点B6003进行裂变。值得说明的是,第一插入节点A6001和第一插入节点B6003在日志头中为存储位置相同的索引节点,这里只是便于描述,对其使用的不同的名称进行区分。
请参照图6所示,日志头插入规则示意图之二,图6所示的第二日志头为4阶的B-Tree结构,包括第二插入节点A6005,第二待插入位置索引信息6006。第二插入节点A6005包括3个关键字字段,分别存储的日志标识的值为10、20和30。数据处理设备100根据从小到大的排序方式,将第二待插入位置索引信息6006插入第二插入节点A6005,得到第二插入节点B6007。由于第二插入节点B6007所包括的日志标识的数量等于第二日志头的阶数。数据处理设备100对第二插入节点B6007进行裂变处理,使得日志标识为20的位置索引信息作为父索引节点6008,并通过映射字段分别指向第二插入节点C6009和新的索引节点6010。值得说明的是,第二插入节点A6005、第二插入节点B6007和第二插入节点C6009在日志头中为存储位置相同的索引节点,这里只是便于描述,对其使用的不同的名称进行区分。
可选地,该数据处理设备100对日志头做内存映射文件处理,进而将内存中的日志头高效的刷新到磁盘中,提高了日志信息的位置索引信息的存储效率。
本申请实施例的另一目的在于提供一种日志处理装置110,日志处理装置110包括至少一个可以软件或固件(firmware)的形式存储于存储器120中或固化在数据处理设备100的操作系统(operating system,OS)中的软件功能模块。处理器130用于执行存储器120中存储的可执行模块,例如日志处理装置110所包括的软件功能模块及计算机程序等。
请参照图7所示,日志处理装置110的功能模块示意图,数据处理设备100预存有日志文件,该日志文件包括日志体及日志头,该日志体用于存储日志信息,该日志头用于存储日志信息的存储位置对应的位置索引信息,该位置索引信息为日志信息的日志标识与该日志信息的存储位置之间的对应关系,该日志头中存储的位置索引信息为预设层数和预设阶数的B-Tree结构,该日志处理装置110包括标识获取模块1101、索引模块1102和日志获取模块1103。
该标识获取模块1101用于获取待查找的目标日志信息的目标日志标识。
在本实施例中,标识获取模块1101用于执行图2中的步骤S100,关于标识获取模块1101的详细描述可以参考步骤S100的详细描述。
该索引模块1102用于从B-Tree结构的根索引节点起,按照B-Tree索引规则查询与该目标日志标识对应的目标存储位置。
在本实施例中,索引模块1102用于执行图2中的步骤S200,关于索引模块1102的详细描述可以参考步骤S200的详细描述。
该日志获取模块1103从目标存储位置获取目标日志信息。
在本实施例中,日志获取模块1103用于执行图2中的步骤S300,关于日志获取模块1103的详细描述可以参考步骤S300的详细描述。
可选地,该B-Tree结构包括多个索引节点,该索引节点包括多个位置索引信息,该位置索引信息还包括日志信息的日志标识和映射信息的对应关系,该映射信息用于指向其他索引节点的存储位置,该索引模块1102通过以下方式查询目标日志:
从该日志头的根节开始,执行以下索引步骤:
将该B-Tree结构的根索引节点作为目标索引节点,执行节点索引步骤,其中节点索引步骤包括:
若在该目标索引节点中未查询到目标日志标识对应的目标存储位置,则根据该目标日志标识所在的数值区间确定目标映射信息,该数值区间由目标索引节点包括的日志标识组成,该日志标识的类型为数字;
通过该目标映射信息获得下一个子索引节点的存储位置;
将下一个子索引节点作为新的目标索引节点,再次执行节点索引步骤。
可选地,请参照图8,该日志处理装置110还包括创建模块1104和配置模块1105;其中,该创建模块1104创建日志文件;
该配置模块1105用于在该日志文件的第一预设位置配置为用于存储所述日志头的存储区域。
综上,本申请实施例提供的一种日志处理方法及装置,应用于数据处理设备100。在不使用专业数据库的前提下,通过在日志文件的预设位置配置一存储区域,该存储区域用于存储B-Tree结构的日志头。该数据处理设备100通过该日志头查询待查找的目标日志信息的存储位置,进而快速的获得该目标日志信息。由于不需要专业的数据库,减少了数据处理设备100的成本。同时,得益于该日志头快速的索引能力,减少了查询目标日志信息的查找时间,提高了存储介质的使用寿命。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本申请的各种实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (8)
1.一种日志处理方法,其特征在于,应用于数据处理设备,所述方法包括:
创建日志文件,所述日志文件包括日志体及日志头,所述日志体用于存储日志信息,所述日志头用于存储所述日志信息的存储位置对应的位置索引信息,所述位置索引信息为所述日志信息的日志标识与该日志信息的存储位置之间的对应关系,所述日志头中存储的位置索引信息为预设层数和预设阶数的B-Tree结构;
将所述日志文件的第一预设位置配置为用于存储日志头的存储区域;
获取待查找的目标日志信息的目标日志标识;
从所述B-Tree结构的根索引节点起,按照B-Tree索引规则查询与该目标日志标识对应的目标存储位置;
从所述目标存储位置获取所述目标日志信息。
2.根据权利要求1所述的日志处理方法,其特征在于,所述B-Tree结构包括多个索引节点,所述索引节点包括多个所述位置索引信息,所述位置索引信息还包括所述日志信息的日志标识和映射信息的对应关系,所述映射信息用于指向其他索引节点存储位置,所述从所述B-Tree结构的根索引节点起,按照B-Tree索引规则查询与该目标日志标识对应的目标存储位置的步骤包括:
将所述B-Tree结构的根索引节点作为目标索引节点,执行节点索引步骤;其中,所述节点索引步骤包括:若在所述目标索引节点中未查询到所述目标日志标识对应的目标存储位置,则根据所述目标日志标识所在的数值区间确定目标映射信息,所述数值区间由所述目标索引节点包括的日志标识组成,所述日志标识的类型为数字;通过所述目标映射信息获得所述目标索引节点的下一个子索引节点的存储位置;
将所述下一个子索引节点作为新的目标索引节点,再次执行所述节点索引步骤。
3.根据权利要求1所述的日志处理方法,其特征在于,所述方法还包括:
将所述日志文件的第二预设位置配置为用于存储所述日志头的属性信息的存储区域。
4.根据权利要求1所述的日志处理方法,其特征在于,所述方法还包括:
获取待存储日志信息的日志标识;
将所述待存储日志信息存储到所述日志文件的日志体,并获取相应的存储位置;
根据所述待存储日志信息的日志标识及存储位置生成该待存储日志信息的位置索引信息,根据B-Tree结构的插入规则从所述日志头中选取一索引节点作为插入节点,并将所述待存储日志信息的位置索引信息插入所述插入节点。
5.根据权利要求4所述的日志处理方法,其特征在于,所述将所述待存储日志信息的日志标识和所述待存储日志信息的存储位置作为新的位置索引信息,根据B-Tree结构的插入规则从所述日志头中选取一索引节点作为插入节点,并将所述新的位置索引信息插入所述插入节点的步骤包括:
检测所述插入节点所包括的日志标识的数量;
若所述新的位置索引信息插入所述插入节点后,所述插入节点所包括的日志标识的数量等于所述预设阶数,执行结构调整步骤,所述结构调整步骤包括:将所述插入节点预设位置的位置索引信息插入到该插入节点的父索引节点,使得所述插入节点裂变出一个新的索引节点;获取所述新的索引节点的位置信息,存储到所述父索引节点新插入的位置索引信息中,作为该新插入的位置索引信息的映射信息,使得所述父索引节点指向所述新的索引节点;
将所述父索引节点作为新的插入节点,再次执行所述结构调整步骤。
6.根据权利要求1所述的日志处理方法,其特征在于,所述方法还包括:
将所述日志头做进行内存映射文件处理。
7.一种日志处理装置,其特征在于,应用于数据处理设备,所述日志处理装置包括标识获取模块、索引模块、日志获取模块、创建模块和配置模块;
所述创建模块创建日志文件,所述日志文件包括日志体及日志头,所述日志体用于存储日志信息,所述日志头用于存储所述日志信息的存储位置对应的位置索引信息,所述位置索引信息为所述日志信息的日志标识与该日志信息的存储位置之间的对应关系,所述日志头中存储的位置索引信息为预设层数和预设阶数的B-Tree结构;
所述配置模块用于在所述日志文件的第一预设位置配置为用于存储所述日志头的存储区域;
所述标识获取模块用于获取待查找的目标日志信息的目标日志标识;
所述索引模块从所述B-Tree结构的根索引节点起,按照B-Tree索引规则查询与该目标日志标识对应的目标存储位置;
所述日志获取模块从所述目标存储位置获取所述目标日志信息。
8.根据权利要求7所述的日志处理装置,其特征在于,所述B-Tree结构包括多个索引节点,所述索引节点包括多个所述位置索引信息,所述位置索引信息还包括所述日志信息的日志标识和映射信息的对应关系,所述映射信息用于指向其他索引节点存储位置,所述索引模块通过以下方式查询所述目标日志:
将所述B-Tree结构的根索引节点作为目标索引节点,执行节点索引步骤,其中所述节点索引步骤包括:
若在所述目标索引节点中未查询到所述目标日志标识对应的目标存储位置,则根据所述目标日志标识所在的数值区间确定目标映射信息,所述数值区间由所述目标索引节点包括的日志标识组成,所述日志标识的类型为数字;
通过所述目标映射信息获得所述目标索引节点的下一个子索引节点的存储位置;
将所述下一个子索引节点作为新的目标索引节点,再次执行所述节点索引步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910142862.0A CN109918341B (zh) | 2019-02-26 | 2019-02-26 | 日志处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910142862.0A CN109918341B (zh) | 2019-02-26 | 2019-02-26 | 日志处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109918341A CN109918341A (zh) | 2019-06-21 |
CN109918341B true CN109918341B (zh) | 2021-11-30 |
Family
ID=66962379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910142862.0A Active CN109918341B (zh) | 2019-02-26 | 2019-02-26 | 日志处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109918341B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199053B (zh) * | 2020-12-02 | 2021-06-22 | 杭州觅睿科技股份有限公司 | 一种应用于小容量存储区的日志记录方法、装置及介质 |
CN112732522A (zh) * | 2020-12-31 | 2021-04-30 | 东风汽车集团有限公司 | 一种车载mcu可配置日志存储解析方法和系统 |
CN113778974A (zh) * | 2021-03-25 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 日志数据处理方法、装置、存储介质与电子设备 |
CN114138725A (zh) * | 2021-12-08 | 2022-03-04 | 北京志凌海纳科技有限公司 | 一种层次化的日志存储处理方法 |
CN114442958B (zh) * | 2022-01-28 | 2023-08-11 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统的存储优化方法及装置 |
CN115237875B (zh) * | 2022-09-26 | 2023-01-24 | 成都卫士通信息产业股份有限公司 | 一种日志数据处理方法、装置、设备、存储介质 |
CN115328878B (zh) * | 2022-10-17 | 2023-04-07 | 成都卫士通信息产业股份有限公司 | 日志数据存储系统、方法、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012851A (zh) * | 2010-12-20 | 2011-04-13 | 浪潮(北京)电子信息产业有限公司 | 一种持续数据保护方法及服务器 |
CN102654864A (zh) * | 2011-03-02 | 2012-09-05 | 华北计算机系统工程研究所 | 一种面向实时数据库的独立透明型安全审计保护的方法 |
CN104536908A (zh) * | 2014-11-05 | 2015-04-22 | 北京中安比特科技有限公司 | 一种面向单机的海量小记录高效存储管理方法 |
CN105868398A (zh) * | 2016-04-20 | 2016-08-17 | 国网福建省电力有限公司 | 一种基于Fat-B树的分布式文件系统低开销数据传输方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981933B (zh) * | 2012-12-18 | 2015-05-13 | 武汉邮电科学研究院 | 物联网感知层的数据增量备份方法及系统 |
US10013440B1 (en) * | 2014-10-31 | 2018-07-03 | Amazon Technologies, Inc. | Incremental out-of-place updates for index structures |
CN107957940B (zh) * | 2016-10-17 | 2021-03-16 | 腾讯科技(深圳)有限公司 | 一种测试日志处理方法、系统及终端 |
US10484015B2 (en) * | 2016-12-28 | 2019-11-19 | Amazon Technologies, Inc. | Data storage system with enforced fencing |
CN107862064B (zh) * | 2017-11-16 | 2021-09-10 | 北京航空航天大学 | 一个基于nvm的高性能、可扩展的轻量级文件系统 |
-
2019
- 2019-02-26 CN CN201910142862.0A patent/CN109918341B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012851A (zh) * | 2010-12-20 | 2011-04-13 | 浪潮(北京)电子信息产业有限公司 | 一种持续数据保护方法及服务器 |
CN102654864A (zh) * | 2011-03-02 | 2012-09-05 | 华北计算机系统工程研究所 | 一种面向实时数据库的独立透明型安全审计保护的方法 |
CN104536908A (zh) * | 2014-11-05 | 2015-04-22 | 北京中安比特科技有限公司 | 一种面向单机的海量小记录高效存储管理方法 |
CN105868398A (zh) * | 2016-04-20 | 2016-08-17 | 国网福建省电力有限公司 | 一种基于Fat-B树的分布式文件系统低开销数据传输方法 |
Non-Patent Citations (1)
Title |
---|
B树详解;简书;《https://www.jianshu.com/p/a858bb15cbf0》;20190129;第2-4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109918341A (zh) | 2019-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109918341B (zh) | 日志处理方法及装置 | |
CN110321344B (zh) | 关联数据的信息查询方法、装置、计算机设备及存储介质 | |
CN107491487B (zh) | 一种全文数据库架构及位图索引创建、数据查询方法、服务器及介质 | |
CN108205577B (zh) | 一种数组构建、数组查询的方法、装置及电子设备 | |
CN106997431B (zh) | 一种数据处理方法及装置 | |
CN112765405B (zh) | 空间数据搜索结果的聚类和查询的方法及系统 | |
CN109062936B (zh) | 一种数据查询方法、计算机可读存储介质及终端设备 | |
CN110659282A (zh) | 数据路由的构建方法、装置、计算机设备和存储介质 | |
CN111400101B (zh) | 一种jfs2文件系统数据删除时的数据恢复方法及系统 | |
CN114840487A (zh) | 分布式文件系统的元数据管理方法和装置 | |
CN112698866B (zh) | 一种基于Git的代码行生命周期追溯方法及电子装置 | |
CN109101595B (zh) | 一种信息查询方法、装置、设备及计算机可读存储介质 | |
CN112800067B (zh) | 范围查询方法、装置、计算机可读存储介质及电子设备 | |
CN114385587A (zh) | 一种面向关系型数据库版本快照的构建方法及查询方法 | |
CN105843809B (zh) | 数据处理方法和装置 | |
US8051060B1 (en) | Automatic detection of separators for compression | |
CN115543993A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN116150093B (zh) | 一种对象存储列举对象的实现方法及电子设备 | |
CN115510289B (zh) | 一种数据立方体配置方法、装置、电子设备及存储介质 | |
CN106959960B (zh) | 数据获取方法及装置 | |
CN108376054B (zh) | 一种对标识数据进行索引的处理方法及装置 | |
CN104376000A (zh) | 确定网页属性的方法及装置 | |
CN113468383B (zh) | 家族关系图谱的搜索方法、装置、电子设备及存储介质 | |
CN115796146A (zh) | 一种文件对比方法及装置 | |
CN114880523A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |