CN107766512B - 一种日志数据存储方法和日志数据存储系统 - Google Patents
一种日志数据存储方法和日志数据存储系统 Download PDFInfo
- Publication number
- CN107766512B CN107766512B CN201710994179.0A CN201710994179A CN107766512B CN 107766512 B CN107766512 B CN 107766512B CN 201710994179 A CN201710994179 A CN 201710994179A CN 107766512 B CN107766512 B CN 107766512B
- Authority
- CN
- China
- Prior art keywords
- log data
- binary tree
- balanced binary
- node
- root node
- 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
- 238000013500 data storage Methods 0.000 title claims abstract description 40
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000008676 import Effects 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 9
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种日志数据存储方法和日志数据存储系统。该日志数据存储方法包括:步骤S10:获取采集的日志数据;步骤S11:将日志数据按照二叉排序树规则写入内存中,写入内存中的日志数据形成第一平衡二叉树;步骤S12:判断第一平衡二叉树是否已写满或已到设定的输出日志数据的时刻;如果是,则执行步骤S13:将第一平衡二叉树与第二平衡二叉树交换,然后按照中序遍历规则将第二平衡二叉树中的日志数据输出到日志数据文件。该日志数据存储方法能够避免频繁打开日志数据文件进行写操作,不仅极大地节省了日志数据的存储时间,而且极大地减少了磁盘活动,从而极大地提高了服务器性能。
Description
技术领域
本发明涉及通信技术领域,具体地,涉及一种日志数据存储方法和日志数据存储系统。
背景技术
互联网等一些大型公司的服务器每天需要存储海量日志数据信息,需要频繁地打开日志数据文件进行日志信息的写入,这样许多时间都消耗在日志数据文件的打开操作上。
随着日志数据文件频繁地打开操作,服务器的磁盘活动也随之频繁,导致服务器的性能严重降低。
发明内容
本发明针对现有技术中存在的上述技术问题,提供一种日志数据存储方法和日志数据存储系统。该日志数据存储方法能够避免频繁打开日志数据文件进行写操作,不仅极大地节省了日志数据的存储时间,而且极大地减少了磁盘活动,从而极大地提高了服务器性能。
本发明提供一种日志数据存储方法,包括:
步骤S10:获取采集的日志数据;
步骤S11:将所述日志数据按照二叉排序树规则写入内存中,写入内存中的所述日志数据形成第一平衡二叉树;
步骤S12:判断所述第一平衡二叉树是否已写满或已到设定的输出日志数据的时刻;如果是,则执行步骤S13:将所述第一平衡二叉树与第二平衡二叉树交换,然后按照中序遍历规则将所述第二平衡二叉树中的所述日志数据输出到日志数据文件。
优选地,所述判断所述第一平衡二叉树是否已写满包括:
判断所述第一平衡二叉树的节点数是否小于最大节点数;
如果是,则所述第一平衡二叉树未写满;如果否,则所述第一平衡二叉树已写满。
优选地,所述步骤S13还包括:判断以日期作为文件名的所述日志数据文件是否存在;如果是,则按照中序遍历规则将所述第二平衡二叉树中的所述日志数据输出到所述日志数据文件;如果否,则新建以当前日期作为文件名的所述日志数据文件,并按照中序遍历规则将所述第二平衡二叉树中的所述日志数据输出到所述日志数据文件。
优选地,所述步骤S11包括:
步骤S110:判断所述第一平衡二叉树是否有根节点;如果否,则执行步骤S111:创建根节点;
如果是,则执行步骤S112:判断以时间为关键字的关键字值是否等于所述根节点的关键字值;如果是,则执行步骤S113:改变要插入的节点的关键字值,然后执行步骤S114;
如果否,则执行所述步骤S114:判断以时间为关键字的关键字值是否小于所述根节点的关键字值;
所述步骤S114如果是,则执行步骤S115:判断所述根节点的左节点是否为空;如果否,则所述左节点为所述根节点,然后执行所述步骤S110;如果是,则调整所述第一平衡二叉树;
所述步骤S114如果否,则执行步骤S116:判断所述根节点的右节点是否为空;如果否,则所述右节点为所述根节点,然后执行所述步骤S110;如果是,则调整所述第一平衡二叉树。
优选地,在所述判断所述第一平衡二叉树是否已到所述设定的输出日志数据的时刻中,所述第一平衡二叉树已到所述设定的输出日志数据的时刻的时间长度为24小时。
本发明还提供一种日志数据存储系统,包括:
获取模块,用于获取采集的日志数据;
写入模块,用于将所述日志数据按照二叉排序树规则写入内存中,写入内存中的所述日志数据形成第一平衡二叉树;
第一判断模块,用于判断所述第一平衡二叉树是否已写满或已到设定的输出日志数据的时刻;
输出模块,用于在所述第一判断模块的判断结果为是时,将所述第一平衡二叉树与第二平衡二叉树交换,然后按照中序遍历规则将所述第二平衡二叉树中的所述日志数据输出到日志数据文件。
优选地,所述第一判断模块包括第一判断单元,用于判断所述第一平衡二叉树的节点数是否小于最大节点数,以确定所述第一平衡二叉树是否已写满。
优选地,还包括第二判断模块,用于判断以日期作为文件名的所述日志数据文件是否存在,并根据判断结果确定是否需新建以当前日期作为文件名的所述日志数据文件。
优选地,所述写入模块包括:
第二判断单元,用于判断所述第一平衡二叉树是否有根节点,并根据判断结果确定是否需创建根节点;
第三判断单元,用于判断以时间为关键字的关键字值是否等于所述根节点的关键字值,并根据判断结果确定是否需改变要插入的节点的关键字值;
第四判断单元,用于判断以时间为关键字的关键字值是否小于所述根节点的关键字值,并根据判断结果判断所述根节点的左节点或右节点是否为空;然后根据该判断结果确定所述根节点或调整所述第一平衡二叉树。
优选地,在所述第一判断模块判断所述第一平衡二叉树是否已到所述设定的输出日志数据的时刻中,所述第一平衡二叉树已到所述设定的输出日志数据的时刻的时间长度包括24小时。
本发明的有益效果:本发明所提供的日志数据存储方法,只需在第一平衡二叉树已写满或已到设定的输出日志数据的时刻时,才将日志数据文件打开,从而将第一平衡二叉树中的日志数据通过第二平衡二叉树一次性地输出到日志数据文件中,进而避免了频繁打开日志数据文件进行写操作;同时,由于第一平衡二叉树和第二平衡二叉树交换日志数据的时间非常短,几乎可以忽略不计,且第二平衡二叉树向日志数据文件输出日志数据与新采集的日志数据写入到内存可以同时并行进行,所以相对于现有技术中的存储日志数据时频繁打开日志数据文件进行写操作,不仅极大地节省了日志数据的存储时间,而且极大地减少了磁盘活动,从而极大地提高了服务器性能。
本发明所提供的日志数据存储系统,通过设置写入模块、第一判断模块和输出模块,能够在第一平衡二叉树已写满或已到设定的输出日志数据的时刻时,才将日志数据文件打开,从而将第一平衡二叉树中的日志数据通过第二平衡二叉树一次性地输出到日志数据文件中,进而避免了频繁打开日志数据文件进行写操作;同时,由于第一平衡二叉树和第二平衡二叉树交换日志数据的时间非常短,几乎可以忽略不计,且第二平衡二叉树向日志数据文件输出日志数据与新采集的日志数据写入到内存可以同时并行进行,所以相对于现有技术中的存储日志数据时频繁打开日志数据文件进行写操作,不仅极大地节省了日志数据的存储时间,而且极大地减少了磁盘活动,从而极大地提高了服务器性能。
附图说明
图1为本发明实施例1中日志数据存储方法的流程图;
图2为本发明实施例2中日志数据存储方法的步骤S11的流程图;
图3本发明实施例4中日志数据存储系统的原理框图。
其中的附图标记说明:
1.获取模块;2.写入模块;21.第二判断单元;22.第三判断单元;23.第四判断单元;3.第一判断模块;31.第一判断单元;4.输出模块;5.第二判断模块。
具体实施方式
为使本领域的技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明所提供的一种日志数据存储方法和日志数据存储系统作进一步详细描述。
实施例1:
本实施例提供一种日志数据存储方法,如图1所示,包括:
步骤S10:获取采集的日志数据。
步骤S11:将日志数据按照二叉排序树规则写入内存中,写入内存中的日志数据形成第一平衡二叉树。
步骤S12:判断第一平衡二叉树是否已写满或已到设定的输出日志数据的时刻;如果是,则执行步骤S13:将第一平衡二叉树与第二平衡二叉树交换,然后按照中序遍历规则将第二平衡二叉树中的日志数据输出到日志数据文件。如果否,则继续执行步骤S11。
其中,设定的输出日志数据的时刻是根据经验值设定的,通常,第一平衡二叉树已到设定的输出日志数据的时刻的时间长度设置为24小时,即通常在一天结束时将存储到内存中的日志数据输出到日志数据文件中一次。需要说明的是,第一平衡二叉树已到设定的输出日志数据的时刻的时间长度也可以设置为几个小时或几天。
通过在第一平衡二叉树已写满或已到设定的输出日志数据的时刻时,将第一平衡二叉树与第二平衡二叉树交换,能将第一平衡二叉树中的日志数据全部导入至第二平衡二叉树中,从而使第一平衡二叉树清空,然后,日志数据文件打开,第二平衡二叉树将其中的日志数据输出到日志数据文件中;在第二平衡二叉树向日志数据文件中输出其中的日志数据的同时,新采集的日志数据可以同时写入到内存中,以形成第一平衡二叉树。
该日志数据存储方法在将采集的日志数据从内存中输出到日志数据文件中的过程中,只需在第一平衡二叉树已写满或已到设定的输出日志数据的时刻时,才将日志数据文件打开,从而将第一平衡二叉树中的日志数据通过第二平衡二叉树一次性地输出到日志数据文件中,进而避免了频繁打开日志数据文件进行写操作;同时,由于第一平衡二叉树和第二平衡二叉树交换日志数据的时间非常短,几乎可以忽略不计,且第二平衡二叉树向日志数据文件输出日志数据与新采集的日志数据写入到内存可以同时并行进行,所以相对于现有技术中的存储日志数据时频繁打开日志数据文件进行写操作,不仅极大地节省了日志数据的存储时间,而且极大地减少了磁盘活动,从而极大地提高了服务器性能。
实施例2:
本实施例提供一种日志数据存储方法,包括:
步骤S10:获取采集的日志数据。
步骤S11:将日志数据按照二叉排序树规则写入内存中,写入内存中的日志数据形成第一平衡二叉树。
该步骤具体包括:如图2所示,步骤S110:判断第一平衡二叉树是否有根节点。如果否,则执行步骤S111:创建根节点。
如果是,则执行步骤S112:判断以时间为关键字的关键字值是否等于根节点的关键字值。如果是,则执行步骤S113:改变要插入的节点的关键字值,然后执行步骤S114。
如果否,则执行步骤S114:判断以时间为关键字的关键字值是否小于根节点的关键字值。
步骤S114的判断结果如果是,则执行步骤S115:判断根节点的左节点是否为空。如果否,则左节点为根节点,然后执行步骤S110。如果是,则调整第一平衡二叉树。调整第一平衡二叉树主要是为了使第一平衡二叉树结构平衡。
步骤S114的判断结果如果否,则执行步骤S116:判断根节点的右节点是否为空。如果否,则右节点为根节点,然后执行所述步骤S110。如果是,则调整第一平衡二叉树。
其中,采集的日志数据写入至内存中采用平衡二叉树结构,平衡二叉树结构以时间为关键字、关键日志数据为值进行存储,以便日志数据的后续应用和操作。
步骤S12:判断第一平衡二叉树是否已写满。
该步骤具体包括:判断第一平衡二叉树的节点数是否小于最大节点数。如果是,则第一平衡二叉树未写满。此时继续将采集的日志数据并按照步骤S11中的二叉排序树规则写入至第一平衡二叉树中。如果否,则第一平衡二叉树已写满。此时将第一平衡二叉树锁住,即此时日志数据停止向内存的第一平衡二叉树中写入。其中,最大节点数是根据经验数据设定的第一平衡二叉树的最大节点数。
如果第一平衡二叉树已写满,则执行步骤S13:将第一平衡二叉树与第二平衡二叉树交换,然后按照中序遍历规则将第二平衡二叉树中的日志数据输出到日志数据文件。
该步骤还包括:判断以日期作为文件名的日志数据文件是否存在。如果是,则按照中序遍历规则将第二平衡二叉树中的日志数据输出到日志数据文件。如果否,则新建以当前日期作为文件名的日志数据文件,并按照中序遍历规则将第二平衡二叉树中的日志数据输出到日志数据文件。
其中,中序遍历规则是指将第二平衡二叉树中的日志数据按照时间顺序依次输出到日志数据文件中,以便后续应用和操作。
另外,第二平衡二叉树采用平衡二叉树结构,平衡二叉树结构以时间为关键字、关键日志数据为值进行存储,以便将日志数据从第二平衡二叉树输出到日志数据文件中之后,方便日志数据文件中的日志数据的后续应用和操作。
实施例3:
本实施例提供一种日志数据存储方法,与实施例2不同的是,步骤S12:判断第一平衡二叉树是否已到设定的输出日志数据的时刻。
该步骤中,第一平衡二叉树已到设定的输出日志数据的时刻的时间长度为24小时。即通常在一天结束时将存储到内存中的日志数据输出到日志数据文件中一次。
需要说明的是,第一平衡二叉树已到设定的输出日志数据的时刻的时间长度也可以设置为几个小时或几天。
本实施例中日志数据存储方法的其他步骤与实施例1或2中相同,此处不再赘述。
本实施例中的日志数据存储方法通过判断第一平衡二叉树是否已到设定的输出日志数据的时刻,能够实现在第一平衡二叉树未写满的情况下,也能将存储到第一平衡二叉树中的日志数据通过第二平衡二叉树输出到日志数据文件中,从而能够根据日志数据的存储时间长度及时将存储到内存中的日志数据输出到日志数据文件中。
实施例1-3的有益效果:实施例1-3中所提供的日志数据存储方法,只需在第一平衡二叉树已写满或已到设定的输出日志数据的时刻时,才将日志数据文件打开,从而将第一平衡二叉树中的日志数据通过第二平衡二叉树一次性地输出到日志数据文件中,进而避免了频繁打开日志数据文件进行写操作;同时,由于第一平衡二叉树和第二平衡二叉树交换日志数据的时间非常短,几乎可以忽略不计,且第二平衡二叉树向日志数据文件输出日志数据与新采集的日志数据写入到内存可以同时并行进行,所以相对于现有技术中的存储日志数据时频繁打开日志数据文件进行写操作,不仅极大地节省了日志数据的存储时间,而且极大地减少了磁盘活动,从而极大地提高了服务器性能。
实施例4:
本实施例提供一种日志数据存储系统,如图3所示,包括:
获取模块1,用于获取采集的日志数据。写入模块2,用于将日志数据按照二叉排序树规则写入内存中,写入内存中的日志数据形成第一平衡二叉树。第一判断模块3,用于判断第一平衡二叉树是否已写满或已到设定的输出日志数据的时刻。输出模块4,用于在第一判断模块3的判断结果为是时,将第一平衡二叉树与第二平衡二叉树交换,然后按照中序遍历规则将第二平衡二叉树中的日志数据输出到日志数据文件。
通过设置写入模块2、第一判断模块3和输出模块4,能够在第一平衡二叉树已写满或已到设定的输出日志数据的时刻时,才将日志数据文件打开,从而将第一平衡二叉树中的日志数据通过第二平衡二叉树一次性地输出到日志数据文件中,进而避免了频繁打开日志数据文件进行写操作;同时,由于第一平衡二叉树和第二平衡二叉树交换日志数据的时间非常短,几乎可以忽略不计,且第二平衡二叉树向日志数据文件输出日志数据与新采集的日志数据写入到内存可以同时并行进行,所以相对于现有技术中的存储日志数据时频繁打开日志数据文件进行写操作,不仅极大地节省了日志数据的存储时间,而且极大地减少了磁盘活动,从而极大地提高了服务器性能。
本实施例中,第一判断模块3包括第一判断单元31,用于判断第一平衡二叉树的节点数是否小于最大节点数,以确定第一平衡二叉树是否已写满。其中,最大节点数是根据经验数据设定的第一平衡二叉树的最大节点数。
本实施例中,日志数据存储系统还包括第二判断模块5,用于判断以日期作为文件名的日志数据文件是否存在,并根据判断结果确定是否需新建以当前日期作为文件名的日志数据文件。第二判断模块5的设置,能够便于以时间为关键字、关键日志数据为值的第一平衡二叉树中的日志数据更好地按照时间顺序输出到日志数据文件中,以便后续对日志数据的应用和操作。
本实施例中,写入模块2包括:第二判断单元21,用于判断第一平衡二叉树是否有根节点,并根据判断结果确定是否需创建根节点。第三判断单元22,用于判断以时间为关键字的关键字值是否等于根节点的关键字值,并根据判断结果确定是否需改变要插入的节点的关键字值。第四判断单元23,用于判断以时间为关键字的关键字值是否小于根节点的关键字值,并根据判断结果判断根节点的左节点或右节点是否为空;然后根据该判断结果确定根节点或调整第一平衡二叉树。其中,调整第一平衡二叉树主要是为了使第一平衡二叉树结构平衡。
本实施例中,在第一判断模块3判断第一平衡二叉树是否已到设定的输出日志数据的时刻中,第一平衡二叉树已到设定的输出日志数据的时刻的时间长度包括24小时。即通常在一天结束时将存储到内存中的日志数据输出到日志数据文件中一次。
需要说明的是,第一平衡二叉树已到设定的输出日志数据的时刻的时间长度也可以设置为几个小时或几天。
其中,第一判断模块3通过判断第一平衡二叉树是否已到设定的输出日志数据的时刻,能够实现在第一平衡二叉树未写满的情况下,也能将存储到第一平衡二叉树中的日志数据通过第二平衡二叉树输出到日志数据文件中,从而能够根据日志数据的存储时间长度及时将存储到内存中的日志数据输出到日志数据文件中。
实施例4的有益效果:实施例4中所提供的日志数据存储系统,通过设置写入模块、第一判断模块和输出模块,能够在第一平衡二叉树已写满或已到设定的输出日志数据的时刻时,才将日志数据文件打开,从而将第一平衡二叉树中的日志数据通过第二平衡二叉树一次性地输出到日志数据文件中,进而避免了频繁打开日志数据文件进行写操作;同时,由于第一平衡二叉树和第二平衡二叉树交换日志数据的时间非常短,几乎可以忽略不计,且第二平衡二叉树向日志数据文件输出日志数据与新采集的日志数据写入到内存可以同时并行进行,所以相对于现有技术中的存储日志数据时频繁打开日志数据文件进行写操作,不仅极大地节省了日志数据的存储时间,而且极大地减少了磁盘活动,从而极大地提高了服务器性能。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (8)
1.一种日志数据存储方法,其特征在于,包括:
步骤S10:获取采集的日志数据;
步骤S11:将所述日志数据按照二叉排序树规则写入内存中,写入内存中的所述日志数据形成第一平衡二叉树;
步骤S12:判断所述第一平衡二叉树是否已写满或已到设定的输出日志数据的时刻;如果是,则执行步骤S13:将所述第一平衡二叉树与第二平衡二叉树交换,将所述第一平衡二叉树中的日志数据全部导入至所述第二平衡二叉树中,然后按照中序遍历规则将所述第二平衡二叉树中的所述日志数据输出到日志数据文件;
所述步骤S11包括:
步骤S110:判断所述第一平衡二叉树是否有根节点;如果否,则执行步骤S111:创建根节点;
如果是,则执行步骤S112:判断以时间为关键字的关键字值是否等于所述根节点的关键字值;如果等于,则执行步骤S113:改变要插入的节点的关键字值,然后执行步骤S114;
如果不等于,则执行所述步骤S114:判断以时间为关键字的关键字值是否小于所述根节点的关键字值;
所述步骤S114如果小于,则执行步骤S115:判断所述根节点的左节点是否为空;如果左节点不为空,则所述左节点为所述根节点,然后执行所述步骤S110;如果左节点为空,则调整所述第一平衡二叉树;
所述步骤S114如果不小于,则执行步骤S116:判断所述根节点的右节点是否为空;如果右节点不为空,则所述右节点为所述根节点,然后执行所述步骤S110;如果右节点为空,则调整所述第一平衡二叉树。
2.根据权利要求1所述的日志数据存储方法,其特征在于,所述判断所述第一平衡二叉树是否已写满包括:
判断所述第一平衡二叉树的节点数是否小于最大节点数;
如果是,则所述第一平衡二叉树未写满;如果否,则所述第一平衡二叉树已写满。
3.根据权利要求1所述的日志数据存储方法,其特征在于,所述步骤S13还包括:判断以日期作为文件名的所述日志数据文件是否存在;如果是,则按照中序遍历规则将所述第二平衡二叉树中的所述日志数据输出到所述日志数据文件;如果否,则新建以当前日期作为文件名的所述日志数据文件,并按照中序遍历规则将所述第二平衡二叉树中的所述日志数据输出到所述日志数据文件。
4.根据权利要求1所述的日志数据存储方法,其特征在于,判断所述第一平衡二叉树已到所述设定的输出日志数据的时刻的时间长度为24小时。
5.一种日志数据存储系统,其特征在于,包括:
获取模块,用于获取采集的日志数据;
写入模块,用于将所述日志数据按照二叉排序树规则写入内存中,写入内存中的所述日志数据形成第一平衡二叉树;
第一判断模块,用于判断所述第一平衡二叉树是否已写满或已到设定的输出日志数据的时刻;
输出模块,用于在所述第一判断模块的判断结果为是时,将所述第一平衡二叉树与第二平衡二叉树交换,将所述第一平衡二叉树中的日志数据全部导入至所述第二平衡二叉树中,然后按照中序遍历规则将所述第二平衡二叉树中的所述日志数据输出到日志数据文件;
所述写入模块包括:
第二判断单元,用于判断所述第一平衡二叉树是否有根节点,并根据判断结果确定是否需创建根节点;
第三判断单元,用于判断以时间为关键字的关键字值是否等于所述根节点的关键字值,并根据判断结果确定是否需改变要插入的节点的关键字值;
第四判断单元,用于判断以时间为关键字的关键字值是否小于所述根节点的关键字值,并根据判断结果判断所述根节点的左节点或右节点是否为空;然后根据该判断结果确定所述根节点或调整所述第一平衡二叉树。
6.根据权利要求5所述的日志数据存储系统,其特征在于,所述第一判断模块包括第一判断单元,用于判断所述第一平衡二叉树的节点数是否小于最大节点数,以确定所述第一平衡二叉树是否已写满。
7.根据权利要求5所述的日志数据存储系统,其特征在于,还包括第二判断模块,用于判断以日期作为文件名的所述日志数据文件是否存在,并根据判断结果确定是否需新建以当前日期作为文件名的所述日志数据文件。
8.根据权利要求5所述的日志数据存储系统,其特征在于,判断所述第一平衡二叉树已到所述设定的输出日志数据的时刻的时间长度为24小时。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710994179.0A CN107766512B (zh) | 2017-10-23 | 2017-10-23 | 一种日志数据存储方法和日志数据存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710994179.0A CN107766512B (zh) | 2017-10-23 | 2017-10-23 | 一种日志数据存储方法和日志数据存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107766512A CN107766512A (zh) | 2018-03-06 |
CN107766512B true CN107766512B (zh) | 2021-02-02 |
Family
ID=61269959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710994179.0A Active CN107766512B (zh) | 2017-10-23 | 2017-10-23 | 一种日志数据存储方法和日志数据存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107766512B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110213207B (zh) * | 2018-05-07 | 2021-12-28 | 腾讯科技(深圳)有限公司 | 一种基于日志分析的网络安全防御方法及设备 |
CN109450715B (zh) * | 2018-12-26 | 2022-01-25 | 新华三技术有限公司 | 消息处理方法和装置 |
CN110347443B (zh) * | 2019-06-28 | 2021-02-19 | 联想(北京)有限公司 | 日志处理方法和日志处理装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6675157B1 (en) * | 1999-11-01 | 2004-01-06 | International Business Machines Corporation | System and method for balancing binary search trees |
US7386692B1 (en) * | 2004-08-20 | 2008-06-10 | Sun Microsystems, Inc. | Method and apparatus for quantized deadline I/O scheduling |
US20120023082A1 (en) * | 2010-07-22 | 2012-01-26 | Brocade Communications Systems, Inc. | Longest Prefix Match Using Binary Search Tree |
CN103379136A (zh) * | 2012-04-17 | 2013-10-30 | 中国移动通信集团公司 | 一种日志采集数据压缩方法、解压缩方法及装置 |
CN103745008A (zh) * | 2014-01-28 | 2014-04-23 | 河海大学 | 一种大数据索引的排序方法 |
CN107239382A (zh) * | 2017-06-23 | 2017-10-10 | 深圳市冬泉谷信息技术有限公司 | 一种容器应用的日志处理方法及系统 |
-
2017
- 2017-10-23 CN CN201710994179.0A patent/CN107766512B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6675157B1 (en) * | 1999-11-01 | 2004-01-06 | International Business Machines Corporation | System and method for balancing binary search trees |
US7386692B1 (en) * | 2004-08-20 | 2008-06-10 | Sun Microsystems, Inc. | Method and apparatus for quantized deadline I/O scheduling |
US20120023082A1 (en) * | 2010-07-22 | 2012-01-26 | Brocade Communications Systems, Inc. | Longest Prefix Match Using Binary Search Tree |
CN103379136A (zh) * | 2012-04-17 | 2013-10-30 | 中国移动通信集团公司 | 一种日志采集数据压缩方法、解压缩方法及装置 |
CN103745008A (zh) * | 2014-01-28 | 2014-04-23 | 河海大学 | 一种大数据索引的排序方法 |
CN107239382A (zh) * | 2017-06-23 | 2017-10-10 | 深圳市冬泉谷信息技术有限公司 | 一种容器应用的日志处理方法及系统 |
Non-Patent Citations (1)
Title |
---|
一种无需借助栈的严格平衡二叉树建立;魏志威等;《武汉轻工大学学报》;20151231;第34卷(第4期);第47-50页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107766512A (zh) | 2018-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8224935B1 (en) | Systems and methods for efficiently synchronizing configuration data within distributed computing systems | |
CN107766512B (zh) | 一种日志数据存储方法和日志数据存储系统 | |
US20160283479A1 (en) | Method and system for manipulating data | |
CN103593257B (zh) | 一种数据备份方法及装置 | |
CN103118007A (zh) | 一种用户访问行为的获取方法和系统 | |
CN101158954A (zh) | 一种在计算机存储中识别重复数据的方法 | |
CN109902073A (zh) | 日志处理方法、装置、计算机设备和计算机可读存储介质 | |
CN112416972A (zh) | 实时数据流处理方法、装置、设备、及可读存储介质 | |
CN105095425A (zh) | 一种数据库的跨库结转方法及装置 | |
CN111291083B (zh) | 网页源码数据处理方法、装置及计算机设备 | |
CN106650414B (zh) | 用户权限管理方法和系统 | |
US20230252029A1 (en) | On-board data storage method and system | |
CN109033295A (zh) | 超大数据集的合并方法及装置 | |
CN110109970B (zh) | 一种数据查询处理方法及装置 | |
CN107295059A (zh) | 业务推送量的统计系统及方法 | |
CN109165259B (zh) | 基于网络附属存储的索引表更新方法、处理器及存储装置 | |
CN107315806B (zh) | 一种基于文件系统的嵌入式存储方法和装置 | |
US11797480B2 (en) | Storage of order books with persistent data structures | |
CN114896215A (zh) | 元数据的存储方法及装置 | |
CN112632266B (zh) | 数据写入方法、装置、计算机设备及可读存储介质 | |
CN113342647A (zh) | 一种测试数据的生成方法及装置 | |
CN106598687A (zh) | 一种脚本预热方法和装置 | |
CN111970333A (zh) | 一种基于同一客户端实现两个会话共存的方法及装置 | |
CN110377584A (zh) | 一种基于元数据的数据结构版本兼容的存取方法及装置 | |
CN117194350B (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 |