CN110019046B - 一种日志落地方法及装置 - Google Patents
一种日志落地方法及装置 Download PDFInfo
- Publication number
- CN110019046B CN110019046B CN201711489580.5A CN201711489580A CN110019046B CN 110019046 B CN110019046 B CN 110019046B CN 201711489580 A CN201711489580 A CN 201711489580A CN 110019046 B CN110019046 B CN 110019046B
- Authority
- CN
- China
- Prior art keywords
- log
- synchronization point
- temporary
- state information
- landing
- 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
- 238000000034 method Methods 0.000 title claims abstract description 110
- 230000001360 synchronised effect Effects 0.000 claims abstract description 52
- 230000007246 mechanism Effects 0.000 claims abstract description 47
- 230000008569 process Effects 0.000 abstract description 51
- 238000004590 computer program Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
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/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种日志落地方法及装置,该方法包括:获取已知同步点日志的状态信息,其中,所述已知同步点为目标同步点之前已完成日志落地的相邻同步点;通过所述已知同步点日志的状态信息为所述目标同步点创建临时日志,并记录所述临时日志的状态信息;根据所述临时日志为所述目标同步点生成正式日志,并结合所述临时日志的状态信息更新存储所述正式日志的状态信息,以完成日志落地。可见,本发明通过同步点机制,将日志的落地过程分为不同的同步点来逐步完成。并且,在通过同步点机制完成日志落地的过程中,进一步提及日志在落地过程中的不同状态,通过获取并记录日志落地过程中的状态信息,为日志的完全一致落地做了必要的基础。
Description
技术领域
本发明涉及计算机信息处理技术领域,特别是涉及一种日志落地方法及装置。
背景技术
随着计算机通信技术的不断发展,越来越多的数据需要通过网络传输,随之而来的是许多数据段要落地。现有的日志落地技术通常会用到HDFS(Hadoop Distributed FileSystem,分布式文件系统),其被设计成适合运行在通用硬件上的分布式文件系统,非常适合大规模数据集上的应用。当前,日志落地即将一些流量的日志落地到HDFS系统。
现阶段,当网络中的数据段需要落地时,通常会通过flink(一种网页代码标记)提供的方案将所需落地的数据段保存到HDFS系统,以完成日志的落地,进而在整个HDFS系统逐渐会存储数百或数千个文件数据片段的服务器。但是,目前flink提供的日志落地方案只能在日志格式是纯文本形式时,才能保证日志落地后数据完全一致。而对于有结构的日志格式,在日志落地时会产生坏块文件的现象,所产生的这些坏块文件,顾名思义其已经是被损坏的,说明当前日志已经被损坏,相当于是丢失了部分数据,无法保证日志落地后数据的完全一致。然而,对于HDFS落地来说,为了节省空间,提高效率,带结构的日志格式是不可或缺的,比如当日志为lzo(lempel-ziv-oberhumer,数据压缩算法)或者gzip(文件压缩程序)等带压缩结构的日志时,在日志落地的过程中便容易出现错误。
因此,对于带结构的日志落地,目前还没有好的解决方案。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的日志落地方法和相应的装置。
依据本发明的一个方面,提供了一种日志落地方法,包括:
获取已知同步点日志的状态信息,其中,所述已知同步点为目标同步点之前已完成日志落地的相邻同步点;
通过所述已知同步点日志的状态信息为所述目标同步点创建临时日志,并记录所述临时日志的状态信息;
根据所述临时日志为所述目标同步点生成正式日志,并结合所述临时日志的状态信息更新存储所述正式日志的状态信息,以完成日志落地。
可选地,获取已知同步点日志的状态信息,包括:
获取已知同步点日志的位置信息及名称信息。
可选地,通过所述已知同步点日志的状态信息为所述目标同步点创建临时日志,并记录所述临时日志的状态信息,包括:
根据所述已知同步点日志的位置信息及名称信息为所述目标同步点重新创建临时日志;
由该重新创建的临时日志覆盖所述目标同步点的原始临时日志,并记录所述重新创建的临时日志的状态信息。
可选地,根据所述临时日志为所述目标同步点生成正式日志,并结合所述临时日志的状态信息更新存储所述正式日志的状态信息,以完成日志落地,包括:
利用同步点机制将所述临时日志关闭并生成所述目标同步点的正式日志,同时结合所述临时日志的状态信息更新存储所述正式日志的状态信息,以保证所述正式日志的生成及所述正式日志的状态信息存储同步,最终完成日志落地。
可选地,利用同步点机制将所述临时日志关闭并生成所述标同步点的正式日志,同时结合所述临时日志的状态信息更新存储所述正式日志的状态信息之前,还包括:
配置同步点定时器,并根据用户需求为所述同步点定时器设定实时时长;
当所述同步点定时器到达设定的定时时长,触发同步点机制。
依据本发明的另一个方面,还提供了一种日志落地装置,包括:
获取模块,配置为获取已知同步点日志的状态信息,其中,所述已知同步点为目标同步点之前已完成日志落地的相邻同步点;
创建模块,配置为通过所述已知同步点日志的状态信息为所述目标同步点创建临时日志,并记录所述临时日志的状态信息;
落地模块,配置为根据所述临时日志为所述目标同步点生成正式日志,并结合所述临时日志的状态信息更新存储所述正式日志的状态信息,以完成日志落地。
可选地,所述获取模块,还配置为:
获取已知同步点日志的位置信息及名称信息。
可选地,所述创建模块,还配置为:
根据所述已知同步点日志的位置信息及名称信息为所述目标同步点重新创建临时日志;
由该重新创建的临时日志覆盖所述目标同步点的原始临时日志,并记录所述重新创建的临时日志的状态信息。
可选地,所述落地模块,还配置为:
利用同步点机制将所述临时日志关闭并生成所述目标同步点的正式日志,同时结合所述临时日志的状态信息更新存储所述正式日志的状态信息,以保证所述正式日志的生成及所述正式日志的状态信息存储同步,最终完成日志落地。
可选地,所述装置,还包括:
定时模块,配置为配置同步点定时器,并根据用户需求为所述同步点定时器设定实时时长;
当所述同步点定时器到达设定的定时时长,触发同步点机制。
依据本发明的另一个方面,还提供了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据上述任一项所述的日志落地方法。
依据本发明的又一个方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行根据上述任一项所述的日志落地方法。
依据本发明的日志落地方法及装置,能够利用同步点机制,首先获取已知同步点日志的状态信息。在本实施例中,已知同步点为目标同步点之前已完成日志落地的相邻同步点。进一步,通过已知同步点日志的状态信息为目标同步点创建临时日志,并记录临时日志的状态信息。随之,根据临时日志为目标同步点生成正式日志,并结合临时日志的状态信息更新存储正式日志的状态信息,以完成日志落地。由此可知,本发明通过同步点机制,将日志的落地过程分为不同的同步点来逐步完成。并且,在通过同步点机制完成日志落地的过程中,进一步提及日志在落地过程中的不同状态,通过获取并记录日志落地过程中的状态信息,为日志的完全一致落地做了必要的基础。具体来说,当日志从一个同步点落地到另一个同步点的过程中,若出现文件损坏或数据丢失的状况,可以根据当前记录的已成功落地的同步点的状态信息,对出现数据丢失或损坏的所需落地的部分日志进行重新恢复即可,无需对已完成落地的部分日志进行重新落地,节省了大量的时间,并且减少了对系统内存的占用。此外,根据本发明的方法,由于仅根据已成功落地的同步点的状态信息即可对日志进行恢复,减少了系统传输的数据量,更从侧面降低了落地过程的失误率,提升了日志落地的准确性。更多地,本发明采用同步点机制,保证了状态信息的存储与正式日志的生成是同步的,更进一步地保证了日志落地的一致性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是根据本发明一个实施例的日志落地方法的流程图;
图2是根据本发明一个实施例的日志落地的具体方法流程图;
图3是根据本发明一个实施例的日志落地方法的另一个具体流程图;
图4是根据本发明一个实施例的日志落地装置的示意性框图;
图5是根据本发明一个实施例的日志落地装置的另一个示意性框图;
图6是根据本发明一个实施例的用于执行根据本发明的日志落地方法的计算设备的框图;以及
图7是根据本发明一个实施例的用于保持或者携带实现根据本发明的日志落地方法的程序代码的存储单元。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
相关技术中,当网络中的数据段需要落地时,通常会通过flink(一种网页代码标记)提供的方案将所需落地的数据段保存到HDFS系统,以完成日志的落地,进而在整个HDFS系统逐渐会存储数百或数千个文件数据片段的服务器。但是,目前flink提供的日志落地方案只能在日志格式是纯文本形式时,才能保证日志落地后数据完全一致。而对于有结构的日志格式,在日志落地时会产生坏块文件的现象,所产生的这些坏块文件,顾名思义其已经是被损坏的,说明当前日志已经被损坏,相当于是丢失了部分数据,无法保证日志落地后数据的完全一致。然而,对于HDFS落地来说,为了节省空间,提高效率,带结构的日志格式是不可或缺的,比如日志为lzo(lempel-ziv-oberhumer,数据压缩算法)或者gzip(文件压缩程序)等带压缩结构的日志。但是,对于带结构的日志落地,目前还没有好的解决方案。
为了解决上述技术问题,本发明提供了一种日志落地方法及装置。图1是根据本发明一个实施例的日志落地方法的流程图。如图1所示,日志的落地方法至少包括步骤S102至步骤S106:
步骤S102、获取已知同步点日志的状态信息,其中,已知同步点为目标同步点之前已完成日志落地的相邻同步点;
步骤S104、通过已知同步点日志的状态信息为目标同步点创建临时日志,并记录临时日志的状态信息;
步骤S106、根据临时日志为目标同步点生成正式日志,并结合临时日志的状态信息更新存储正式日志的状态信息,以完成日志落地.
依据本发明的日志落地方法及装置,能够利用同步点机制,首先获取已知同步点日志的状态信息。在本实施例中,已知同步点为目标同步点之前已完成日志落地的相邻同步点。进一步,通过已知同步点日志的状态信息为目标同步点创建临时日志,并记录临时日志的状态信息。随之,根据临时日志为目标同步点生成正式日志,并结合临时日志的状态信息更新存储正式日志的状态信息,以完成日志落地。由此可知,本发明通过同步点机制,将日志的落地过程分为不同的同步点来逐步完成。并且,在通过同步点机制完成日志落地的过程中,进一步提及日志在落地过程中的不同状态,通过获取并记录日志落地过程中的状态信息,为日志的完全一致落地做了必要的基础。具体来说,当日志从一个同步点落地到另一个同步点的过程中,若出现文件损坏或数据丢失的状况,可以根据记录的已成功落地的同步点的状态信息对出现数据丢失或损坏的所需落地的部分日志进行重新恢复即可,无需对已完成落地的部分日志进行重新落地,节省了大量的时间,并且减少了对系统内存的占用。此外,根据本发明的方法,由于仅根据已成功落地的同步点的状态信息即可对日志进行恢复,减少了系统传输的数据量,更从侧面降低了落地过程的失误率,提升了日志落地的准确性。更多地,本发明采用同步点机制,保证了状态信息的存储与正式日志的生成是同步的,更进一步地保证了日志落地的一致性。
在本实施例中,日志落地也可以简单地称为日志保存。根据本发明的方法,日志落地可以分为多种不同的情况。具体实践时,日志落地可以存在三种方案:at most once、atleast once、exactly once。下面对这三种级别的日志落地方案进行详细说明。在本实施例中,at most once,表明日志在落地过程中最多出现一次,但是该级别的日志落地可能会出现数据丢失的状况,无法更好地实现日志的完全一致落地(需要说明的是,本实施例的日志完全一致落地,即日志在落地过程中数据不会损坏或丢失,同时也不会出现数据重复等问题,保证日志落地后与原日志数据一致)。而at least once,表明日志在落地过程中最少出现一次,即该级别的日志落地虽然在日志的落地过程中不会在出现数据丢失现象,但可能会出现日志重复,仍旧不能保证日志的完全一致落地。此外,日志落地的另外一种方案exactly once是日志落地的最高级别的方案,该种级别的日志落地能够保证日志落地的完全一致,本发明即要实现该级别(exactly once)的日志落地。
进一步地,在本实施例中,日志落地时,由于日志落地情境的不同,日志落地过程中也会出现各种各样的问题需要解决。在本实施例中,若日志为纯文本格式,或者说,所需落地的日志并非带有特殊结构,当该日志在落地过程中出现中断或其他临时状况需要终止落地时,根据现有技术可以对已完成落地的日志文件首先进行保存。并且,当落地条件再次允许时,还可以根据所记录的日志落地状态从落地中断的部分继续执行落地操作,纯文本格式的日志在继续落地期间不会出现数据丢失或日志损坏等状况。然而,若所需落地的日志带有特殊结构(比如所需落地的日志是经过压缩处理的),当日志落地过程出现中断,若仍按现有技术对未完成落地的日志继续落地,则会出现数据丢失或损坏等一系列问题,使得落地的日志出现错误,不能正常使用。并且,根据现有技术对上述出现损坏的日志进行修复也会非常困难,可见,现有的日志落地技术无法满足日常日志落地的需求。
本发明实施例并未采用现有的日志落地技术,而是通过同步点机制,将整个日志落地过程分为若干同步点,进而通过该若干同步点逐步进行落地操作,以实现日志的完全一致落地。在本实施例的同步点机制中,任何一个同步点crash(或者说在日志落地过程中,任何一处出现数据丢失或损坏等问题),均可以根据本发明的方法对日志进行恢复。本实施例仅以日志落地过程中,任意两个相邻同步点间日志的传输为例进行详细说明。需要说明的是,本实施例的任意两个相邻同步点可以包括已知同步点和目标同步点,其中,已知同步点为已经成功完成日志落地的同步点。当然,本发明的方法还可以包括其他任意多个同步点,直至日志完全一致落地即可,本实施例对此不做具体限定。
具体地,根据本发明的方法,在将日志从已知同步点落地到目标同步点的过程中,首先执行步骤S102,获取已知同步点日志的状态信息,其中,已知同步点为目标同步点之前已完成日志落地的相邻同步点。由于已知同步点已经成功完成日志落地,在本实施例中,获取该已知同步点日志的状态信息之后,可以进一步通过该已知同步点的状态信息对应到正确的日志文件。在本实施例中,可以仅从该已成功落地的已知同步点处重新进行日志的落地操作即可。
在本实施例中,已知同步点日志的状态信息包括已知同步点日志的位置信息及名称信息。具体来说,位置信息可以包括offset,即消费流中的position;名称信息可以包括日志文件名中的seqld,其中,seqld可以作为日志文件名的标识,其是一个日志命名的依据,能够随着时间不断变化。例如,日志文件名中seqld每小时都从零开始递增,当日志在落地过程的不同阶段,其名称信息也不相同。进而,根据本发明的方法,可以通过日志文件名中的seqld更加具体地确定日志当前的状态信息。
在本实施例中,日志在落地过程中可以存在两种状态,分别为temp(临时日志)以及final(最终日志或者说正式日志)。临时日志可以作为日志落地过程的中间文件,通过若干临时日志的建立逐步生成最终日志。具体地,根据本发明的方法,在获取到已知同步点日志的状态信息之后,可以进一步执行步骤S104,通过已知同步点日志的状态信息为目标同步点创建临时日志,并记录临时日志的状态信息。
在本实施例中,可以根据已知同步点日志的位置信息及名称信息为目标同步点重新创建临时日志。若将已知同步点设定为同步点1,目标同步点设定为同步点2。在本实施例中,日志由同步点1落地到同步点2的过程中,可以首先根据同步点1的状态信息建立临时日志,在此过程中所建立的临时日志可以作为同步点2正式文件的中间文件而存在。并且,根据本发明的方法,在创建临时日志之后,还可以根据同步点1的状态信息更新记录所建立的中间文件的状态信息。
进一步,在更新记录所建立的中间文件的状态信息时,可以利用本实施例中重新创建的临时日志覆盖目标同步点的原始临时日志,并记录重新创建的临时日志的状态信息。在一个可选的本实施例中,若从已知同步点向目标同步点进行日志落地的过程中出现数据丢失或损坏等问题,使得日志无法成功落地时,也可以根据本发明的方法,利用已知同步点的状态信息重新建立临时日志,进而由该重新建立的临时日志覆盖原始的临时日志。具体地,可以根据已知同步点日志名称信息中的seqld来创建临时日志,而之前的临时日志会被重新创建的临时日志覆盖,并更新记录该临时日志的状态信息,以保证日志的完全一致落地。
上述步骤执行结束之后,根据本发明的方法还可以执行步骤S106,根据临时日志为目标同步点生成正式日志,并结合临时日志的状态信息更新存储正式日志的状态信息,以完成日志落地。具体地,可以利用同步点机制将临时日志关闭并生成目标同步点的正式日志,同时结合临时日志的状态信息更新存储正式日志的状态信息,以保证正式日志的生成及正式日志的状态信息存储同步,最终完成日志落地。
此外,在本发明实施例中,在利用同步点机制将临时日志关闭并生成目标同步点的正式日志,同时结合临时日志的状态信息更新存储正式日志的状态信息之前,还可以预先配置同步点定时器,并根据用户需求为同步点定时器设定实时时长。当同步点定时器到达设定的定时时长,触发同步点机制。在一个可选的实施例中,可以设定同步点定时器的定时时长为10min、20min,当然还可以根据实际应用场景或实际需求进行自定义设置,当同步点定时器的定时时长达到预设定时时长时,启动同步点机制。进而,利用同步点机制将所建立的一系列临时日志关闭并生成目标同步点的正式日志,同时结合临时日志的状态信息更新存储正式日志的状态信息,以保证正式日志的生成及正式日志的状态信息存储同步,最终完成日志落地。
需要说明的是,本发明的方法还可以包括任意多个同步点,本实施例的上述同步点1,同步点2仅为例举,并不构成对本发明同步点机制的具体限定。
可见,本发明通过同步点机制,将日志的落地过程分为不同的同步点来逐步完成。并且,在通过同步点机制完成日志落地的过程中,进一步提及日志在落地过程中的不同状态,通过获取并记录日志落地过程中的状态信息,为日志的完全一致落地做了必要的基础。具体来说,当日志从一个同步点落地到另一个同步点的过程中,若出现文件损坏或数据丢失的状况,可以根据记录的已成功落地的同步点的状态信息对出现数据丢失或损坏的所需落地的部分日志进行重新恢复即可,无需对已完成落地的部分日志进行重新落地,节省了大量的时间,并且减少了对系统内存的占用。此外,根据本发明的方法,由于仅根据已成功落地的同步点的状态信息即可对日志进行恢复,减少了系统传输的数据量,更从侧面降低了落地过程的失误率,提升了日志落地的准确性。更多地,本发明采用同步点机制,保证了状态信息的存储与正式日志的生成是同步的,更进一步地保证了日志落地的一致性。
下面将以几个具体的实施例对本发明的日志落地方法进行详细阐述。
实施例一
在以下的实施例中,可以利用同步点机制,将日志落地过程中所生成的最终日志与其生成状态对应起来,以保证正式日志的生成与状态的存储同步,进一步实现日志的完全一致落地。本实施例以同步点1和同步点2为例,其中同步点1作为已知同步点,即在同步点1处已成功完成日志落地,可以根据同步点1的状态信息对应到正确的日志文件。本实施例即要将正确的日志文件从同步点1落地到同步点2。
图2是根据本发明一个实施例的日志落地方法的具体流程图。如图2所示,在本实施例中,首先执行步骤S201,获取同步点1的状态信息,其中,该状态信息包括同步点1的位置信息及名称信息。
在该步骤中,同步点1的位置信息即同步点1的正确日志当前相对照的位置(offset),同步点1的名称信息即同步点1的正确日志当前相对照的日志文件名,该日志文件名中的seqld能够更加具体地标识当前日志的状态信息。
进一步,执行步骤S202,根据同步点1的位置信息及名称信息为同步点2创建临时日志。
在该步骤中,所创建的临时日志是日志在落地过程中的一种日志状态。具体来说,日志在落地过程中可以存在两种状态:临时日志以及正式日志(或者说最终日志)。在本实施例中,当日志从同步点1向同步点2进行落地操作时,首先根据同步点1的状态信息为同步点2创建临时日志,该临时日志仅是日志落地过程的某一阶段性状态,其与最终所生成的正式日志并不等同。同步点2的正式日志可以由同步点1到同步点2之间所创建的一系列临时日志共同构成。在本实施例中仅介绍同步点1到同步点2之间临时日志的创建。
在本实施例中,为同步点2创建临时日志之后,进一步,执行步骤S203,记录该创建的临时日志的状态信息。
实施例二
本实施例在实施例一的基础上进行了更深层次的拓展。根据本实施例的方法,若日志从同步点1向同步点2落地的过程中出现数据丢失或数据损坏等问题(或者说日志落地过程中一旦crash),导致日志未能成功落地。此时,可以根据同步点1的状态信息对同步点2的正式日志进行恢复。在一个可选的实施例中,若通过flink的checkpoint(安全性防火墙)机制记录同步点状态信息,则此时可以从checkpoint提交的同步点1的状态信息来对同步点2的正式日志进行恢复。
图3是根据本发明一个实施例的日志落地方法的另一个具体方法流程图。如图3所示,在本实施例中,首先执行步骤S301,根据同步点1的状态信息重新为同步点2建立临时日志。在该步骤中,为同步点2重新建立的临时日志会覆盖掉同步点2的原始临时日志,以保证日志落地的完全一致。
进一步,执行步骤S302,记录该同步点2的临时日志的状态信息。在该步骤中,临时日志的状态信息会覆盖掉原始临时日志的状态信息,该状态信息中包括更新之后的日志的offset信息及seqld信息,seqld信息是日志命名的一个依据。在本实施例中,通过将该重新建立的临时日志的状态信息覆盖掉原始临时日志的状态信息的更新记录方式,使得临时日志的状态信息保持一致,更进一步地保证了日志落地的完全一致。
随后,执行步骤S303,根据同步点2的临时日志为同步点2生成正式日志,并结合该临时日志的状态信息更新存储正式日志的状态信息,以完成日志落地。
在该步骤中,可以利用同步点机制将同步点2的临时日志关闭并生成同步点2的正式日志,同时结合同步点2的临时日志的状态信息更新存储同步点2正式日志的状态信息,以保证同步点2正式日志的生成及该正式日志的状态信息存储同步,最终完成日志落地。
此外,在该步骤中,还可以为同步点机制设置特定的触发条件。在本实施例中,可以为同步点配置同步点定时器,并根据用户需求为同步点定时器设定实时时长。进而当同步点定时器到达设定的定时时长,触发同步点机制。利用同步点机制执行上述操作。具体地,当同步点来的时候,可以利用同步点机制同步两个地方:首先是日志的状态;其次是生成最后的正式日志。在本实施例中,可以利用同步点机制将临时日志关闭并生成正式日志,同时结合临时日志的状态信息更新存储正式日志的状态信息,以保证正式日志的生成及该正式日志的状态信息存储同步,最终完成日志落地。
基于与日志落地方法的同一发明构思,本发明还提供了一种日志落地装置,如图4所示,该装置包括:获取模块410,配置为获取已知同步点日志的状态信息,其中,已知同步点为目标同步点之前已完成日志落地的相邻同步点;创建模块420,与获取模块410耦合,配置为通过已知同步点日志的状态信息为目标同步点创建临时日志,并记录临时日志的状态信息;落地模块430,与创建模块420耦合,配置为根据临时日志为目标同步点生成正式日志,并结合临时日志的状态信息更新存储正式日志的状态信息,以完成日志落地。
在一个优选的实施例中,获取模块410,还配置为:获取已知同步点日志的位置信息及名称信息。
在一个优选的实施例中,创建模块410,还配置为:根据已知同步点日志的位置信息及名称信息为目标同步点重新创建临时日志;由该重新创建的临时日志覆盖目标同步点的原始临时日志,并记录重新创建的临时日志的状态信息。
在一个优选的实施例中,落地模块430,还配置为:利用同步点机制将临时日志关闭并生成目标同步点的正式日志,同时结合临时日志的状态信息更新存储正式日志的状态信息,以保证正式日志的生成及正式日志的状态信息存储同步,最终完成日志落地。
在一个优选的实施例中,如图5所示,该装置还包括:定时模块440,配置为配置同步点定时器,并根据用户需求为同步点定时器设定实时时长;当同步点定时器到达设定的定时时长,触发同步点机制。
根据本发明的上述日志落地方法及装置可以达到如下有益效果:
依据本发明的日志落地方法及装置,能够利用同步点机制,首先获取已知同步点日志的状态信息。在本实施例中,已知同步点为目标同步点之前已完成日志落地的相邻同步点。进一步,通过已知同步点日志的状态信息为目标同步点创建临时日志,并记录临时日志的状态信息。随之,根据临时日志为目标同步点生成正式日志,并结合临时日志的状态信息更新存储正式日志的状态信息,以完成日志落地。由此可知,本发明通过同步点机制,将日志的落地过程分为不同的同步点来逐步完成。并且,在通过同步点机制完成日志落地的过程中,进一步提及日志在落地过程中的不同状态,通过获取并记录日志落地过程中的状态信息,为日志的完全一致落地做了必要的基础。具体来说,当日志从一个同步点落地到另一个同步点的过程中,若出现文件损坏或数据丢失的状况,可以根据记录的已成功落地的同步点的状态信息对出现数据丢失或损坏的所需落地的部分日志进行重新恢复即可,无需对已完成落地的部分日志进行重新落地,节省了大量的时间,并且减少了对系统内存的占用。此外,根据本发明的方法,由于仅根据已成功落地的同步点的状态信息即可对日志进行恢复,减少了系统传输的数据量,更从侧面降低了落地过程的失误率,提升了日志落地的准确性。更多地,本发明采用同步点机制,保证了状态信息的存储与正式日志的生成是同步的,更进一步地保证了日志落地的一致性。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的日志落地设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
本发明实施例还提供了一种电子设备,包括处理器、以及被安排成存储计算机可执行指令的存储器,可执行指令在被执行时使处理器执行根据上文任意一实施例的日志落地方法。
本发明实施例还提供了一种计算机存储介质,其中,计算机可读存储介质存储一个或多个程序,一个或多个程序当被包括多个应用程序的电子设备执行时,使得电子设备执行上文任一实施例的日志落地方法。
例如,图6示出了可以实现日志落地的计算设备。该计算设备传统上包括处理器610和存储器620形式的计算机程序产品或者计算机可读介质。存储器620可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器620具有存储用于执行上述方法中的任何方法步骤的程序代码631的存储空间630。例如,存储程序代码的存储空间630可以包括分别用于实现上面的方法中的各种步骤的各个程序代码631。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为例如图7所示的便携式或者固定存储单元。该存储单元可以具有与图6的计算设备中的存储器620类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元包括用于执行本发明的方法步骤的计算机可读代码631’,即可以由诸如610之类的处理器读取的代码,当这些代码由计算设备运行时,导致该计算设备执行上面所描述的方法中的各个步骤。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
Claims (10)
1.一种日志落地方法,包括:
获取已知同步点日志的状态信息,其中,所述已知同步点为目标同步点之前已完成日志落地的相邻同步点;
通过所述已知同步点日志的状态信息为所述目标同步点创建临时日志,并记录所述临时日志的状态信息,所述通过所述已知同步点日志的状态信息为所述目标同步点创建临时日志包括:根据所述已知同步点日志的位置信息及名称信息为所述目标同步点重新创建临时日志;
根据所述临时日志为所述目标同步点生成正式日志,并结合所述临时日志的状态信息更新存储所述正式日志的状态信息,以完成日志落地,所述根据所述临时日志为所述目标同步点生成正式日志,包括:根据重新创建的临时日志覆盖所述目标同步点的原始临时日志;利用同步点机制将所述临时日志关闭,并生成所述目标同步点的正式日志;
所述通过所述已知同步点日志的状态信息为所述目标同步点创建临时日志,并记录所述临时日志的状态信息,包括:
根据所述已知同步点日志的位置信息及名称信息为所述目标同步点重新创建临时日志;
由该重新创建的临时日志覆盖所述目标同步点的原始临时日志,并记录所述重新创建的临时日志的状态信息。
2.根据权利要求1所述的方法,其中,获取已知同步点日志的状态信息,包括:
获取已知同步点日志的位置信息及名称信息。
3.根据权利要求1或2所述的方法,其中,根据所述临时日志为所述目标同步点生成正式日志,并结合所述临时日志的状态信息更新存储所述正式日志的状态信息,以完成日志落地,包括:
利用同步点机制将所述临时日志关闭并生成所述目标同步点的正式日志,同时结合所述临时日志的状态信息更新存储所述正式日志的状态信息,以保证所述正式日志的生成及所述正式日志的状态信息存储同步,最终完成日志落地。
4.根据权利要求3所述的方法,其中,利用同步点机制将所述临时日志关闭并生成所述标同步点的正式日志,同时结合所述临时日志的状态信息更新存储所述正式日志的状态信息之前,还包括:
配置同步点定时器,并根据用户需求为所述同步点定时器设定实时时长;
当所述同步点定时器到达设定的定时时长,触发同步点机制。
5.一种日志落地装置,包括:
获取模块,配置为获取已知同步点日志的状态信息,其中,所述已知同步点为目标同步点之前已完成日志落地的相邻同步点;
创建模块,配置为通过所述已知同步点日志的状态信息为所述目标同步点创建临时日志,并记录所述临时日志的状态信息;
所述创建模块,还用于根据所述已知同步点日志的位置信息及名称信息为所述目标同步点重新创建临时日志;
落地模块,配置为根据所述临时日志为所述目标同步点生成正式日志,并结合所述临时日志的状态信息更新存储所述正式日志的状态信息,以完成日志落地;
所述落地模块,还用于根据重新创建的临时日志覆盖所述目标同步点的原始临时日志;利用同步点机制将所述临时日志关闭,并生成所述目标同步点的正式日志;
所述创建模块,还配置为:
根据所述已知同步点日志的位置信息及名称信息为所述目标同步点重新创建临时日志;
由该重新创建的临时日志覆盖所述目标同步点的原始临时日志,并记录所述重新创建的临时日志的状态信息。
6.根据权利要求5所述的装置,其中,所述获取模块,还配置为:
获取已知同步点日志的位置信息及名称信息。
7.根据权利要求5或6所述的装置,其中,所述落地模块,还配置为:
利用同步点机制将所述临时日志关闭并生成所述目标同步点的正式日志,同时结合所述临时日志的状态信息更新存储所述正式日志的状态信息,以保证所述正式日志的生成及所述正式日志的状态信息存储同步,最终完成日志落地。
8.根据权利要求7所述的装置,其中,还包括:
定时模块,配置为配置同步点定时器,并根据用户需求为所述同步点定时器设定实时时长;
当所述同步点定时器到达设定的定时时长,触发同步点机制。
9.一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据权利要求1-4中任一项所述的日志落地方法。
10.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行根据权利要求1-4中任一项所述的日志落地方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711489580.5A CN110019046B (zh) | 2017-12-29 | 2017-12-29 | 一种日志落地方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711489580.5A CN110019046B (zh) | 2017-12-29 | 2017-12-29 | 一种日志落地方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110019046A CN110019046A (zh) | 2019-07-16 |
CN110019046B true CN110019046B (zh) | 2024-05-14 |
Family
ID=67187238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711489580.5A Active CN110019046B (zh) | 2017-12-29 | 2017-12-29 | 一种日志落地方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019046B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1729455A (zh) * | 2003-04-10 | 2006-02-01 | 国际商业机器公司 | 数据处理系统内从失败的恢复 |
CN103593219A (zh) * | 2013-11-27 | 2014-02-19 | 中国航空工业集团公司第六三一研究所 | 一种针对nand flash设备的高可靠文件系统的快速启动方法 |
CN106294007A (zh) * | 2016-08-05 | 2017-01-04 | 联想(北京)有限公司 | 一种数据恢复方法及装置 |
CN106599222A (zh) * | 2016-12-19 | 2017-04-26 | 广州四三九九信息科技有限公司 | 一种流式并行处理日志的方法和设备 |
CN107168970A (zh) * | 2016-03-07 | 2017-09-15 | 中兴通讯股份有限公司 | 一种分布式文件系统hdfs的管理方法、装置及系统 |
CN107220142A (zh) * | 2016-03-22 | 2017-09-29 | 阿里巴巴集团控股有限公司 | 执行数据恢复操作的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5296960B2 (ja) * | 2005-06-17 | 2013-09-25 | 日本電気株式会社 | ファイルバージョン管理装置 |
-
2017
- 2017-12-29 CN CN201711489580.5A patent/CN110019046B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1729455A (zh) * | 2003-04-10 | 2006-02-01 | 国际商业机器公司 | 数据处理系统内从失败的恢复 |
CN103593219A (zh) * | 2013-11-27 | 2014-02-19 | 中国航空工业集团公司第六三一研究所 | 一种针对nand flash设备的高可靠文件系统的快速启动方法 |
CN107168970A (zh) * | 2016-03-07 | 2017-09-15 | 中兴通讯股份有限公司 | 一种分布式文件系统hdfs的管理方法、装置及系统 |
CN107220142A (zh) * | 2016-03-22 | 2017-09-29 | 阿里巴巴集团控股有限公司 | 执行数据恢复操作的方法及装置 |
CN106294007A (zh) * | 2016-08-05 | 2017-01-04 | 联想(北京)有限公司 | 一种数据恢复方法及装置 |
CN106599222A (zh) * | 2016-12-19 | 2017-04-26 | 广州四三九九信息科技有限公司 | 一种流式并行处理日志的方法和设备 |
Non-Patent Citations (2)
Title |
---|
Journaling versus soft updates :asynchronous metadata protection in file systems;Craig A.N等;《2000 USENIX Annual Technical conference》;71-84 * |
分布式环境下通用日志系统的设计与实现;阮厦城;《中国优秀硕士学位论文全文数据库 信息科技辑》;I138-4089 * |
Also Published As
Publication number | Publication date |
---|---|
CN110019046A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10437855B1 (en) | Automatic verification of asynchronously replicated data | |
CN111078662B (zh) | 一种区块链数据存储方法与装置 | |
WO2017039803A1 (en) | Systems and methods for verification of code resiliency for data storage | |
CN105630632A (zh) | 一种虚拟机恢复的方法及虚拟机管理设备 | |
CN111104201A (zh) | 系统迁移方法和装置、电子设备、存储介质 | |
CN103440204B (zh) | 一种更新文件系统的方法和存储设备 | |
WO2017028375A1 (zh) | 一种版本升级方法及系统 | |
EP3474143A1 (en) | Method and apparatus for incremental recovery of data | |
CN104765603A (zh) | 应用程序构建方法及装置 | |
CN104866293A (zh) | 一种对Android应用程序扩展功能的方法及装置 | |
CN104794155A (zh) | 数据加载的方法、装置及系统 | |
CN111400105A (zh) | 数据库备份方法及装置 | |
CN110209420A (zh) | 一种更新引导加载程序的方法及装置 | |
CN108037933B (zh) | 一种房产服务应用程序中城市服务的配置方法及系统 | |
CN111026711A (zh) | 基于区块链数据存储方法、装置、计算机设备及存储介质 | |
US10860747B2 (en) | Method for transmitting and checking the validity of configuration data in an electronic system, and associated electronic system and computer program product | |
CN110019046B (zh) | 一种日志落地方法及装置 | |
CN113296891B (zh) | 基于平台的多场景知识图谱处理方法及装置 | |
CN106776116A (zh) | 一种跨平台数据远程备份和还原方法 | |
US10824375B1 (en) | Cloud-based snapshots with coarse and fine granularity maps for changed data | |
CN104461757A (zh) | 一种恢复虚拟机的方法及装置 | |
CN104102558A (zh) | 一种基于纠删码的文件追加方法 | |
CN104572255A (zh) | 一种多层应用托管方法、装置及系统 | |
CN110941479B (zh) | 任务数据执行方法、服务器以及计算机存储介质 | |
CN114528139A (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 |