CN112000698A - 日志的记录方法及装置、存储介质、电子装置 - Google Patents
日志的记录方法及装置、存储介质、电子装置 Download PDFInfo
- Publication number
- CN112000698A CN112000698A CN202010876299.2A CN202010876299A CN112000698A CN 112000698 A CN112000698 A CN 112000698A CN 202010876299 A CN202010876299 A CN 202010876299A CN 112000698 A CN112000698 A CN 112000698A
- Authority
- CN
- China
- Prior art keywords
- cache
- logs
- operation log
- log
- operation logs
- 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.)
- Granted
Links
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种日志的记录方法及装置、存储介质、电子装置,上述记录方法包括:将多项操作日志写入所述第一缓存区;对写入到所述第一缓存区的所述多项操作日志中第一标识一致的操作日志进行合并处理,得到第一操作日志块和第二操作日志,其中,所述第二操作日志包括:所述多项操作日志中无法合并的操作日志;将所述第一操作日志块和所述第二操作日志从所述第一缓存区写入到第二缓存区,因此,可以解决现有技术中,只能将时间记录日志缓存在内存数据库中,进而导致日志数量比较大时,恢复时间长,系统负荷大等问题,提高了系统性能。
Description
技术领域
本发明涉及互联网领域,具体而言,涉及一种日志的记录方法及装置、存储介质、电子装置。
背景技术
目前,现有网络中,WEB访问请求数据采用内存对象的方式缓存在内存数据库中,将数据存储在内存中,将较慢的关系型数据库访问变为快速的内存数据库访问,数据量的增加导致事物记录日志数量也变得非常庞大。大量的日志存储不但增加了数据库负担,而且加长了数据恢复的时间和恢复的复杂度,对内存数据库的使用增加了困难。由于基于所有的操作都是基于内存的操作,因此,内存数据库很容易因系统操作问题导致数据被破坏或者丢失。通常根据用户对数据库的操作以及结果来记录日志,在进行内存数据库恢复时,完全根据数据库操作日志中的记录进行恢复内存数据库。当日志数量比较大时,恢复时间长,系统负荷大,影响系统性能。因此,也会影响用户对产品的使用体验。
针对相关技术中,只能将时间记录日志缓存在内存数据库中,进而导致日志数量比较大时,恢复时间长,系统负荷大等问题,尚未提出有效的技术方案。
发明内容
本发明实施例提供了一种日志的记录方法及装置、存储介质、电子装置,以至少解决相关技术中,只能将时间记录日志缓存在内存数据库中,进而导致日志数量比较大时,恢复时间长,系统负荷大等问题。
根据本发明的一个实施例,提供了一种日志的记录方法,包括:将多项操作日志写入所述第一缓存区;对写入到所述第一缓存区的所述多项操作日志中第一标识一致的操作日志进行合并处理,得到第一操作日志块和第二操作日志,其中,所述第二操作日志包括:所述多项操作日志中无法合并的操作日志;将所述第一操作日志块和所述第二操作日志从所述第一缓存区写入到第二缓存区。
在一个示例性实施例中,在所述将多项操作日志写入所述第一缓存区之前,还包括:初始化第一缓冲区标识和第二缓冲区标识,其中,所述第一缓冲区标识至少用于指示第一缓存区在缓存磁盘中空白部分的分区,所述第二缓冲区标识至少用于指示第二缓存区在所述缓存磁盘中空白部分的分区。
在一个示例性实施例中,所述第一缓存区为多个,在将所述第一操作日志块和所述第二操作日志从所述第一缓存区写入到第二缓存区之前,还包括:为多个所述第一缓存区中的目标第一缓存区设置第一写入标识;将目标第一缓存区中的多项操作日志合并处理后所得到的第一操作日志块写入到第二缓存区。
在一个示例性实施例中,对写入到所述第一缓存区的所述多项操作日志中第一标识一致的操作日志进行合并处理,得到第一操作日志块和第二操作日志,包括:在所述第一标识用于指示操作日志的执行数据对象的情况下,将多项操作日志中执行数据对象一致的所述操作日志进行合并,得到第一操作日志块;将所述多项操作日志中合并后剩余的操作日志作为所述第二操作日志。
在一个示例性实施例中对写入到所述第一缓存区的所述多项操作日志中第一标识一致的操作日志进行合并处理,得到第一操作日志块和第二操作日志之前,所述方法还包括:将所述第二缓存区划分为多个缓存块,其中,每个所述缓存块分别用于存储一个所述第一操作日志块;所述缓存块存储所述第一操作日志块的顺序至少包括以下之一:所述第一操作日志块中的操作日志的生成时间的顺序,所述第一操作日志块中的操作日志的重要程度的顺序。
在一个示例性实施例中,将所述第一操作日志块和所述第二操作日志从所述第一缓存区写入到第二缓存区之后,所述方法还包括:清空所述第一缓存区中的操作日志,以使所述第一缓存区写入新的操作日志。
根据本发明的另一个实施例,提供了一种日志的记录装置,其特征在于,包括:第一写入模块,用于将多项操作日志写入第一缓存区;处理模块,用于对写入到所述第一缓存区的所述多项操作日志中第一标识一致的操作日志进行合并处理,得到第一操作日志块和第二操作日志,其中,所述第二操作日志包括:所述多项操作日志中无法合并的操作日志;第二写入模块,用于将所述第一操作日志块和所述第二操作日志从所述第一缓存区写入到第二缓存区。
在一个示例性实施例中,所述装置还包括:初始化模块,用于初始化第一缓冲区标识和第二缓冲区标识,其中,所述第一缓冲区标识至少用于指示第一缓存区在缓存磁盘中空白部分的分区,所述第二缓冲区标识至少用于指示第二缓存区在所述缓存磁盘中空白部分的分区。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,将多项操作日志写入第一缓存区;对写入到所述第一缓存区的所述多项操作日志中第一标识一致的操作日志进行合并处理,得到第一操作日志块和第二操作日志,其中,所述第二操作日志包括:所述多项操作日志中无法合并的操作日志;将所述第一操作日志块和所述第二操作日志从所述第一缓存区写入到第二缓存区,即对第一缓存区中的多项操作日志进行合并处理再存入第二缓存区,因此,可以解决现有技术中,只能将时间记录日志缓存在内存数据库中,进而导致日志数量比较大时,恢复时间长,系统负荷大等问题,提高了系统性能。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种日志的记录方法的终端的硬件结构框图;
图2是根据本发明实施例的日志的记录方法的流程图;
图3是根据本发明可选实施例的日志的记录方法的流程示意图(一);
图4是根据本发明可选实施例的日志的记录方法的流程示意图(二);
图5是根据本发明可选实施例的日志的记录方法的流程示意图(三);
图6是根据本发明可选实施例的日志的记录方法的流程示意图(四);
图7是根据本发明可选实施例的日志的记录方法的流程示意图(五);
图8是根据本发明可选实施例的日志的记录方法的流程示意图(六);
图9是根据本发明可选实施例的日志的记录方法的流程示意图(七);
图10是根据本发明实施例的一种日志的记录装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例所提供的方法实施例可以在终端或者类似的运算装置中执行。以运行在终端上为例,图1是本发明实施例的一种日志的记录方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,在一个示例性实施例中,上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限定。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的日志的记录方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种日志的记录方法,应用于上述终端,图2是根据本发明实施例的日志的记录方法的流程图,该流程包括如下步骤:
步骤S202,在将多项操作日志写入第一缓存区;
步骤S204;对写入到所述第一缓存区的所述多项操作日志中第一标识一致的操作日志进行合并处理,得到第一操作日志块和第二操作日志,其中,所述第二操作日志包括:所述多项操作日志中无法合并的操作日志;
步骤S206,将所述第一操作日志块和所述第二操作日志从所述第一缓存区写入到第二缓存区。
通过上述步骤,将多项操作日志写入所述第一缓存区;对写入到所述第一缓存区的所述多项操作日志中第一标识一致的操作日志进行合并处理,得到第一操作日志块和第二操作日志,其中,所述第二操作日志包括:所述多项操作日志中无法合并的操作日志;将所述第一操作日志块和所述第二操作日志从所述第一缓存区写入到第二缓存区,即对第一缓存区中的多项操作日志进行合并处理再存入第二缓存区,因此,可以解决现有技术中,只能将时间记录日志缓存在内存数据库中,进而导致日志数量比较大时,恢复时间长,系统负荷大等问题,提高了系统性能。
在一个示例性实施例中,图3是根据本发明可选实施例的日志的记录方法的流程示意图(一),上述步骤S202之前,还包括:
步骤S201,初始化第一缓冲区标识和第二缓冲区标识,其中,所述第一缓冲区标识至少用于指示第一缓存区在缓存磁盘中空白部分的分区,所述第二缓冲区标识至少用于指示第二缓存区在所述缓存磁盘中空白部分的分区。
简而言之,在进行操作日志的缓存之前,先将缓存磁盘部分空白的区域划分出几块分区,将划分出的几块分区作为第一缓冲区和第二缓冲区,用于缓存数据。
需要说明的是,上述步骤S201也可以在步骤S202之后。
举例来说,将缓存盘中一部分的连续的储存地址(相当于缓存磁盘部分空白的区域)划分为第一缓冲区,将这一部分的储存地址依次设置对应的第一缓冲区的Hash表(哈希表)中的键(key);将缓存盘中另一部分的连续的储存地址(相当于缓存磁盘部分空白的区域)划分为第二缓冲区,将这一部分的储存地址依次设置对应的第二缓冲区的Hash表(哈希表)中的键(key),其中,连续的储存地址的范围可以作为上述的第一缓冲区标识和第二缓冲区标识。
在一个可选的实施例中,图4是根据本发明可选实施例的日志的记录方法的流程示意图(二),所述第一缓存区为多个,如图4所示,上述步骤S206之前,还包括:
步骤S402,为多个所述第一缓存区中的目标第一缓存区设置第一写入标识;
步骤S404,将目标第一缓存区中的多项操作日志合并处理后所得到的第一操作日志块写入到第二缓存区。
简而言之,由于第一缓存区有多个,需要限制所有第一缓存区均向第二缓存区写入第一操作日志块,所以设置第一写入标识,进而设置有第一写入标识的第一缓存区(即目标第一缓存区)就可以向第二缓存区写入数据。
举例来说,通过JAVA自带的线程同步锁分配上述第一缓存区向第二缓存区写入数据的权限,没有同步锁的第一缓存区无法向第二缓存区写入数据,只能等待同步锁的授权,获得同步锁授权的缓存区可以向第二缓存区写入数据。
上述步骤S204的实现方式有多种,在一个可选的实施例中,图5是根据本发明可选实施例的日志的记录方法的流程示意图(三),如图5所示,包括以下步骤:
步骤S502:在所述第一标识用于指示操作日志的执行数据对象的情况下,将多项操作日志中执行数据对象一致的所述操作日志进行合并,得到第一操作日志块;
步骤S504:将所述多项操作日志中合并后剩余的操作日志作为所述第二操作日志。
也就是说,进行操作日志合并时,要判断操作日志的第一标识是否一致,以此来判断操作日志中的执行数据对象是否一致,在操作日志的第一标识一致的情况下,将操作日志进行合并,得到第一操作日志块。然后再将第一标识不一致的未进行合并的操作日志作为第二操作日志。
举例来说,检验操作日志的文件头(相当于第一标识),将文字头一致的操作日志进行合并,还可以将操作日志中的数据进行CRC校验(循环冗余校验),校验结果相同即表明操作指令逻辑一致,将一致的操作日志进行合并,然后将未合并的操作日志划分为第二操作日志。
在一个可选的实施例中,图6是根据本发明可选实施例的日志的记录方法的流程示意图(四),如图6所示,上述步骤S204之前,还包括以下步骤:
步骤S602:将所述第二缓存区划分为多个缓存块,其中,每个所述缓存块分别用于存储一个所述第一操作日志块,其中,所述缓存块存储所述第一操作日志块的顺序至少包括以下之一:所述第一操作日志块中的操作日志的生成时间的顺序,所述第一操作日志块中的操作日志的操作重要程度的顺序。
简而言之,将第二缓存区划分为多个缓存块,每个缓存块中都缓存一个操作日志,操作日志的缓存顺序可以按照操作日志中指令的重要级别进行排列或者按照操作日志的生成时间进行排序。
举例来说,将缓存盘中部分连续的储存地址(相当于第二缓冲区)划分为五个缓存块,这五个缓存块的顺序是由前到后,重要级别依次递减,将五个操作日志缓存在五个缓存块中,其中,五个缓存块的顺序也是按照重要级别依次递减;或者这五个缓存块的顺序也是按照生成时间顺序依次递减。
在一个可选的实施例中,图7是根据本发明可选实施例的日志的记录方法的流程示意图(五),如图7所示,上述步骤S206之后,还包括以下步骤:
步骤S208,清空所述第一缓存区中的操作日志,以使所述第一缓存区写入新的操作日志。
简而言之,在第一缓存区将操作日志全部写入到第二缓存区后,清空自身,准备接收下一批操作日志,进行下一批操作日志的合并工作。
举例来说,将缓存盘中一部分的连续的储存地址(相当于缓存磁盘部分空白的区域)划分为第一缓冲区,将这一部分的储存地址依次设置对应的第一缓冲区的Hash表(哈希表)中的键(key);将缓存盘中另一部分的连续的储存地址(相当于缓存磁盘部分空白的区域)划分为第二缓冲区,将这一部分的储存地址依次设置对应的第二缓冲区的Hash表(哈希表)中的键(key),其中,连续的储存地址的范围可以作为上述的第一缓冲区标识和第二缓冲区标识。在第一缓存区向第二缓存区写完数据后清空第一缓存区的Hash表,用于准备下一批操作日志的写入。
在一个可选实施例中,图8是根据本发明可选实施例的日志的记录方法的流程示意图(六),如图8所示,包括以下步骤:
步骤S802,将多个操作日志写入日志逻辑缓存区一;
步骤S804,判断操作日志是否是同一事物的日志,若是,则执行步骤S806;若不是,则执行步骤S808;
步骤S806,将操作日志存入同一文件头下的不同的缓存块中;
步骤S808,将操作存入逻辑缓存区二中;
步骤S810,启动日志写磁盘线程,操作日志存入磁盘中。
其中写入日志逻辑缓存区一相当于第一缓存区,文字头相当于第一标识,逻辑缓存区二相当于第二缓存区。
可选的,图9是根据本发明可选实施例的日志的记录方法的流程示意图(七),如图9所示,包括以下步骤:
步骤S902,将日志写入逻辑缓冲区一;
步骤S904,对日志进行操作指令逻辑相关性判断;
步骤S906,判断是否同一事物日志合并,若是,则执行步骤S908;若不是,则执行步骤S912;
步骤S908,Hash日志文件存储位置(相当于将日志文件的存储位置键入Hash表);
步骤S910,将日志插入逻辑缓存区缓存块;
步骤S912,合并后将日志写入缓冲区二;
步骤S914,开启新的线程,日志写入磁盘。
其中,日志相当于操作日志,逻辑缓存区一相当于第一缓存区,缓存区二相当于第二缓存区。
在本实施例中还提供了一种日志的记录装置,实现上述实施例及优选实施方式,已经进行过说明的不再赘述。使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图10是根据本发明实施例的一种日志的记录装置的结构框图,如图10所示,该装置包括:
(1)第一写入模块100,用于将多项操作日志写入第一缓存区;
(2)处理模块102,对写入到所述第一缓存区的所述多项操作日志中第一标识一致的操作日志进行合并处理,得到第一操作日志块和第二操作日志,其中,所述第二操作日志包括:所述多项操作日志中无法合并的操作日志;
(3)第二写入模块104,用于将所述第一操作日志块和所述第二操作日志从所述第一缓存区写入到第二缓存区。
通过上述步骤,将多项操作日志写入所述第一缓存区;对写入到所述第一缓存区的所述多项操作日志中第一标识一致的操作日志进行合并处理,得到第一操作日志块和第二操作日志,其中,所述第二操作日志包括:所述多项操作日志中无法合并的操作日志;将所述第一操作日志块和所述第二操作日志从所述第一缓存区写入到第二缓存区,因此,可以解决现有技术中,只能将时间记录日志缓存在内存数据库中,进而导致日志数量比较大时,恢复时间长,系统负荷大等问题,提高了系统性能和产品的使用体验。
在一个示例性实施例中,上述装置还包括:初始化模块,用于初始化第一缓冲区标识和第二缓冲区标识,其中,所述第一缓冲区标识至少用于指示第一缓存区在缓存磁盘中空白部分的分区,所述第二缓冲区标识至少用于指示第二缓存区在所述缓存磁盘中空白部分的分区。
简而言之,在进行操作日志的缓存之前,先将缓存磁盘部分空白的区域划分出几块分区,将划分出的几块分区作为第一缓冲区和第二缓冲区,用于缓存数据。
举例来说,将缓存盘中一部分的连续的储存地址(相当于缓存磁盘部分空白的区域)划分为第一缓冲区,将这一部分的储存地址依次设置对应的第一缓冲区的Hash表(哈希表)中的键(key);将缓存盘中另一部分的连续的储存地址(相当于缓存磁盘部分空白的区域)划分为第二缓冲区,将这一部分的储存地址依次设置对应的第二缓冲区的Hash表(哈希表)中的键(key),其中,连续的储存地址的范围可以作为上述的第一缓冲区标识和第二缓冲区标识。
在一个示例性实施例中,上述装置还包括:写入控制模块,用于为多个所述第一缓存区中的目标第一缓存区设置第一写入标识;将目标第一缓存区中的多项操作日志合并处理后所得到的第一操作日志块写入到第二缓存区。
简而言之,由于第一缓存区有多个,需要限制第一缓存区向第二缓存区写入第一操作日志块,所以设置第一写入标识,通过第一写入标识指定那个缓存区可以向第二缓存区写入数据。
举例来说,通过JAVA自带的线程同步锁分配上述第一缓存区向第二缓存区写入数据的权限,没有同步锁的第一缓存区无法向第二缓存区写入数据,只能等待同步锁的授权,获得同步锁授权的缓存区可以向第二缓存区写入数据。
在一个示例性实施例中,上述处理模块,还用于在所述第一标识用于指示操作日志的执行数据对象的情况下,将多项操作日志中执行数据对象一致的所述操作日志进行合并,得到第一操作日志块;将所述多项操作日志中合并后剩余的操作日志作为所述第二操作日志。
也就是说,进行操作日志合并时,要判断操作日志的第一标识是否一致,以此来判断操作日志中的执行数据对象是否一致,在操作日志的第一标识一致的情况下,将操作日志进行合并,得到第一操作日志块。然后再将第一标识不一致的未进行合并的操作日志作为第二操作日志。
举例来说,检验操作日志的文件头(相当于第一标识),将文字头一致的操作日志进行合并,还可以将操作日志中的数据进行CRC校验(循环冗余校验),校验结果相同即表明操作指令逻辑一致,将一致的操作日志进行合并,然后将未合并的操作日志划分为第二操作日志。
在一个示例性实施例中,上述处理模块,还用于将所述第二缓存区划分为多个缓存块,其中,每个所述缓存块分别用于存储一个所述第一操作日志块;所述缓存块存储所述第一操作日志块的顺序至少包括以下之一:所述第一操作日志块中的操作日志的生成时间的顺序,所述第一操作日志块中的操作日志的操作重要程度的顺序。
简而言之,将第二缓存区划分为多个缓存块,每个缓存块中都缓存一个操作日志,操作日志的缓存顺序可以按照操作日志中指令的重要级别进行排列或者按照操作日志的生成时间进行排序。
举例来说,将缓存盘中部分连续的储存地址(相当于第二缓冲区)划分为五个缓存块,这五个缓存块的顺序是由前到后,重要级别依次递减,将五个操作日志缓存在五个缓存块中,其中,五个缓存块的顺序也是按照重要级别依次递减;或者这五个缓存块的顺序也是按照生成时间顺序依次递减。
在一个示例性实施例中,上述装置还包括:清空装置,用于清空所述第一缓存区中的操作日志,以使所述第一缓存区写入新的操作日志。
简而言之,在第一缓存区将操作日志全部写入到第二缓存区后,清空自身,准备接收下一批操作日志,进行下一批操作日志的合并工作。
举例来说,将缓存盘中一部分的连续的储存地址(相当于缓存磁盘部分空白的区域)划分为第一缓冲区,将这一部分的储存地址依次设置对应的第一缓冲区的Hash表(哈希表)中的键(key);将缓存盘中另一部分的连续的储存地址(相当于缓存磁盘部分空白的区域)划分为第二缓冲区,将这一部分的储存地址依次设置对应的第二缓冲区的Hash表(哈希表)中的键(key),其中,连续的储存地址的范围可以作为上述的第一缓冲区标识和第二缓冲区标识。在第一缓存区向第二缓存区写完数据后清空第一缓存区的Hash表,用于准备下一批操作日志的写入。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,在将多项操作日志写入所述第一缓存区;
S2,对写入到所述第一缓存区的所述多项操作日志中第一标识一致的操作日志进行合并处理,得到第一操作日志块和第二操作日志,其中,所述第二操作日志包括:所述多项操作日志中无法合并的操作日志;
S3,将所述第一操作日志块和所述第二操作日志从所述第一缓存区写入到第二缓存区。
在一个示例性实施例中,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
在一个示例性实施例中,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,在将多项操作日志写入所述第一缓存区;
S2,对写入到所述第一缓存区的所述多项操作日志中第一标识一致的操作日志进行合并处理,得到第一操作日志块和第二操作日志,其中,所述第二操作日志包括:所述多项操作日志中无法合并的操作日志;
S3,将所述第一操作日志块和所述第二操作日志从所述第一缓存区写入到第二缓存区。
在一个示例性实施例中,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,在一个示例性实施例中,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种日志的记录方法,其特征在于,包括:
将多项操作日志写入第一缓存区;
对写入到所述第一缓存区的所述多项操作日志中第一标识一致的操作日志进行合并处理,得到第一操作日志块和第二操作日志,其中,所述第二操作日志包括:所述多项操作日志中无法合并的操作日志;
将所述第一操作日志块和所述第二操作日志从所述第一缓存区写入到第二缓存区。
2.根据权利要求1所述的方法,其特征在于,在所述将多项操作日志写入所述第一缓存区之前,还包括:
初始化第一缓冲区标识和第二缓冲区标识,其中,所述第一缓冲区标识至少用于指示第一缓存区在缓存磁盘中空白部分的分区,所述第二缓冲区标识至少用于指示第二缓存区在所述缓存磁盘中空白部分的分区。
3.根据权利要求1所述的方法,其特征在于,所述第一缓存区为多个,在将所述第一操作日志块和所述第二操作日志从所述第一缓存区写入到第二缓存区之前,还包括:
为多个所述第一缓存区中的目标第一缓存区设置第一写入标识;
将目标第一缓存区中的多项操作日志合并处理后所得到的第一操作日志块写入到第二缓存区。
4.根据权利要求1所述的方法,其特征在于,对写入到所述第一缓存区的所述多项操作日志中第一标识一致的操作日志进行合并处理,得到第一操作日志块和第二操作日志,包括:
在所述第一标识用于指示操作日志的执行数据对象的情况下,将多项操作日志中执行数据对象一致的所述操作日志进行合并,得到第一操作日志块;
将所述多项操作日志中合并后剩余的操作日志作为所述第二操作日志。
5.根据权利要求1所述的方法,其特征在于,对写入到所述第一缓存区的所述多项操作日志中第一标识一致的操作日志进行合并处理,得到第一操作日志块和第二操作日志之前,所述方法还包括:
将所述第二缓存区划分为多个缓存块,其中,每个所述缓存块分别用于存储一个所述第一操作日志块;
所述缓存块存储所述第一操作日志块的顺序至少包括以下之一:所述第一操作日志块中的操作日志的生成时间的顺序,所述第一操作日志块中的操作日志的重要程度的顺序。
6.根据权利要求1所述的方法,其特征在于,在将所述第一操作日志块和所述第二操作日志从所述第一缓存区写入到第二缓存区之后,所述方法还包括:
清空所述第一缓存区中的操作日志,以使所述第一缓存区写入新的操作日志。
7.一种日志的记录装置,其特征在于,包括:
第一写入模块,用于将多项操作日志写入第一缓存区;
处理模块,用于对写入到所述第一缓存区的所述多项操作日志中第一标识一致的操作日志进行合并处理,得到第一操作日志块和第二操作日志,其中,所述第二操作日志包括:所述多项操作日志中无法合并的操作日志;
第二写入模块,用于将所述第一操作日志块和所述第二操作日志从所述第一缓存区写入到第二缓存区。
8.根据权利要求7装置,其特征在于,所述装置还包括:初始化模块,用于初始化第一缓冲区标识和第二缓冲区标识,其中,所述第一缓冲区标识至少用于指示第一缓存区在缓存磁盘中空白部分的分区,所述第二缓冲区标识至少用于指示第二缓存区在所述缓存磁盘中空白部分的分区。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至6任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至6任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010876299.2A CN112000698B (zh) | 2020-08-25 | 2020-08-25 | 日志的记录方法及装置、存储介质、电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010876299.2A CN112000698B (zh) | 2020-08-25 | 2020-08-25 | 日志的记录方法及装置、存储介质、电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112000698A true CN112000698A (zh) | 2020-11-27 |
CN112000698B CN112000698B (zh) | 2023-09-19 |
Family
ID=73471955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010876299.2A Active CN112000698B (zh) | 2020-08-25 | 2020-08-25 | 日志的记录方法及装置、存储介质、电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112000698B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117555874A (zh) * | 2024-01-11 | 2024-02-13 | 成都大成均图科技有限公司 | 一种分布式数据库的日志存储方法、装置、设备及介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2644208A1 (en) * | 2006-04-05 | 2007-10-18 | Arcsight, Inc. | Merging multi-line log entries |
JP2007304868A (ja) * | 2006-05-11 | 2007-11-22 | Ricoh Co Ltd | 印刷管理装置、ログ情報収集装置、印刷管理システム、印刷管理方法、印刷管理プログラム及び記憶媒体 |
CN103425568A (zh) * | 2013-08-23 | 2013-12-04 | 新浪网技术(中国)有限公司 | 日志信息处理方法及装置 |
CN105224237A (zh) * | 2014-05-26 | 2016-01-06 | 华为技术有限公司 | 一种数据存储方法及装置 |
US20160378820A1 (en) * | 2015-06-23 | 2016-12-29 | International Business Machines Corporation | Granular buffering of metadata changes for journaling file systems |
CN106502875A (zh) * | 2016-10-21 | 2017-03-15 | 过冬 | 一种基于云计算的日志生成方法及系统 |
US20180101423A1 (en) * | 2016-10-11 | 2018-04-12 | Oracle International Corporation | Cluster-based processing of unstructured log messages |
CN109992469A (zh) * | 2017-12-29 | 2019-07-09 | 北京奇虎科技有限公司 | 一种合并日志的方法及装置 |
CN110032496A (zh) * | 2019-04-19 | 2019-07-19 | 杭州玳数科技有限公司 | 一种支持多样化日志合并的日志采集方法及系统 |
WO2020055977A1 (en) * | 2018-09-14 | 2020-03-19 | Google Llc | Staggered merging in log-structured merge forests |
-
2020
- 2020-08-25 CN CN202010876299.2A patent/CN112000698B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2644208A1 (en) * | 2006-04-05 | 2007-10-18 | Arcsight, Inc. | Merging multi-line log entries |
JP2007304868A (ja) * | 2006-05-11 | 2007-11-22 | Ricoh Co Ltd | 印刷管理装置、ログ情報収集装置、印刷管理システム、印刷管理方法、印刷管理プログラム及び記憶媒体 |
CN103425568A (zh) * | 2013-08-23 | 2013-12-04 | 新浪网技术(中国)有限公司 | 日志信息处理方法及装置 |
CN105224237A (zh) * | 2014-05-26 | 2016-01-06 | 华为技术有限公司 | 一种数据存储方法及装置 |
US20160378820A1 (en) * | 2015-06-23 | 2016-12-29 | International Business Machines Corporation | Granular buffering of metadata changes for journaling file systems |
US20180101423A1 (en) * | 2016-10-11 | 2018-04-12 | Oracle International Corporation | Cluster-based processing of unstructured log messages |
CN106502875A (zh) * | 2016-10-21 | 2017-03-15 | 过冬 | 一种基于云计算的日志生成方法及系统 |
CN109992469A (zh) * | 2017-12-29 | 2019-07-09 | 北京奇虎科技有限公司 | 一种合并日志的方法及装置 |
WO2020055977A1 (en) * | 2018-09-14 | 2020-03-19 | Google Llc | Staggered merging in log-structured merge forests |
CN110032496A (zh) * | 2019-04-19 | 2019-07-19 | 杭州玳数科技有限公司 | 一种支持多样化日志合并的日志采集方法及系统 |
Non-Patent Citations (3)
Title |
---|
TENG DEJUN等: "LSbM-tree: Re-enabling Buffer Caching in Data Management for Mixed Reads and Writes", 《IEEE INTERNATIONAL CONFERENCE ON DISTRIBUTED COMPUTING SYSTEMS》, pages 68 - 79 * |
张金玲: "基于事务合并优化的数据同步算法研究与应用", 《中国优秀硕士学位论文全文数据库 信息科技辑》, pages 138 - 743 * |
潘巍等: "新型非易失存储环境下事务型数据管理技术研究", 《软件学报》, pages 59 - 83 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117555874A (zh) * | 2024-01-11 | 2024-02-13 | 成都大成均图科技有限公司 | 一种分布式数据库的日志存储方法、装置、设备及介质 |
CN117555874B (zh) * | 2024-01-11 | 2024-03-29 | 成都大成均图科技有限公司 | 一种分布式数据库的日志存储方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112000698B (zh) | 2023-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3678346B1 (en) | Blockchain smart contract verification method and apparatus, and storage medium | |
US9367598B2 (en) | Merging an out of synchronization indicator and a change recording indicator in response to a failure in consistency group formation | |
CN110442473B (zh) | 一种非易失性数据存储方法、装置、电子设备及介质 | |
CN110851474A (zh) | 数据查询方法、数据库中间件、数据查询设备及存储介质 | |
CN111125040A (zh) | 管理重做日志的方法、装置及存储介质 | |
CN113596010B (zh) | 一种数据处理方法、装置、节点设备及计算机存储介质 | |
CN108389600B (zh) | 数据储存装置以及参数改写方法 | |
CN111144582B (zh) | 训练及更新机器学习模型的方法及相应装置 | |
CN110910249B (zh) | 一种数据处理方法、装置、节点设备及存储介质 | |
US11150993B2 (en) | Method, apparatus and computer program product for improving inline pattern detection | |
CN112000698A (zh) | 日志的记录方法及装置、存储介质、电子装置 | |
CN112884587B (zh) | 区块链交易执行方法、区块链节点及控制装置 | |
US7539905B2 (en) | Method of and apparatus for detecting an error in writing to persistent memory | |
CN113348450A (zh) | 一种车载数据存储方法及系统 | |
CN110765125B (zh) | 一种存储数据的方法及装置 | |
CN116578239A (zh) | 用于对内存进行分区的方法、电子设备及存储介质 | |
CN111143326B (zh) | 减少数据库操作的方法、装置、计算机设备及存储介质 | |
CN111399759B (zh) | 读数据、写数据的方法、以及对象文件系统 | |
CN109783024B (zh) | 数据存储处理方法及装置 | |
CN113254271A (zh) | 一种数据序列恢复方法、装置、设备及存储介质 | |
CN109254870B (zh) | 数据备份的方法和装置 | |
CN116578247B (zh) | 一种基于元数据的数据存取方法及系统 | |
CN109857682B (zh) | 数据访问方法、存储器及处理器 | |
CN112100249B (zh) | 一种数据挖掘方法及系统 | |
US20050108201A1 (en) | Method to query an embedded database |
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 |