掌桥专利:专业的专利平台
掌桥专利
首页

日志存储方法和装置、介质

文献发布时间:2023-06-19 09:33:52


日志存储方法和装置、介质

技术领域

本公开涉及计算机技术领域,更具体地,涉及日志存储方法和装置、介质。

背景技术

在计算机系统的日常运行过程中,会生成日志以记录系统的运行状态。目前,主要是采用不断增加存储文件的方式来存储日志,然后定时清理早期的存储文件以释放存储空间。但是,不断新增存储文件并且不断删除早期存储文件,会增加磁盘的I/O(Input/Output,输入/输出)次数,这可能会导致磁盘性能下降。因此,有必要提供一种新的日志存储方案。

发明内容

本公开的一个目的是提供日志存储方法和装置、介质。

根据本公开的实施例的第一方面,提供了一种日志存储方法,包括

向当前一个第一类存储文件写入日志;

在当前一个第一类存储文件被写满的情况下,按照预设的第一类存储文件循环顺序从多个第一类存储文件中确定下一个第一类存储文件;

执行预设操作,所述预设操作包括:

检查所述下一个第一类存储文件是否符合覆盖条件;

在所述下一个第一类存储文件符合覆盖条件的情况下,将日志覆盖写入所述下一个第一类存储文件中。

可选地,所述预设操作还包括:

在所述下一个第一类存储文件不符合覆盖条件的情况下,创建一个第二类存储文件以供写入日志。

可选地,所述预设操作还包括:

在所述下一个第一类存储文件不符合覆盖条件的情况下,获取磁盘空间使用量;

如果所述磁盘空间使用量超过预设阈值并且所述下一个第一类存储文件中的日志所对应的业务数据已经全部完成落盘操作,将日志覆盖写入所述下一个第一类存储文件中;

如果所述磁盘空间使用量超过预设阈值并且所述下一个第一类存储文件中的日志所对应的业务数据没有全部完成落盘操作,创建一个第二类存储文件以供写入日志;

如果所述磁盘空间使用量没有超过预设阈值,创建一个第二类存储文件以供写入日志。

可选地,所述方法还包括:

在所述第二类存储文件被写满的情况下,执行所述预设操作。

可选地,所述检查所述下一个第一类存储文件是否符合覆盖条件,包括:

检查所述下一个第一类存储文件中的日志所对应的业务数据是否已经全部完成落盘操作;

在所述下一个第一类存储文件中的日志所对应的业务数据已经全部完成落盘操作的情况下,确认所述下一个第一类存储文件符合覆盖条件。

可选地,所述检查所述下一个第一类存储文件是否符合覆盖条件,包括:

检查所述下一个第一类存储文件中的日志所对应的业务数据是否已经全部完成落盘操作;

检查所述下一个第一类存储文件是否已经完成主从复制操作;

在所述下一个第一类存储文件中的日志所对应的业务数据已经全部完成落盘操作并且所述下一个第一类存储文件已经完成主从复制操作的情况下,确认所述下一个第一类存储文件符合覆盖条件。

可选地,所述方法还包括:

在所述第二类存储文件被写满之后,检查所述第二类存储文件中的日志所对应的业务数据是否已经全部完成落盘操作;

在所述第二类存储文件中的日志所对应的业务数据已经全部完成落盘操作的情况下,删除所述第二类存储文件。

可选地,所述方法还包括:

将存储文件的写入顺序存储在管理文件中,按照所述写入顺序从所述存储文件中读取日志;所述存储文件包括第一类存储文件和第二类存储文件序。

根据本公开的实施例的第二方面,提供了一种日志存储设备,包括:

写入模块,用于向当前一个第一类存储文件写入日志;

确定模块,用于在当前一个第一类存储文件被写满的情况下,按照预设的第一类存储文件循环顺序从多个第一类存储文件中确定下一个第一类存储文件;

执行模块,用于执行预设操作,所述预设操作包括:检查所述下一个第一类存储文件是否符合覆盖条件;在所述下一个第一类存储文件符合覆盖条件的情况下,将日志覆盖写入所述下一个第一类存储文件中。

根据本公开的实施例的第三方面,提供了一种日志存储设备,包括处理器和存储器,所述存储器存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现前述任一项所述的方法。

根据本公开的实施例的第四方面,提供了计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令被处理器执行时,实现前述任一项所述的方法。

本公开实施例的日志存储方法和装置、介质,将日志以覆盖方式写入第一类存储文件中,不需要删除第一类存储文件,从而可以降低磁盘的I/O次数。

通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。

附图说明

被结合在说明书中并构成说明书的一部分的附图示出了本公开的实施例,并且连同其说明一起用于解释本公开的原理。

图1是可用于实现本公开实施例的日志存储装置的示意图。

图2是本公开实施例提供的日志存储方法的流程图。

图3是可用于实现本公开实施例的日志存储装置的框图。

具体实施方式

现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,技术、方法和设备应当被视为说明书的一部分。

在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

<硬件配置>

图1示出了可用于实现本公开的实施例的日志存储装置的硬件配置。

参见图1,日志存储装置1000包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500和输入装置1600。

处理器1100例如可以是中央处理器CPU、微控制单元MCU等。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括USB接口、串行接口等。通信装置1400例如是有线网卡或无线网卡。显示装置1500例如是液晶显示屏、触摸屏。输入装置1600例如包括触摸屏、键盘、鼠标、麦克风等。

应用于本公开的实施例中,日志存储装置1000的存储器1200用于存储指令,该指令用于控制处理器1100进行操作以支持实现本公开任意实施例的方法。技术人员可以根据本公开所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。

本领域技术人员应当理解,尽管在图1中示出了日志存储装置1000的多个装置,但是,本公开实施例的日志存储装置1000可以仅涉及其中的部分装置,例如,只涉及处理器1100、存储器1200和通信装置1400。

本实施例中,日志存储装置1000例如是数据库的日志服务器。

图1所示的硬件配置仅是解释性的,并且决不是为了要限制本公开、其应用或用途。

<日志存储方法实施例>

<第一实施例>

参见图2所示,说明本公开实施例提供的日志存储方法。该日志存储方法包括步骤S102-S106。

S102、向当前一个第一类存储文件写入日志。

在本公开实施例中,预先创建有多个第一类存储文件,也就是预先创建预设数量的第一类存储文件,该预设数量为N,其中N为整数并且N≥2,N个第一类存储文件依次为W

S104、在当前一个第一类存储文件被写满的情况下,按照预设的第一类存储文件循环顺序从多个第一类存储文件中确定下一个第一类存储文件。

在本公开实施例中,对于第一类存储文件,均采用覆盖方式写入日志。也就是说,不需要先清除第一类存储文件中的已有日志后再写入新的日志,而是直接写入新的日志覆盖掉已有日志。这种方式可以减少清除日志的操作,从而减少磁盘的I/O次数。

在本公开实施例中,第一类存储文件循环顺序为从W

S106、执行预设操作。

所述预设操作包括步骤S1062-S1064。

S1062、检查所述下一个第一类存储文件是否符合覆盖条件。

S1064、在所述下一个第一类存储文件符合覆盖条件的情况下,将日志覆盖写入所述下一个第一类存储文件中。

也就是说,在当前一个第一类存储文件被写满后,如果下一个第一类存储文件符合覆盖条件,开始将日志以覆盖方式写入下一个第一类存储文件中,下一个第一类存储文件成为当前的第一类存储文件。

在一个例子中,所述预设操作还可以包括步骤S1066。

S1066、在所述下一个第一类存储文件不符合覆盖条件的情况下,创建一个第二类存储文件以供写入日志。

也就是说,在当前一个第一类存储文件被写满后,如果下一个第一类存储文件不符合覆盖条件,就创建一个第二类存储文件,开始将日志写入该第二类存储文件中。

在一个例子中,在第二类存储文件被写满的情况下,再一次执行所述预设操作。也就是说,在第二类存储文件被写满时,再一次检查所述下一个第一类存储文件是否符合覆盖条件。

如果经过再一次检查,确定下一个第一类存储文件符合覆盖条件,将日志覆盖写入所述下一个第一类存储文件中。

如果经过再一次检查,确定下一个第一类存储文件不符合覆盖条件,创建一个新的第二类存储文件以供写入日志,也就是开始将日志写入新创建的第二类存储文件中。

在本公开实施例中,在本次创建的第二类存储文件被写满之后,再一次检查下一个第一类存储文件是否覆盖条件。如果经过再一次检查,发现下一个第一类存储文件符合覆盖条件,开始将日志以覆盖方式写入下一个第一类存储文件中,下一个第一类存储文件成为当前的第一类存储文件。反之,如果经过再一次检查,发现下一个第一类存储文件不符合覆盖条件,则创建一个新的第二类存储文件以供存储日志。

在一个例子中,检查一个第一类存储文件是否符合覆盖条件,可以是:检查该第一类存储文件中的日志所对应的业务数据是否已经全部完成落盘操作。

落盘操作是指将内存中的数据刷新到磁盘中以持久化保存数据。在本公开实施例中,可以通过检查点操作(checkpoint)实现落盘操作。

例如,当向数据库中写入一个业务数据时,会生成重做日志(redo日志)以记录该写操作的相关内容,该业务数据会被暂存内存中,然后通过落盘操作将该业务数据刷新到磁盘中。如果在落盘操作完成之前发生了宕机,可以读取重做日志进行数据恢复。因此,在该业务数据的落盘操作完成之前,需要保留该重做日志。

在本公开实施例中,可以通过读取与检查点操作对应的变量来确定落盘操作的进度,以确定哪些日志所对应的业务数据已经被落盘。或者,可以使用与检查点操作相关的管理文件来记录检查点操作的进度,通过读取该管理文件中的内容来确定哪些日志所对应的业务数据已经被落盘。

在该例子中,当该第一类存储文件中的各个日志所对应的业务数据都已经完成落盘操作时,该第一类存储文件符合覆盖条件。否则,该第一类存储文件不符合覆盖条件,保留该第一类存储文件中的日志。

本公开实施例中,日志存储方法可以应用于数据库系统,也就是说,日志可以为数据库系统的日志。例如,日志可以是重做日志(redo日志)、归档日志(binlog日志)、回滚日志(undo log)。

该数据库系统可以采用主从备份方式。为了减轻主库的压力,可以在系统应用层面做读写分离,写操作走主库,读操作走从库,从而分散数据库的访问压力,提升整个系统的性能和可用性,降低了大访问量引发数据库宕机的故障率。当出现网络闪断等意外情况时,主从复制会出现故障、延迟等问题,导致第一类存储文件中的日志无法及时同步到从库中,在这种情况下,保留该第一类存储文件中的日志。

在一个例子中,检查第一类存储文件是否符合覆盖条件,可以是:检查该第一类存储文件中的日志所对应的业务数据是否已经全部完成落盘操作,以及,检查该第一类存储文件是否已经完成主从复制操作。第一类存储文件完成主从复制操作是指该第一类存储文件中的日志都已经同步到从库中。

在该例子中,如果该第一类存储文件中的日志所对应的业务数据已经全部完成落盘操作并且第一类存储文件完成主从复制操作,则第一类存储文件符合覆盖条件。否则,该第一类存储文件不符合覆盖条件。

在一个例子中,所述方法还包括删除第二类存储文件的步骤,包括步骤S502-S504。

S502、在第二类存储文件被写满之后,检查第二类存储文件中的日志所对应的业务数据是否已经全部完成落盘操作。

S504、在第二类存储文件中的日志所对应的业务数据已经全部完成落盘操作的情况下,删除第二类存储文件。

在一个例子中,在第二类存储文件被写满之后,以预设周期定时检查检查第二类存储文件中的日志所对应的业务数据是否已经全部完成落盘操作。如果第二类存储文件中的日志所对应的业务数据已经全部完成落盘操作,删除第二类存储文件。

也就是说,相比于第一类存储文件,第二类存储文件作为短期性的扩展存储空间使用。在下一个第一类存储文件不符合覆盖条件的情况下创建第二类存储文件,在第二类存储文件被写满之后,待第二类存储文件中的日志所对应的业务数据全部完成落盘操作时,就可以将第二类存储文件整个文件删除,以释放磁盘空间。

在一个例子中,在向第一类存储文件或者第二类存储文件中写入日志时,可以在日志结尾处插入结尾符。例如,在每条日志的结尾插入5个空格作为结尾符。在后续需要读取日志时,可以根据结尾符判断一条日志的结束以完整读取一条日志。

在本公开实施例中,提供多个管理文件以记录存储状态信息。

第一管理文件用于记录与各个存储文件对应的已落盘的业务数据的数据长度,其格式可以为“文件名-数据长度”。数据长度的单位可以为字节。例如:当前一个第一类存储文件为W

通过读取第一管理文件中的内容,可以获知任一个存储文件中的日志所对应的业务数据的落盘进度,从而确定该存储文件中的日志所对应的业务数据是否已经全部完成落盘操作。

第二管理文件用于记录各个存储文件中已经进行主从复制的日志的的数据长度,其格式可以为“文件名-数据长度”。数据长度的单位可以为字节。例如:当前一个第一类存储文件为W

通过读取第二管理文件中的内容,可以确定任一个存储文件的主从复制进度。

第三管理文件用于记录当前用于写入日志的存储文件,其格式可以为“文件名”。例如,当前用于写入日志的存储文件为W

通过读取第三管理文件中的内容,可以确定当前用于写入日志的存储文件,以便于对存储文件进行管理。

第四管理文件用于记录存储文件的写入顺序,所述存储文件包括第一类存储文件和第二类存储文件。假设N为5,第一类存储文件包括W

在读取日志时,可以按照第四管理文件的记录来进行操作,也就是可以按照写入顺序从存储文件中读取日志,以保证按照日志的生成时间顺序来读取、复制日志,避免日志丢失等混乱情况,也有利于后续的日志分析。

<第二实施例>

本公开实施例提供的日志存储方法,步骤S202-S206。

S202、向当前一个第一类存储文件写入日志。

在本公开实施例中,预先创建有多个第一类存储文件,也就是预先创建预设数量的第一类存储文件,该预设数量为N,其中N为整数并且N≥2,N个第一类存储文件依次为W

S204、在当前一个第一类存储文件被写满的情况下,按照预设的第一类存储文件循环顺序从多个第一类存储文件中确定下一个第一类存储文件。

在本公开实施例中,对于第一类存储文件,均采用覆盖方式写入日志。也就是说,不需要先清除第一类存储文件中的已有日志后再写入新的日志,而是直接写入新的日志覆盖掉已有日志。这种方式可以减少清除日志的操作,从而减少磁盘的I/O次数。

在本公开实施例中,第一类存储文件循环顺序为从W

S206、执行预设操作。

所述预设操作包括步骤S2062-S2064。

S2062、检查所述下一个第一类存储文件是否符合覆盖条件。

S2064、在所述下一个第一类存储文件符合覆盖条件的情况下,将日志覆盖写入所述下一个第一类存储文件中。

也就是说,在当前一个第一类存储文件被写满后,如果下一个第一类存储文件符合覆盖条件,开始将日志以覆盖方式写入下一个第一类存储文件中,下一个第一类存储文件成为当前的第一类存储文件。

在一个例子中,所述预设操作还可以包括步骤S2066-S2068。

S2066、在所述下一个第一类存储文件不符合覆盖条件的情况下,获取磁盘空间使用量。

S2068、如果所述磁盘空间使用量超过预设阈值并且所述下一个第一类存储文件中的日志所对应的业务数据已经全部完成落盘操作,将日志覆盖写入所述下一个第一类存储文件中。如果所述磁盘空间使用量超过预设阈值并且所述下一个第一类存储文件中的日志所对应的业务数据没有全部完成落盘操作,创建一个第二类存储文件以供写入日志。如果所述磁盘空间使用量没有超过预设阈值,创建一个第二类存储文件以供写入日志。

在一个例子中,在第二类存储文件被写满的情况下,再一次执行所述预设操作。也就是说,在第二类存储文件被写满时,再一次检查所述下一个第一类存储文件是否符合覆盖条件。

如果经过再一次检查,确定下一个第一类存储文件符合覆盖条件,将日志覆盖写入所述下一个第一类存储文件中。

如果经过再一次检查,确定下一个第一类存储文件不符合覆盖条件,则获取磁盘空间使用量。如果所述磁盘空间使用量超过预设阈值并且所述下一个第一类存储文件中的日志所对应的业务数据已经全部完成落盘操作,将日志覆盖写入所述下一个第一类存储文件中。如果所述磁盘空间使用量超过预设阈值并且所述下一个第一类存储文件中的日志所对应的业务数据没有全部完成落盘操作,创建一个第二类存储文件以供写入日志。如果所述磁盘空间使用量没有超过预设阈值,创建一个第二类存储文件以供写入日志。

可以看出,第二实施例和第一实施例的不同之处在于:预先设置磁盘空间使用量的阈值,在检查发现下一个第一类存储文件不符合覆盖条件时,如果此时的磁盘空间使用量超过该预设阈值并且下一个第一类存储文件中的日志所对应的业务数据已经全部完成落盘操作,就可以将日志以覆盖方式写入下一个第一类存储文件中,而不是创建新的第二类存储文件,以防止磁盘空间使用量过高影响磁盘读取速度。

该阈值可以根据磁盘空间的大小、可利用率进行设置,本公开实施例对此不作限制。

本公开实施例提供的日志存储方法,对于第一类存储文件,采用覆盖方式写入日志。也就是说,不需要先清除第一类存储文件中的已有日志,再写入新的日志,而是直接写入新的日志覆盖掉已有日志。这种方式可以减少清除日志的操作,从而减少磁盘的I/O次数。

本公开实施例提供的日志存储方法,可以循环使用第一类存储文件,不需要删除第一类存储文件,可以降低磁盘的I/O次数。

本公开实施例提供的日志存储方法,可以根据需求创建第二类存储文件,方便扩展存储空间。

<日志存储装置>

参见图3所示,本公开的实施例还提供了一种日志存储装置。该日志存储装置10,包括:

写入模块11,用于向当前一个第一类存储文件写入日志。

确定模块12,用于在当前一个第一类存储文件被写满的情况下,按照预设的第一类存储文件循环顺序从多个第一类存储文件中确定下一个第一类存储文件。

第一执行模块13,用于执行预设操作。所述预设操作包括:检查所述下一个第一类存储文件是否符合覆盖条件;在所述下一个第一类存储文件符合覆盖条件的情况下,将日志覆盖写入所述下一个第一类存储文件中。

在一个例子中,所述预设操作还包括:在所述下一个第一类存储文件不符合覆盖条件的情况下,创建一个第二类存储文件以供写入日志。

在一个例子中,所述预设操作还包括:在所述下一个第一类存储文件不符合覆盖条件的情况下,获取磁盘空间使用量;如果所述磁盘空间使用量超过预设阈值并且所述下一个第一类存储文件中的日志所对应的业务数据已经全部完成落盘操作,将日志覆盖写入所述下一个第一类存储文件中;如果所述磁盘空间使用量超过预设阈值并且所述下一个第一类存储文件中的日志所对应的业务数据没有全部完成落盘操作,创建一个第二类存储文件以供写入日志;如果所述磁盘空间使用量没有超过预设阈值,创建一个第二类存储文件以供写入日志。

在一个例子中,所述日志存储装置还包括第二执行模块。

所述第二执行模块,用于在所述第二类存储文件被写满的情况下,执行所述预设操作。

在一个例子中,所述第一执行模块13包括第一检查模块和第一确认模块。

所述第一检查模块,用于检查所述下一个第一类存储文件中的日志所对应的业务数据是否已经全部完成落盘操作。

所述第一确认模块,用于在所述下一个第一类存储文件中的日志所对应的业务数据已经全部完成落盘操作的情况下,确认所述下一个第一类存储文件符合覆盖条件。

在一个例子中,所述第一执行模块13包括第一检查模块、第二检查模块和第二确认模块。

所述第一检查模块,用于检查所述下一个第一类存储文件中的日志所对应的业务数据是否已经全部完成落盘操作。

所述第一检查模块,用于检查所述下一个第一类存储文件是否已经完成主从复制操作。

所述第二确认模块,用于在所述下一个第一类存储文件中的日志所对应的业务数据已经全部完成落盘操作并且所述下一个第一类存储文件已经完成主从复制操作的情况下,确认所述下一个第一类存储文件符合覆盖条件。

在一个例子中,所述日志存储装置包括第三检查模块和删除模块。

所述第三检查模块,用于在所述第二类存储文件被写满之后,检查所述第二类存储文件中的日志所对应的业务数据是否已经全部完成落盘操作;

所述删除模块,用于在所述第二类存储文件中的日志所对应的业务数据已经全部完成落盘操作的情况下,删除所述第二类存储文件。

在一个例子中,所述日志存储装置还包括记录模块。

所述记录模块,用于将存储文件的写入顺序存储在管理文件中,按照所述写入顺序从所述存储文件中读取日志;所述存储文件包括第一类存储文件和第二类存储文件序。

该日志存储装置10例如是数据库的日志服务器。

本公开的实施例还提供了一种日志存储装置,包括处理器和存储器,该存储器存储有计算机可读指令,该计算机可读指令被该处理器执行时,实现前述任一实施例公开的方法。

该日志存储装置例如是数据库的日志服务器。

本公开实施例提供的日志存储装置,对于第一类存储文件,采用覆盖方式写入日志。也就是说,不需要先清除第一类存储文件中的已有日志,再写入新的日志,而是直接写入新的日志覆盖掉已有日志。这种方式可以减少清除日志的操作,从而减少磁盘的I/O次数。

本公开实施例提供的日志存储装置,可以循环使用第一类存储文件,不需要删除第一类存储文件,可以降低磁盘的I/O次数。

本公开实施例提供的日志存储装置,可以根据需求创建第二类存储文件,方便扩展存储空间。

<计算机可读存储介质>

本公开的实施例还提供了一种计算机可读存储介质,其上存储有计算机可读指令,该计算机可读指令被处理器执行时,实现前述任一实施例公开的方法。

本公开可以是方法、装置、设备、系统、和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。

这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。

以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本公开的范围由所附权利要求来限定。

相关技术
  • 一种日志存储方法、装置、设备及可读存储介质
  • 一种故障日志的存储方法、装置、电子设备及存储介质
技术分类

06120112217575