CN111541747B - 一种数据的检查点设置方法及装置 - Google Patents
一种数据的检查点设置方法及装置 Download PDFInfo
- Publication number
- CN111541747B CN111541747B CN202010278356.7A CN202010278356A CN111541747B CN 111541747 B CN111541747 B CN 111541747B CN 202010278356 A CN202010278356 A CN 202010278356A CN 111541747 B CN111541747 B CN 111541747B
- Authority
- CN
- China
- Prior art keywords
- data
- transmitted
- cache
- block
- streaming data
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种数据的检查点设置方法及装置,其中方法为:根据待传输流式数据,获取所述待传输流式数据的各缓存块;所述各缓存块中任一缓存块包括缓存数据和所述缓存数据在所述待传输流式数据中的归属信息;传输所述各缓存块,并在所述各缓存块的传输过程中,记录所述各缓存块的归属信息,作为所述待传输流式数据的检查点记录信息,从而设置所述待传输流式数据的检查点。上述方法应用于金融科技(Fintech)时,可以将所述待传输流式数据化整为零,更细粒度地设置所述待传输流式数据的检查点,从而更加及时地对同步传输的数据实现CheckPoint机制。
Description
技术领域
本发明涉及金融科技(Fintech)领域中的数据交换领域,尤其涉及一种数据的检查点设置方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。金融机构运转业务时,经常涉及到流式数据的同步传输。为了应对系统突然出现的故障,记录系统的状态,常需要对传输的流式数据做检查点(CheckPoint)机制,即记录已传输流式数据的状态,从而在必要的时机进行恢复。
然而,目前CheckPoint机制的通常做法均是将流式数据反序列化成规范的数据记录,再去做记录传输,而且是在整个数据传输任务完成后才去做记录,显然这种做法相对数据传输过程总是滞后的,且CheckPoint机制的粒度是传输任务,因此,目前方法不能及时对同步传输的数据实现CheckPoint机制,这是一个亟待解决的问题。
发明内容
本发明提供一种数据的检查点设置方法及装置,解决了现有技术中不能及时对同步传输的数据实现CheckPoint机制的问题。
第一方面,本发明提供一种数据的检查点设置方法,包括:根据待传输流式数据,获取所述待传输流式数据的各缓存块;所述各缓存块中任一缓存块包括缓存数据和所述缓存数据在所述待传输流式数据中的归属信息;其中,任一缓存块的归属信息包括该缓存块所属的流式数据的标识及偏移量;所述待传输流式数据分布在所述各缓存块的缓存数据中;传输所述各缓存块,并在所述各缓存块的传输过程中,记录所述各缓存块的归属信息,作为所述待传输流式数据的检查点记录信息,从而设置所述待传输流式数据的检查点。
上述方法中,获取了待传输流式数据后,并不是直接传输,而是根据待传输流式数据,先获取所述待传输流式数据的各缓存块,由于所述待传输流式数据分布在所述各缓存块的缓存数据中,也就是说,待传输流式数据实际上是拆分成了在多个缓存块中的缓存数据,而所述各缓存块中的归属信息还包括该缓存块所属的流式数据及偏移量,因此能在确定缓存块中缓存数据归属信息的基础上,可以将所述待传输流式数据化整为零,并且在所述各缓存块的传输过程中,便记录所述各缓存块的归属信息,更细粒度地设置所述待传输流式数据的检查点,从而更加及时地对同步传输的数据实现CheckPoint机制。
可选的,所述根据待传输流式数据,获取所述待传输流式数据的各缓存块之前,还包括:获取所述待传输流式数据的各子流式数据的来源信息;所述各子流式数据的来源信息包括该子流式数据的标识及偏移量;根据所述各子流式数据的来源信息和历史检查点记录信息,确定所述待传输流式数据中来源信息已在所述历史检查点记录信息记录的流式数据的末尾位置,作为所述待传输流式数据的初始传输位置;所述历史检查点记录信息记录了已传输的历史缓存块的归属信息。
上述方法中,在根据待传输流式数据,获取所述待传输流式数据的各缓存块之前,先根据所述各子流式数据的来源信息和历史检查点记录信息,确定已在所述历史检查点记录信息记录的流式数据的末尾位置,从而找到之前传输过的数据位置,作为所述待传输流式数据的初始传输位置,从而避免了冗余传输数据,提升了数据传输的效率。
可选的,所述根据待传输流式数据,获取所述待传输流式数据的各缓存块;包括:将所述待传输流式数据中从所述初始传输位置开始之后的数据,拆分为所述各缓存块的缓存数据;根据所述各缓存块的缓存数据的所属子流式数据的来源信息及缓存数据的大小,确定所述各缓存块的归属信息。
上述方法中,拆分出所述各缓存块的缓存数据后,每个缓存块都有相应的子流式数据,因此可以将所属子流式数据的来源信息及缓存数据的大小记录下来,即通过确定所述各缓存块的归属信息,从而记录所述待传输流式数据已经传输的内容。
可选的,所述传输所述各缓存块之后,还包括:针对所述各缓存块中任一缓存块的归属信息,生成所述缓存块的数据记录;将所述各缓存块的数据记录存储至目标数据库。
上述方式下,所述各缓存块中任一缓存块的归属信息生成所述缓存块的数据记录并存储至目标数据库后,可以持久化地存储缓存块的归属信息,从而不易丢失归属信息。
可选的,所述各缓存块中任一缓存块的数据记录还包括该缓存块的缓存数据的大小;所述方法还包括:基于所述各缓存块的数据记录,生成所述各缓存块的数据记录的各存储索引信息;所述索引信息用于索引所述各缓存块的数据记录在所述目标数据库的存储位置。
上述方式下,由于数据传输过程对时延更加敏感,因此快速获取缓存块的归属信息可以降低时延的影响,在添加了所述各缓存块的数据记录的各存储索引信息,可用迅速定位到所述各缓存块的数据记录在所述目标数据库的存储位置,从而快速获取缓存块。
可选的,所述根据待传输流式数据,获取所述待传输流式数据的各缓存块之前;还包括:通过调用统一输入流接口,获取所述待传输流式数据;所述统一输入流接口实现了标准输入流的统一规范,所述统一输入流接口与多种数据源类型适配;所述传输所述各缓存块;包括:将所述各缓存块写入所述管道缓冲区;所述传输所述各缓存块是基于管道缓冲区的读写机制以及统一输出流接口实现的;通过调用统一输出流接口,将所述各缓存块从所述管道缓冲区读出;所述统一输出流接口实现了标准输出流的统一规范,所述统一输出流接口与多种数据源类型适配。
上述方法中,通过调用统一输入流接口,获取所述待传输流式数据;以及通过调用统一输出流接口,将所述各缓存块从所述管道缓冲区读出,从而可以通过一套读写处理逻辑处理多种数据源类型适配,使得数据的传输更加简便高效。
可选的,所述各缓存块的大小是根据网络传输速率设置的;所述各缓存块的大小与网络传输速率呈正相关。
上述方法中,由于网络传输速率表征了待传输流式数据的到达速率,因此,当设置所述各缓存块的大小与网络传输速率呈正相关时,可以用适宜数量的缓存块设置检查点。
第二方面,本发明提供一种数据的检查点设置装置,包括:获取模块,用于根据待传输流式数据,获取所述待传输流式数据的各缓存块;所述各缓存块中任一缓存块包括缓存数据和所述缓存数据在所述待传输流式数据中的归属信息;其中,任一缓存块的归属信息包括该缓存块所属的流式数据的标识及偏移量;所述待传输流式数据分布在所述各缓存块的缓存数据中;设置模块,用于传输所述各缓存块,并在所述各缓存块的传输过程中,记录所述各缓存块的归属信息,作为所述待传输流式数据的检查点记录信息,从而设置所述待传输流式数据的检查点。
可选的,所述获取模块还用于:获取所述待传输流式数据的各子流式数据的来源信息;所述各子流式数据的来源信息包括该子流式数据的标识及偏移量;所述设置模块还用于:根据所述各子流式数据的来源信息和历史检查点记录信息,确定所述待传输流式数据中来源信息已在所述历史检查点记录信息记录的流式数据的末尾位置,作为所述待传输流式数据的初始传输位置;所述历史检查点记录信息记录了已传输的历史缓存块的归属信息。
可选的,所述获取模块具体用于:将所述待传输流式数据中从所述初始传输位置开始之后的数据,拆分为所述各缓存块的缓存数据;根据所述各缓存块的缓存数据的所属子流式数据的来源信息及缓存数据的大小,确定所述各缓存块的归属信息。
可选的,所述装置还包括存储模块,所述存储模块用于:针对所述各缓存块中任一缓存块的归属信息,生成所述缓存块的数据记录;将所述各缓存块的数据记录存储至目标数据库。
可选的,所述各缓存块中任一缓存块的数据记录还包括该缓存块的缓存数据的大小;所述存储模块还用于:基于所述各缓存块的数据记录,生成所述各缓存块的数据记录的各存储索引信息;所述索引信息用于索引所述各缓存块的数据记录在所述目标数据库的存储位置。
可选的,所述获取模块还用于:通过调用统一输入流接口,获取所述待传输流式数据;所述统一输入流接口实现了标准输入流的统一规范,所述统一输入流接口与多种数据源类型适配;所述设置模块具体用于:将所述各缓存块写入所述管道缓冲区;所述传输所述各缓存块是基于管道缓冲区的读写机制以及统一输出流接口实现的;通过调用统一输出流接口,将所述各缓存块从所述管道缓冲区读出;所述统一输出流接口实现了标准输出流的统一规范,所述统一输出流接口与多种数据源类型适配。
可选的,所述各缓存块的大小是根据网络传输速率设置的;所述各缓存块的大小与网络传输速率呈正相关。
上述第二方面及第二方面各个可选装置的有益效果,可以参考上述第一方面及第一方面各个可选方法的有益效果,这里不再赘述。
第三方面,本发明提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个可选的方法。
第四方面,本发明提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个可选的方法。
附图说明
图1为本申请实施例提供的一种数据的检查点设置方法可应用的架构示意图;
图2为本申请实施例提供的一种数据的检查点设置方法的步骤流程示意图;
图3为本申请实施例提供的一种数据的检查点设置方法中缓存块的结构示意图;
图4为本申请实施例提供的一种数据的检查点设置方法中缓存数据的持久化结构示意图;
图5为本申请实施例提供的一种数据的检查点设置方法的的应用场景示意图;
图6为本申请实施例提供的一种数据的检查点设置装置的结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面将结合说明书附图及具体的实施方式对上述技术方案进行详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互结合。
下面首先列出本申请中出现的名词概念。
DataX:一种广泛使用的离线数据同步工具,它将数据同步过程分成读写两部分,中间使用管道(Channel)连接,读写的逻辑以插件的形式封装成读取器(Reader)和写入器(Writer),允许用户自定义开发需要的读写插件。
CheckPoint:检查点机制或故障恢复机制,早期用来描述数据库定时将缓存数据写入文件的事件,后期被各种框架重新定义,总体的作用可以概括为给系统或者程序做备份“快照”,如数据传输过程中传输状态的“快照”,使得系统出现不可调停问题的时候能自动恢复到离当下时间点最近的这些“快照”状态上。
Gobblin是一种开源的数据抽取框架,扩展支持了多种数据源类型,同时可以对数据进行转换和加载,在数据传输同步的过程中,提供了任务状态管理等机制确保数据完整性,能够让用户对传输数据类型进行定制化处理。
Flume是Cloudera提供的一种能够对日志流数据进行聚合和移动的架构,它比较轻便灵活,实质是将日志流数据按行或者多行聚合转化成事件(Event)进行传输,对二进制文件流,也能将文件流数据转化为Event结构。
在金融机构(银行机构、保险机构或证券机构)在进行业务(如银行的贷款业务、存款业务等)运转过程中,经常涉及到流式数据的同步传输,这个过程中常需要对传输的流式数据做检查点。然而,目前CheckPoint机制的通常做法均是将流式数据反序列化成规范的数据记录之后才做的,总是滞后于传输,且整个传输任务结束时才能做CheckPoint,这及时对同步传输的数据实现CheckPoint机制。这种情况不符合银行等金融机构的需求,无法保证金融机构各项业务的高效运转。
为此,本申请提供了一种数据的检查点设置方法。如图1所示,为本申请提供的数据的检查点设置方法可应用的架构示意图。图2为该方法的步骤流程示意图,数据的检查点设置方法包括以下步骤:
步骤201:根据待传输流式数据,获取所述待传输流式数据的各缓存块。
步骤202:传输所述各缓存块,并在所述各缓存块的传输过程中,记录所述各缓存块的归属信息,作为所述待传输流式数据的检查点记录信息,从而设置所述待传输流式数据的检查点。
步骤201~步骤202中,待传输流式数据可能分为多个,缓存块的缓存数据就是截取待传输流式数据中的一段数据。所述各缓存块中任一缓存块包括缓存数据和所述缓存数据在所述待传输流式数据中的归属信息;其中,任一缓存块的归属信息包括该缓存块所属的流式数据的标识及偏移量;所述待传输流式数据分布在所述各缓存块的缓存数据中。
需要说明的是,所述各缓存块中任一缓存块的归属信息还可以为任何指定该缓存块的缓存数据在所述待传输流式数据中对应位置的信息。如缓存块的归属信息记录了缓存块的开始位置和末尾位置在所述待传输流式数据中的相应位置。另外,一个缓存块所属的流式数据可能不止一个,那么归属信息中可能记录多个流式数据的标识及偏移量。
具体来说,如图3所示,缓存块的组成可以分为两部分:缓存块的头部和缓存块的流数据,缓存块的头部可以设置固定的长度(如28bits),记录了缓存块的归属信息,还可以添加序列标识,使得缓存块在后续网络传输中有序。而且归属信息中也可以不包含流式数据的标识,只需要记录缓存块的头部和检查点数据的对应关系即可。
另外,由于网络传输速率表征了待传输流式数据的到达速率,因此,不同网络传输速率下需要缓存块缓存的数据也不相同,显然,网络传输速率与缓存块的缓存需求呈正相关,因此,一种可能的实现方式中,所述各缓存块的大小是根据网络传输速率设置的;所述各缓存块的大小与网络传输速率呈正相关,从而可以用适宜数量的缓存块设置检查点。举例来说,网络传输速率可按划分为多个速率区间,缓存块的大小也可以取多个存储容量区间中某个存储容量的一个值。那么,可以按照正相关的关系,建立多个速率区间与多个存储容量区间映射关系,即取值区间的平均值越高的速率区间,对应的时长区间的存储容量区间的平均值越大。
在上述实现方式下,由于网络传输速率表征了待传输流式数据的到达速率,因此,当设置所述各缓存块的大小与网络传输速率呈正相关时,可以用适宜数量的缓存块设置检查点。
下面结合图1,说明本申请的整体过程。如图1所示,待传输流式数据经历了如下过程:
步骤(1)进入管道读写输入流接口。
步骤(2)检测是否需要检查点恢复。
步骤(3)根据待传输流式数据,生成各缓存块。
步骤(4)通过管道缓冲区,传输各缓存块,并设置各缓存块的检查点。
步骤(5)通过管道读写输入流接口从管道缓冲区读出各缓存块。
一种可选实施方式中,可以通过统一输入流接口和统一输出流接口实现待传输流式数据的传输。
具体来说,在步骤201之前,可以按照如下步骤执行步骤(1):
通过调用统一输入流接口,获取所述待传输流式数据。
所述统一输入流接口实现了标准输入流的统一规范,所述统一输入流接口与多种数据源类型适配。标准输入流的统一规范是,用于输入数据的应用程序接口所遵循的统一函数格式,如果需要调用标准输入流的统一规范下的功能,必须遵循标准输入流的统一规范,可以在遵循标准输入流的统一规范的基础上,接收多种数据源类型的流式数据,标准输入流的统一规范有多种,如JAVA中的Intput Stream。
相应地,所述传输所述各缓存块也可以基于管道缓冲区的读写机制以及统一输出流接口实现,具体地,可以将所述各缓存块写入所述管道缓冲区后,按照如下步骤执行步骤(5):
通过调用统一输出流接口,将所述各缓存块从所述管道缓冲区读出;所述统一输出流接口实现了标准输出流的统一规范,所述统一输出流接口与多种数据源类型适配。标准输出流的统一规范是,用于输出数据的应用程序接口所遵循的统一函数格式,如果需要调用标准输出流的统一规范下的功能,必须遵循标准输出流的统一规范,可以在遵循标准输出流的统一规范的基础上,接收多种数据源类型的流式数据,标准输出流的统一规范有多种,如JAVA中的Output Stream。
上述实施方式中,通过调用统一输入流接口,获取所述待传输流式数据;以及通过调用统一输出流接口,将所述各缓存块从所述管道缓冲区读出,从而可以通过一套读写处理逻辑处理多种数据源类型适配,使得数据的传输更加简便高效。
步骤201之前,也就是步骤(2)的一种可能实现方式如下:
获取所述待传输流式数据的各子流式数据的来源信息;根据所述各子流式数据的来源信息和历史检查点记录信息,确定所述待传输流式数据中来源信息已在所述历史检查点记录信息记录的流式数据的末尾位置,作为所述待传输流式数据的初始传输位置。
所述各子流式数据的来源信息包括该子流式数据的标识及偏移量;所述历史检查点记录信息记录了已传输的历史缓存块的归属信息
显然,上述方式可以确定出待传输流式数据中数据传输的末状态,从而可以确定待传输流式数据中已经传输的数据,那么能跳过这些已经传输的冗余数据,从待传输流式数据的初始传输位置传,提升了数据传输的效率。
基于此,步骤201的具体实现方式可以如下:
将所述待传输流式数据中从所述初始传输位置开始之后的数据,拆分为所述各缓存块的缓存数据;根据所述各缓存块的缓存数据的所属子流式数据的来源信息及缓存数据的大小,确定所述各缓存块的归属信息。
也就是说,既然不需要传输所述初始传输位置之前的数据,那么也不必对所述初始传输位置之前的数据进行拆分,直接从所述初始传输位置开始之后的数据拆分,获得所述各缓存块的缓存数据。另外,所述各缓存块的归属信息具体可以为,所述各缓存块的缓存数据相对于所属子流式数据的开始位置的偏移量,可通过缓存数据的大小得出。
在实际的数据传输场景中,一般数据传输的持续时间较长,会使用到多管道多数据流,如果仅将所述各缓存块的归属信息存到内存中,并不是可靠的存储。因此,还可以做更加持久的存储,一种实现方式如下:
针对所述各缓存块中任一缓存块的归属信息,生成所述缓存块的数据记录;将所述各缓存块的数据记录存储至目标数据库。
数据库中的数据是以具体的文件存储的,不容易丢失,因此可以持久化地存储缓存块的归属信息。
在此基础上,还可以进一步提升缓存块的归属信息存储的精确性和效率,一种可选实施方式中,所述各缓存块中任一缓存块的数据记录还包括该缓存块的缓存数据的大小;之后可以执行如下步骤:
基于所述各缓存块的数据记录,生成所述各缓存块的数据记录的各存储索引信息。
所述索引信息用于索引所述各缓存块的数据记录在所述目标数据库的存储位置。
具体地,上述可选实施方式可以如图4所示,每条归属信息可以化为一条数据记录,并在表中记录每条数据记录的索引信息。举例来说,一般数据记录中存储的归属信息为长度不变的内容,比如唯一键值(如序列标识),而检查点位置即偏移量Offset为易变更内容,如长度为8个字节的长整型类型数据。
上述可选实施方式下,由于数据传输过程对时延更加敏感,因此快速获取缓存块的归属信息可以降低时延的影响,在添加了所述各缓存块的数据记录的各存储索引信息,可用迅速定位到所述各缓存块的数据记录在所述目标数据库的存储位置,从而快速获取缓存块。
综上所述,本申请提供的一种数据的检查点设置方法在执行大量数据传输作业时,可以如图5所示。每个作业组可以通过多个管道传输,这些管道可以统一在一个缓冲区记录,并写入到统一的数据库。
显然,当出现网络故障等其他不可调停的问题的时候,如果数据任务正常退出,会保证内存里最后一次的检查点数据也会持久化存储(如录入磁盘或者共享存储)。而如果任务进程被强杀,则只会保留最后一次持久化存储的数据,前者是最理想的恢复情况,恢复耗时为传输一个缓存区块的时延,后者的恢复时延为一次持久化的间隔时间,但是,可恢复的数据量和耗时都比在任务粒度上做检查点机制更低。
如图6所示,本发明提供一种数据的检查点设置装置,包括:获取模块601,用于根据待传输流式数据,获取所述待传输流式数据的各缓存块;所述各缓存块中任一缓存块包括缓存数据和所述缓存数据在所述待传输流式数据中的归属信息;其中,任一缓存块的归属信息包括该缓存块所属的流式数据的标识及偏移量;所述待传输流式数据分布在所述各缓存块的缓存数据中;设置模块602,用于传输所述各缓存块,并在所述各缓存块的传输过程中,记录所述各缓存块的归属信息,作为所述待传输流式数据的检查点记录信息,从而设置所述待传输流式数据的检查点。
可选的,所述获取模块601还用于:获取所述待传输流式数据的各子流式数据的来源信息;所述各子流式数据的来源信息包括该子流式数据的标识及偏移量;所述设置模块602还用于:根据所述各子流式数据的来源信息和历史检查点记录信息,确定所述待传输流式数据中来源信息已在所述历史检查点记录信息记录的流式数据的末尾位置,作为所述待传输流式数据的初始传输位置;所述历史检查点记录信息记录了已传输的历史缓存块的归属信息。
可选的,所述获取模块601具体用于:将所述待传输流式数据中从所述初始传输位置开始之后的数据,拆分为所述各缓存块的缓存数据;根据所述各缓存块的缓存数据的所属子流式数据的来源信息及缓存数据的大小,确定所述各缓存块的归属信息。
可选的,所述装置还包括存储模块603,所述存储模块603用于:针对所述各缓存块中任一缓存块的归属信息,生成所述缓存块的数据记录;将所述各缓存块的数据记录存储至目标数据库。
可选的,所述各缓存块中任一缓存块的数据记录还包括该缓存块的缓存数据的大小;所述存储模块603还用于:基于所述各缓存块的数据记录,生成所述各缓存块的数据记录的各存储索引信息;所述索引信息用于索引所述各缓存块的数据记录在所述目标数据库的存储位置。
可选的,所述获取模块601还用于:通过调用统一输入流接口,获取所述待传输流式数据;所述统一输入流接口实现了标准输入流的统一规范,所述统一输入流接口与多种数据源类型适配;所述传输所述各缓存块是基于管道缓冲区的读写机制以及统一输出流接口实现的;所述设置模块602具体用于:将所述各缓存块写入所述管道缓冲区;通过调用统一输出流接口,将所述各缓存块从所述管道缓冲区读出;所述统一输出流接口实现了标准输出流的统一规范,所述统一输出流接口与多种数据源类型适配。
可选的,所述各缓存块的大小是根据网络传输速率设置的;所述各缓存块的大小与网络传输速率呈正相关。
本申请实施例提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行本申请实施例提供的一种数据的检查点设置方法及任一可选方法。
本申请实施例提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行本申请实施例提供的一种数据的检查点设置方法及任一可选方法。
最后应说明的是:本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种数据的检查点设置方法,其特征在于,包括:
根据待传输流式数据,获取所述待传输流式数据的各缓存块;所述各缓存块中任一缓存块包括缓存数据和所述缓存数据在所述待传输流式数据中的归属信息;其中,任一缓存块的归属信息包括该缓存块所属的流式数据的标识及偏移量,表示所述缓存数据在所述待传输流式数据中的位置信息;所述待传输流式数据分布在所述各缓存块的缓存数据中;
传输所述各缓存块,并在所述各缓存块的传输过程中,记录所述各缓存块的归属信息,作为所述待传输流式数据的检查点记录信息,从而设置所述待传输流式数据的检查点。
2.如权利要求1所述的方法,其特征在于,所述根据待传输流式数据,获取所述待传输流式数据的各缓存块之前,还包括:
获取所述待传输流式数据的各子流式数据的来源信息;所述各子流式数据的来源信息包括该子流式数据的标识及偏移量;
根据所述各子流式数据的来源信息和历史检查点记录信息,确定所述待传输流式数据中来源信息已在所述历史检查点记录信息记录的流式数据的末尾位置,作为所述待传输流式数据的初始传输位置;所述历史检查点记录信息记录了已传输的历史缓存块的归属信息。
3.如权利要求2所述的方法,其特征在于,所述根据待传输流式数据,获取所述待传输流式数据的各缓存块;包括:
将所述待传输流式数据中从所述初始传输位置开始之后的数据,拆分为所述各缓存块的缓存数据;
根据所述各缓存块的缓存数据的所属子流式数据的来源信息及缓存数据的大小,确定所述各缓存块的归属信息。
4.如权利要求1至3任一所述的方法,其特征在于,所述传输所述各缓存块之后,还包括:
针对所述各缓存块中任一缓存块的归属信息,生成所述缓存块的数据记录;
将所述各缓存块的数据记录存储至目标数据库。
5.如权利要求4所述的方法,其特征在于,所述各缓存块中任一缓存块的数据记录还包括该缓存块的缓存数据的大小;所述方法还包括:
基于所述各缓存块的数据记录,生成所述各缓存块的数据记录的各存储索引信息;所述索引信息用于索引所述各缓存块的数据记录在所述目标数据库的存储位置。
6.如权利要求1至3任一所述的方法,其特征在于,所述根据待传输流式数据,获取所述待传输流式数据的各缓存块之前;还包括:
通过调用统一输入流接口,获取所述待传输流式数据;所述统一输入流接口实现了标准输入流的统一规范,所述统一输入流接口与多种数据源类型适配;
所述传输所述各缓存块;包括:
将所述各缓存块写入管道缓冲区;所述传输所述各缓存块是基于管道缓冲区的读写机制以及统一输出流接口实现的;
通过调用统一输出流接口,将所述各缓存块从所述管道缓冲区读出;所述统一输出流接口实现了标准输出流的统一规范,所述统一输出流接口与多种数据源类型适配。
7.如权利要求1至3任一所述的方法,其特征在于,所述各缓存块的大小是根据网络传输速率设置的;所述各缓存块的大小与网络传输速率呈正相关。
8.一种数据的检查点设置装置,其特征在于,包括:
获取模块,用于根据待传输流式数据,获取所述待传输流式数据的各缓存块;所述各缓存块中任一缓存块包括缓存数据和所述缓存数据在所述待传输流式数据中的归属信息;其中,任一缓存块的归属信息包括该缓存块所属的流式数据的标识及偏移量,表示所述缓存数据在所述待传输流式数据中的位置信息;所述待传输流式数据分布在所述各缓存块的缓存数据中;
设置模块,用于传输所述各缓存块,并在所述各缓存块的传输过程中,记录所述各缓存块的归属信息,作为所述待传输流式数据的检查点记录信息,从而设置所述待传输流式数据的检查点。
9.一种计算机设备,其特征在于,包括:
存储器,用于存储程序或指令;
处理器,用于调用所述存储器中存储的程序或指令,按照获得的程序或指令执行权利要求1至7中任意一项所述的方法。
10.一种存储介质,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至7中任意一项所述的方法被执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010278356.7A CN111541747B (zh) | 2020-04-10 | 2020-04-10 | 一种数据的检查点设置方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010278356.7A CN111541747B (zh) | 2020-04-10 | 2020-04-10 | 一种数据的检查点设置方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111541747A CN111541747A (zh) | 2020-08-14 |
CN111541747B true CN111541747B (zh) | 2023-05-12 |
Family
ID=71970341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010278356.7A Active CN111541747B (zh) | 2020-04-10 | 2020-04-10 | 一种数据的检查点设置方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111541747B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112650625B (zh) * | 2020-12-28 | 2024-06-14 | 武汉达梦数据技术有限公司 | 一种针对数据库的流式备份还原方法、存储介质及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9471438B1 (en) * | 2015-12-08 | 2016-10-18 | International Business Machines Corporation | Adaptive incremental checkpointing for data stream processing applications |
CN108475218A (zh) * | 2016-01-14 | 2018-08-31 | 起元技术有限责任公司 | 可恢复流处理 |
CN110569144A (zh) * | 2019-08-09 | 2019-12-13 | 苏宁金融科技(南京)有限公司 | 基于storm流式计算的数据处理方法和数据处理系统 |
-
2020
- 2020-04-10 CN CN202010278356.7A patent/CN111541747B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9471438B1 (en) * | 2015-12-08 | 2016-10-18 | International Business Machines Corporation | Adaptive incremental checkpointing for data stream processing applications |
CN108475218A (zh) * | 2016-01-14 | 2018-08-31 | 起元技术有限责任公司 | 可恢复流处理 |
CN110569144A (zh) * | 2019-08-09 | 2019-12-13 | 苏宁金融科技(南京)有限公司 | 基于storm流式计算的数据处理方法和数据处理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111541747A (zh) | 2020-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3258396A1 (en) | Data synchronization method, device and system | |
US8904225B2 (en) | Stream data processing failure recovery method and device | |
CN106649828B (zh) | 一种数据查询方法及系统 | |
CN109308170B (zh) | 一种数据处理方法及装置 | |
US9037905B2 (en) | Data processing failure recovery method, system and program | |
WO2021012868A1 (zh) | 事务回滚方法及装置、数据库、系统、计算机存储介质 | |
US9229970B2 (en) | Methods to minimize communication in a cluster database system | |
CN103197988A (zh) | 一种数据备份、恢复的方法、设备和数据库系统 | |
CN114116665B (zh) | 数据库中并行写入事务日志以提升处理效率的方法 | |
EP3480705B1 (en) | Database data modification request processing method and apparatus | |
CN105701190A (zh) | 一种数据同步的方法和装置 | |
CN104063293A (zh) | 一种数据备份方法及流计算系统 | |
CN110704438B (zh) | 一种区块链中布隆过滤器的生成方法及装置 | |
EP4213038A1 (en) | Data processing method and apparatus based on distributed storage, device, and medium | |
CN112395300A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN103020003A (zh) | 面向多核程序确定性重演的内存竞争记录装置及其控制方法 | |
WO2021120880A1 (zh) | 数据复制处理方法、装置、容灾系统、设备及存储介质 | |
WO2021027612A1 (zh) | 一种区块链中的交易执行方法及装置 | |
CN111541747B (zh) | 一种数据的检查点设置方法及装置 | |
CN111752482A (zh) | 一种全闪存分布式存储系统中写数据的方法及系统 | |
CN103399943A (zh) | 集群数据库并行查询的通讯方法和通讯装置 | |
CN103853827A (zh) | 一种保证数据一致性的数据库备份方法 | |
US20190354376A1 (en) | Process Stream Replication for Content Management System Synchronization | |
CN104732438A (zh) | 一种交易冲正方法和交易处理系统 | |
CN101075219B (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 |