CN111211993B - 流式计算的增量持久化方法、装置及存储介质 - Google Patents
流式计算的增量持久化方法、装置及存储介质 Download PDFInfo
- Publication number
- CN111211993B CN111211993B CN201811388343.4A CN201811388343A CN111211993B CN 111211993 B CN111211993 B CN 111211993B CN 201811388343 A CN201811388343 A CN 201811388343A CN 111211993 B CN111211993 B CN 111211993B
- Authority
- CN
- China
- Prior art keywords
- data
- current node
- node
- unit
- persistence
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/38—Flow control; Congestion control by adapting coding or compression rate
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/41—Flow control; Congestion control by acting on aggregated flows or links
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6245—Modifications to standard FIFO or LIFO
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提出一种流式计算的增量持久化方法及其装置、计算机程序产品、存储介质。其中,流式计算由多个节点进行,方法包括:获取当前节点的新增数据,并将新增数据根据操作类型分为多个数据单元,将多个数据单元存入存储系统。根据操作类型对存入存储系统的多个数据单元进行合并,以获得当前节点的持久化数据。由此,本发明实施例实现了在将数据存入存储系统后,将合并后的存储数据作为持久化数据,从而减少了存储系统中持久化数据的数据总量,降低了对系统存储资源的消耗,解决了现有技术中持久化数据总量过大的技术问题。
Description
技术领域
本发明涉及分布式计算技术领域,尤其涉及一种流式计算的增量持久化方法及其装置。
背景技术
流式计算是一种实时分布式计算方法,广泛应用于信息流、广告、网页建库、地图等领域。但随着计算复杂度的增加,流式计算系统对计算结果的要求越来越高,需要将历史计算结果进行持久化来保证流式计算计算结果的准确度。
相关技术中,对流式计算结果采用全量持久化机制。然而该机制的持久化过程需要将之前产生的全部数据进行存储。由此可以看出目前的全量持久化机制对于系统资源的消耗极大,对流式计算的实时性能造成影响。为此,研究人员又提出了增量持久化机制,现有的增量持久化机制虽然在持久化过程中只对新增数据进行存储,减少了每一次存储过程中对系统的资源消耗,但是数据存储总量会随着新增数据的增加而不断增加,依然会消耗大量的系统存储资源。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种流式计算的增量持久化方法,以实现在数据恢复时,使用合并后的持久化数据进行计算状态恢复,减少了计算状态恢复时的系统工作量,降低了对系统资源的消耗。
本发明的第二个目的在于提出一种流式计算的增量持久化装置。
本发明的第三个目的在于提出一种计算机程序产品。
本发明的第四个目的在于提出一种非临时性计算机可读存储介质。
为达上述目的,本发明第一方面实施例提出了一种流式计算的增量持久化方法,包括:获取当前节点的新增数据,并将所述新增数据根据操作类型分为多个数据单元;将所述多个数据单元存入存储系统;以及根据所述操作类型对存入所述存储系统的所述多个数据单元进行合并,以获得所述当前节点的持久化数据。
和现有技术相比,本发明实施例在对新增数据进行存储时,将新增数据根据操作类型分为多个数据单元,将新增数据存入存储系统后,根据不同的操作类型对数据单元进行合并,减少了当前节点需要存储的持久化数据。
另外,本发明实施例的流式计算的增量持久化方法,还具有如下附加的技术特征:
可选地,在所述获得所述当前节点的持久化数据之后,还包括:根据所述当前节点的持久化数据,对所述当前节点的计算状态进行恢复。
可选地,所述新增数据包括当前节点的输出结果数据、当前节点的用户状态修改数据、定时器数据中的一种或者多种。
可选地,所述将所述多个数据单元存入存储系统,包括:将所述多个数据单元打包为数据块;根据预设的传输大小阈值和传输时间阈值将多个所述数据块打包为数据组;将所述数据组存入所述存储系统中当前节点所对应的服务器。
可选地,所述将所述数据组存入所述存储系统中当前节点所对应的服务器,包括:获取所述数据组中所述数据单元的数据标识;根据所述数据标识将所述数据组存入当前节点所对应的服务器。
可选地,所述操作类型包括插入和删除,所述数据单元包括数据内容,所述根据所述操作类型对所述数据单元进行合并,以获得所述当前节点的持久化数据,包括:将所述插入类型的数据单元与所述删除类型的数据单元进行比对,以获取数据内容相同的所述插入类型的数据单元与所述删除类型的数据单元;将所述数据内容相同的所述插入类型的数据单元与所述删除类型的数据单元进行删除,以获得所述当前节点的持久化数据。
可选地,所述根据所述当前节点的持久化数据,对所述当前节点的计算状态进行恢复,包括:判断当前节点是否存在异常;若所述当前节点存在异常,则在所述存储系统中查找所述当前节点的持久化数据;根据查找的所述当前节点的持久化数据,将所述当前节点的计算状态恢复正常。
可选地,所述当前节点的持久化数据包括当前节点的用户状态修改数据,定时器数据中的一种或者两种,在所述将所述当前节点的计算状态恢复正常之后,还包括:获取所述当前节点的上一节点的输出结果数据;根据所述当前节点的上一节点的输出结果数据,计算所述当前节点的输出结果数据;以及在所述存储系统中删除上一节点的输出结果数据;将所述当前节点的输出结果数据传输给下一节点。
可选地,所述获取所述当前节点的上一节点的输出结果数据,包括:从所述上一节点获取所述上一节点的输出结果数据,或者从所述存储系统中获取所述上一节点的输出结果数据。
本发明第二方面实施例提出了一种流式计算的增量持久化装置,包括:获取模块,用于获取当前节点的新增数据,并将所述新增数据根据操作类型分为多个数据单元;存入模块,用于将所述多个数据单元存入存储系统;以及合并模块,用于根据所述操作类型对存入所述存储系统的所述多个数据单元进行合并,以获得所述当前节点的持久化数据。
另外,本发明实施例的流式计算的增量持久化装置,还具有如下附加的技术特征:
可选地,所述装置还包括:恢复模块,用于根据所述当前节点的持久化数据,对所述当前节点的计算状态进行恢复。
可选地,所述存入模块包括:第一打包单元,用于将所述多个数据单元打包为数据块;第二打包单元,用于根据预设的传输大小阈值和传输时间阈值将多个所述数据块打包为数据组;存入单元,用于将所述数据组存入所述存储系统中当前节点所对应的服务器。
可选地,所述存入单元,包括:获取子单元,用于获取所述数据组中所述数据单元的数据标识;存入子单元,用于根据所述数据标识将所述数据组存入当前节点所对应的服务器。
可选地,所述操作类型包括插入和删除,所述数据单元包括数据内容,所述合并模块包括:比对单元,用于将所述插入类型的数据单元与所述删除类型的数据单元进行比对,以获取数据内容相同的所述插入类型的数据单元与所述删除类型的数据单元;第一删除单元,用于将所述数据内容相同的所述插入类型的数据单元与所述删除类型的数据单元进行删除,以获得所述当前节点的持久化数据。
可选地,所述恢复模块包括:判断单元,用于判断当前节点是否存在异常;查找单元,用于当所述判断单元确定所述当前节点存在异常时,在所述存储系统中查找所述当前节点的持久化数据;恢复单元,用于根据查找的所述当前节点的持久化数据,将所述当前节点的计算状态恢复正常。
可选地,所述当前节点的持久化数据包括当前节点的用户状态修改数据,定时器数据中的一种或者两种,所述恢复模块还包括:获取单元,用于获取所述当前节点的上一节点的输出结果数据;计算单元,用于根据所述当前节点的上一节点的输出结果数据,计算所述当前节点的输出结果数据;第二删除单元,用于在所述存储系统中删除上一节点的输出结果数据;以及传输单元,用于将所述当前节点的输出结果数据传输给下一节点。
可选地,所述获取单元,用于从所述上一节点获取所述上一节点的输出结果数据,或者从所述存储系统中获取所述上一节点的输出结果数据。
本发明第三方面实施例提出了一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时实现如前述方法实施例所述的流式计算的增量持久化方法。
本发明第四方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述方法实施例所述的流式计算的增量持久化方法。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1为本发明实施例所提供的一种流式计算的增量持久化方法的流程示意图;
图2为本发明实施例所提供的一种流式计算的增量持久化方法的一种可能的实现方式的流程示意图;
图3为本发明实施例所提供的另一种流式计算的增量持久化方法的流程示意图;
图4为本发明实施例所提供的又一种流式计算的增量持久化方法的流程示意图;
图5为本发明实施例所提供的流式计算的增量持久化方法的一个示例进行数据存储的示意图;
图6为本发明实施例所提供的流式计算的增量持久化方法的一个示例进行数据恢复的示意图;
图7为本发明实施例所提供的一种流式计算的增量持久化装置的结构示意图;
图8为本发明实施例所提供的一种流式计算的增量持久化装置的一种可能的实现方式的结构示意图;
图9为本发明实施例所提供的一种流式计算的增量持久化装置的另一种可能的实现方式的结构示意图;
图10为本发明实施例所提供的另一种流式计算的增量持久化装置的结构示意图;
图11为本发明实施例所提供的另一种流式计算的增量持久化装置的一种可能的实现方式的结构示意图;
图12为本发明实施例所提供的又一种流式计算的增量持久化装置的结构示意图;
图13为本发明实施例所提供的又一种流式计算的增量持久化装置的一种可能的实现方式的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的流式计算的增量持久化方法及其装置。
基于上述现有技术的描述可以知道,相关技术中,现有的增量持久化机制虽然在持久化过程中只对新增数据进行存储,减少了每一次存储过程中对系统资源的消耗,但是存储总量会随着新增数据的增加而不断增加,依然会消耗大量的系统存储资源。因此通过现有技术对流式计算进行数据持久化,伴随着存储次数的增量,将会占用庞大的系统存储资源。
针对这一问题,本发明实施例提供了一种流式计算的增量持久化方法。在对新增数据进行存储时,将新增数据根据操作类型分为多个数据单元,以便于对新增数据更细化的处理。将新增数据存入存储系统后,根据不同的操作类型对数据单元进行合并,减少了当前节点需要存储的持久化数据。因此减少了存储系统需要存储的持久化数据的总量,降低了对系统存储资源的消耗。
图1为本发明实施例所提供的一种流式计算的增量持久化方法的流程示意图。应当理解,流式计算由多个节点进行,每一节点接收上一节点的数据,根据当前节点的业务逻辑对数据进行处理,将处理后的数据发送给下一节点。以当前节点为例对本发明实施例的流式计算的增量持久化方法进行说明,如图1所示,该方法包括以下步骤:
S101,获取当前节点的新增数据,并将新增数据根据操作类型分为多个数据单元。
其中,新增数据是当前节点接收到上一节点发送的数据后,对该数据进行处理过程所产生的中间数据和结果数据。一种可能的情况是,新增数据包括当前节点的输出结果数据、当前节点的用户状态修改数据、定时器数据中的一种或者多种。一种优选的实现方式是,新增数据为二进制数据。
需要说明的是,操作类型是用来记录当前节点对新增数据进行处理的参量,为了记录数据处理的整个过程,当前节点对新增数据进行处理时以新增数据及其操作类型来记录整个处理过程的中间数据和中间处理步骤。
应当理解的是,由于整个处理过程中新增数据及其操作类型都被保留,一次处理过程将产生许多新增数据,为了让这些新增数据能够按照操作类型进行区分,可以将新增数据按照不同的操作类型分为多个数据单元。
S102,将多个数据单元存入存储系统。
应当理解的是,流式计算方法的节点众多,新增数据数量庞大,需要庞大的存储系统提供存储服务,一种优选的实现方式是,存储系统是由多个服务器分布式组成的。
S103,根据操作类型对存入存储系统的多个数据单元进行合并,以获得当前节点的持久化数据。
其中,操作类型表明了对新增数据进行处理的过程,根据操作类型对存入存储系统的数据单元进行合并可以将中间处理过程中的冗余步骤进行合并。可以理解,数据单元包括数据内容,只有数据内容相同的数据单元才可以进行合并。一种可能的实现方式是,操作类型包括插入和删除,数据单元包括数据内容,将插入类型的数据单元与删除类型的数据单元进行比对,以获取数据内容相同的插入类型的数据单元与删除类型的数据单元,将数据内容相同的插入类型的数据单元与删除类型的数据单元进行删除,以获得当前节点的持久化数据。从而,实现了对数据内容相同的数据块的插入和删除的冗余步骤的合并,减少了当前节点需要进行持久化的数据的量。
进一步地,为了在当前节点出现异常时,能够对当前节点的计算状态进行恢复,一种可能的实现方式是,如图2所示,在S103中的获得当前节点的持久化数据之后,还包括:
S104,根据当前节点的持久化数据,对当前节点的计算状态进行恢复。
具体地,若当前节点出现异常,当前节点内存中的计算状态出现问题,需要重建,可以从存储系统中查找当前节点的持久化数据,以恢复当前节点的正常计算状态。
综上所述,本发明实施例的一种流式计算的增量持久化方法,获取当前节点的新增数据,并将新增数据根据操作类型分为多个数据单元,将多个数据单元存入存储系统。根据操作类型对多个数据单元进行合并,以获得当前节点的持久化数据。由此,实现了减少存储系统中持久化数据的数据总量,从而降低了对系统存储资源的消耗。
为了让本发明实施例所提出的流式计算的增量持久化方法能够让数据单元分批次地存入当前节点所对应的服务器,减少对系统资源的消耗,本发明实施例还提出了另一种流式计算的增量持久化方法,图3为本发明实施例所提供的另一种流式计算的增量持久化方法的流程示意图,基于图2所示的方法流程,如图3所示,S102将多个数据单元存入存储系统,包括:
S201,将多个数据单元打包为数据块。
可以理解,为了提高将数据单元存入存储系统的效率,可以将多个节点产生的数据单元一起存储。为了区分不同的节点产生的数据,可以先将同一个节点产生的数据单元打包为数据块。
S202,根据预设的传输大小阈值和传输时间阈值将多个数据块打包为数据组。
需要强调的是,为了让每一次存储的数据量不要过大,可以设置传输大小阈值,将多个数据块打包为数据组。具体地,当已有的数据块的大小超过预设的传输大小阈值时,将已有的数据块打包为数据组进行存储,将新增数据存储过程分成多批次的少量存储,以防一次存储过多新增数据造成系统资源消耗过大。为了让每一次存储的时间间隔不要过长,还可以设置传输时间阈值,当存储的时间间隔大于预设的传输时间阈值时,将已有的数据块打包为数据组进行传输,以防新增数据存储间隔时间过长,使当前节点的新增数据无法得到及时存储。
S203,将数据组存入存储系统中当前节点所对应的服务器。
需要强调的是,同一个节点产生的数据之间存在逻辑联系,当存储系统包含多个服务器时,为了方便对同一个节点产生的新增数据进行合并和查找,可以将数据组存入当前节点所对应的服务器。为了让当前节点产生的新增数据能够准确地存入对应的服务器,一种可能的实现方式是,获取数据组中数据单元的数据标识,根据数据标识将数据组存入当前节点所对应的服务器。其中,数据标识是通过确定性算法,例如Hash算法,对数据单元中存储的节点信息进行计算获得的。
从而,实现了让数据单元分批次地存入当前节点所对应的服务器,减少了对系统资源的消耗。
为了让本发明实施例所提供的流式计算的增量持久化方法能够对当前节点的计算状态进行恢复,本发明实施例还提出了又一种流式计算的增量持久化方法,图4为本发明实施例所提供的又一种流式计算的增量持久化方法的流程示意图,基于图2所示的方法流程,如图4所示,S104根据当前节点的持久化数据,对当前节点的计算状态进行恢复,包括:
S301,判断当前节点是否存在异常。
具体地,当前节点在接收上一节点的数据后,长时间没有将处理后的数据发送给下一节点,即可进行对当前节点是否存在异常的判断。第一种可能的异常情况是,当前节点出现断电故障,内存中的数据被清空,无法进行数据处理。第二种可能的情况是,内存中的数据出现缺失,导致数据处理过程无法继续。第三种可能的情况是,数据处理过程出现死循环,导致内存数据溢出,出现死机。
S302,若当前节点存在异常,则在存储系统中查找当前节点的持久化数据。
具体地,若当前节点出现异常,无论异常的原因是什么,都采取重新进行数据处理的策略,对内存中的数据进行清空,在存储系统中查找当前节点的持久化数据,由于存储系统中当前节点的数据存储在对应的服务器上,而且当前节点的持久化数据是数据单元合并之后的结果,因此很快能找到当前节点的持久化数据。
S303,根据查找的当前节点的持久化数据,将当前节点的计算状态恢复正常。
需要强调的是,虽然持久化数据是将冗余步骤合并之后的数据,但是依然保留了数据处理的整个过程,根据持久化数据,可以将出现异常之前当前节点的数据处理步骤进行还原,将当前节点的计算状态恢复正常。
进一步地,为了让上一节点、下一节点与当前节点之间的数据传递恢复正常,在当前节点恢复正常之后,流式计算方法还包括:获取当前节点的上一节点的输出结果数据,根据当前节点的上一节点的输出结果数据,计算当前节点的输出结果数据,在存储系统中删除上一节点的输出结果数据,将当前节点的输出结果数据传输给下一节点。
需要特别强调的是,当前节点出现异常后,上一节点不知道当前节点出现异常,而且由于没有在存储系统中删除上一节点的输出结果数据,上一节点会重复发送上一节点的输出结果数据,因此上一节点的输出结果数据既可以从上一节点获取,又可以在存储系统中获取。
从而,实现了根据当前节点的持久化数据,对当前节点的计算状态进行恢复。
为了更加清楚说明本发明实施例所提供的流式计算的方法,下面进行举例说明。
如图5所示,整个流式计算系统包括多个节点和一个存储系统,当前节点从上一节点获取上一节点的处理结果数据output,经过当前节点的处理,将处理过程的中间数据journal和处理结果数据output存储到存储系统中。一种优选的方式是,将数据分时分批进行存储,以减少大量数据存储对系统性能的影响。再将output发送给下一节点,同时给上一节点发送处理已完成的提示信息ack,上一节点接收到ack后再存储系统中删除上一节点的output。经过多个节点的数据处理,每一节点的output在下一节点完成数据处理后都从存储系统中删除,并且不断地在节点间传递,存储系统中只保留journal,以便于节点出现异常时进行计算状态的恢复。进一步地,为了便于节点出现异常后能够迅速完成对节点journal的恢复,将同一个节点产生的journal存储在对应的服务器上,将journal中的冗余步骤数据进行合并,存储系统中长期存储的是合并之后的journal数据。
如图6所示,当前节点出现异常后,上一节点没有及时收到ack,将重新发送上一节点的output,当前节点从存储系统中查询当前节点的journal,对计算状态进行恢复,当前节点的计算状态恢复正常后,生成当前节点的output,发送给下一节点,使整个流式计算系统恢复正常运行。
为了实现上述实施例,本发明实施例还提出一种流式计算的增量持久化装置,图7为本发明实施例所提供的一种流式计算的增量持久化装置的结构示意图,如图7所示,该装置包括:获取模块410,存入模块420,合并模块430。
获取模块410,用于获取当前节点的新增数据,并将新增数据根据操作类型分为多个数据单元。
存入模块420,用于将多个数据单元存入存储系统。
合并模块430,用于根据操作类型对存入存储系统的多个数据单元进行合并,以获得当前节点的持久化数据。
进一步地,为了在当前节点出现异常时,能够对当前节点的计算状态进行恢复,一种可能的实现方式是,如图8所示,该装置还包括:恢复模块440,用于根据当前节点的持久化数据,对当前节点的计算状态进行恢复。
进一步地,为了对新增数据中记录的中间处理过程中的冗余步骤进行合并,一种可能的实现方式是,如图9所示,合并模块430包括:比对单元431,用于将插入类型的数据单元与删除类型的数据单元进行比对,以获取数据内容相同的插入类型的数据单元与删除类型的数据单元,第一删除单元432,用于将数据内容相同的插入类型的数据单元与删除类型的数据单元进行删除,以获得当前节点的持久化数据。
需要说明的是,前述对流式计算的增量持久化方法实施例的解释说明也适用于该实施例的流式计算的增量持久化装置,此处不再赘述。
综上所述,本发明实施例所提出的一种流式计算的增量持久化装置,获取当前节点的新增数据,并将新增数据根据操作类型分为多个数据单元,将多个数据单元存入存储系统。根据操作类型对多个数据单元进行合并,以获得当前节点的持久化数据。由此,实现了减少存储系统中持久化数据的数据总量,从而降低了对系统存储资源的消耗。
为了实现上述实施例,本发明实施例还提出另一种流式计算的增量持久化装置,图10为本发明实施例所提供的另一种流式计算的增量持久化装置的结构示意图,基于图8所示的装置结构,如图10所示,存入模块420包括:
第一打包单元421,用于将多个数据单元打包为数据块。
第二打包单元422,用于根据预设的传输大小阈值和传输时间阈值将多个数据块打包为数据组。
存入单元423,用于将数据组存入存储系统中当前节点所对应的服务器。
进一步地,为了让当前节点产生的新增数据能够准确地存入对应的服务器,一种可能的实现方式是,如图11所示,存入单元423包括:获取子单元4231,用于获取数据组中数据单元的数据标识;存入子单元4232,用于根据数据标识将数据组存入当前节点所对应的服务器。
需要说明的是,前述对流式计算的增量持久化方法实施例的解释说明也适用于该实施例的流式计算的增量持久化装置,此处不再赘述。
从而,实现了让数据单元分批次地存入当前节点所对应的服务器,减少了对系统资源的消耗。
为了实现上述实施例,本发明实施例还提出又一种流式计算的增量持久化装置,图12为本发明实施例所提供的又一种流式计算的增量持久化装置的结构示意图,基于图8所示的装置结构,如图12所示,恢复模块440包括:
判断单元441,用于判断当前节点是否存在异常。
查找单元442,用于当判断单元441确定当前节点存在异常时,在存储系统中查找当前节点的持久化数据。
恢复单元443,用于根据查找的当前节点的持久化数据,将当前节点的计算状态恢复正常。
进一步地,为了让上一节点、下一节点与当前节点之间的数据传递恢复正常,一种可能的实现方式是,如图13所示,恢复模块440,还包括:获取单元444,用于获取当前节点的上一节点的输出结果数据,计算单元445,用于根据所述当前节点的上一节点的输出结果数据,计算当前节点的输出结果数据,第二删除单元446,用于在存储系统中删除上一节点的输出结果数据,传输单元447,用于将当前节点的输出结果数据传输给下一节点。进一步地,获取单元444,用于从上一节点获取上一节点的输出结果数据,或者从存储系统中获取上一节点的输出结果数据。
需要说明的是,前述对流式计算的增量持久化方法实施例的解释说明也适用于该实施例的流式计算的增量持久化装置,此处不再赘述。
从而,实现了根据当前节点的持久化数据,对当前节点的计算状态进行恢复。
为了实现上述实施例,本发明实施例还提出一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时实现如前述方法实施例所述的流式计算的增量持久化方法。
为了实现上述实施例,实施例还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述方法实施例所述的流式计算的增量持久化方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、 “示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (16)
1.一种流式计算的增量持久化方法,其特征在于,所述流式计算由多个节点进行,所述方法包括:
获取当前节点的新增数据,并将所述新增数据根据操作类型分为多个数据单元,所述新增数据包括当前节点接收到上一节点发送的数据后,对该数据进行处理所产生的中间数据和结果数据;
将所述多个数据单元存入存储系统;以及
根据所述操作类型对存入所述存储系统的所述多个数据单元进行合并,以获得所述当前节点的持久化数据;
所述操作类型包括插入和删除,所述数据单元包括数据内容,所述根据所述操作类型对所述数据单元进行合并,以获得所述当前节点的持久化数据,包括:
将所述插入类型的数据单元与所述删除类型的数据单元进行比对,以获取数据内容相同的所述插入类型的数据单元与所述删除类型的数据单元;
将所述数据内容相同的所述插入类型的数据单元与所述删除类型的数据单元进行删除,以获得所述当前节点的持久化数据。
2.如权利要求1所述的方法,其特征在于,在所述获得所述当前节点的持久化数据之后,还包括:
根据所述当前节点的持久化数据,对所述当前节点的计算状态进行恢复。
3.如权利要求2所述的方法,其特征在于,所述新增数据包括当前节点的输出结果数据、当前节点的用户状态修改数据、定时器数据中的一种或者多种。
4.如权利要求3所述的方法,其特征在于,所述将所述多个数据单元存入存储系统,包括:
将所述多个数据单元打包为数据块;
根据预设的传输大小阈值和传输时间阈值将多个所述数据块打包为数据组;
将所述数据组存入所述存储系统中当前节点所对应的服务器。
5.如权利要求4所述的方法,其特征在于,所述将所述数据组存入所述存储系统中当前节点所对应的服务器,包括:
获取所述数据组中所述数据单元的数据标识;
根据所述数据标识将所述数据组存入当前节点所对应的服务器。
6.如权利要求2所述的方法,其特征在于,所述根据所述当前节点的持久化数据,对所述当前节点的计算状态进行恢复,包括:
判断当前节点是否存在异常;
若所述当前节点存在异常,则在所述存储系统中查找所述当前节点的持久化数据;
根据查找的所述当前节点的持久化数据,将所述当前节点的计算状态恢复正常。
7.如权利要求6所述的方法,其特征在于,所述当前节点的持久化数据包括当前节点的用户状态修改数据,定时器数据中的一种或者两种,在所述将所述当前节点的计算状态恢复正常之后,还包括:
获取所述当前节点的上一节点的输出结果数据;
根据所述当前节点的上一节点的输出结果数据,计算所述当前节点的输出结果数据;
在所述存储系统中删除上一节点的输出结果数据;以及
将所述当前节点的输出结果数据传输给下一节点。
8.如权利要求7所述的方法,其特征在于,所述获取所述当前节点的上一节点的输出结果数据,包括:
从所述上一节点获取所述上一节点的输出结果数据,或者
从所述存储系统中获取所述上一节点的输出结果数据。
9.一种流式计算的增量持久化装置,其特征在于,所述装置包括:
获取模块,用于获取当前节点的新增数据,并将所述新增数据根据操作类型分为多个数据单元,所述新增数据包括当前节点接收到上一节点发送的数据后,对该数据进行处理所产生的中间数据和结果数据;
存入模块,用于将所述多个数据单元存入存储系统;以及
合并模块,用于根据所述操作类型对存入所述存储系统的所述多个数据单元进行合并,以获得所述当前节点的持久化数据;
所述操作类型包括插入和删除,所述数据单元包括数据内容,所述合并模块包括:
比对单元,用于将所述插入类型的数据单元与所述删除类型的数据单元进行比对,以获取数据内容相同的所述插入类型的数据单元与所述删除类型的数据单元;
第一删除单元,用于将所述数据内容相同的所述插入类型的数据单元与所述删除类型的数据单元进行删除,以获得所述当前节点的持久化数据。
10.如权利要求9所述的装置,其特征在于,所述装置还包括:
恢复模块,用于根据所述当前节点的持久化数据,对所述当前节点的计算状态进行恢复。
11.如权利要求10所述的装置,其特征在于,所述存入模块包括:
第一打包单元,用于将所述多个数据单元打包为数据块;
第二打包单元,用于根据预设的传输大小阈值和传输时间阈值将多个所述数据块打包为数据组;
存入单元,用于将所述数据组存入所述存储系统中当前节点所对应的服务器。
12.如权利要求11所述的装置,其特征在于,所述存入单元,包括:
获取子单元,用于获取所述数据组中所述数据单元的数据标识;
存入子单元,用于根据所述数据标识将所述数据组存入当前节点所对应的服务器。
13.如权利要求10所述的装置,其特征在于,所述恢复模块包括:
判断单元,用于判断当前节点是否存在异常;
查找单元,用于当所述判断单元确定所述当前节点存在异常时,在所述存储系统中查找所述当前节点的持久化数据;
恢复单元,用于根据查找的所述当前节点的持久化数据,将所述当前节点的计算状态恢复正常。
14.如权利要求13所述的装置,其特征在于,所述当前节点的持久化数据包括当前节点的用户状态修改数据,定时器数据中的一种或者两种,所述恢复模块还包括:
获取单元,用于获取所述当前节点的上一节点的输出结果数据;
计算单元,用于根据所述当前节点的上一节点的输出结果数据,计算所述当前节点的输出结果数据;
第二删除单元,用于在所述存储系统中删除上一节点的输出结果数据;以及
传输单元,用于将所述当前节点的输出结果数据传输给下一节点。
15.如权利要求14所述的装置,其特征在于,所述获取单元,用于从所述上一节点获取所述上一节点的输出结果数据,或者从所述存储系统中获取所述上一节点的输出结果数据。
16.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8中任一所述流式计算的增量持久化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811388343.4A CN111211993B (zh) | 2018-11-21 | 2018-11-21 | 流式计算的增量持久化方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811388343.4A CN111211993B (zh) | 2018-11-21 | 2018-11-21 | 流式计算的增量持久化方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111211993A CN111211993A (zh) | 2020-05-29 |
CN111211993B true CN111211993B (zh) | 2023-08-11 |
Family
ID=70787576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811388343.4A Active CN111211993B (zh) | 2018-11-21 | 2018-11-21 | 流式计算的增量持久化方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111211993B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930748B (zh) * | 2020-08-07 | 2023-08-08 | 北京百度网讯科技有限公司 | 流式计算系统数据追踪方法、装置、设备以及存储介质 |
CN114969072B (zh) * | 2022-06-06 | 2023-06-09 | 北京友友天宇系统技术有限公司 | 基于状态机和数据持久化的数据传输方法、装置和设备 |
CN115237680B (zh) * | 2022-09-22 | 2023-02-21 | 南京拓界信息技术有限公司 | 一种分布式数据恢复系统及方法 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103377290A (zh) * | 2012-04-30 | 2013-10-30 | Sap股份公司 | 删除多级存储架构中的记录 |
CN104636327A (zh) * | 2013-11-06 | 2015-05-20 | 上海语镜汽车信息技术有限公司 | 一种基于增量计算的分布式流式数据系统 |
CN105320773A (zh) * | 2015-11-03 | 2016-02-10 | 中国人民解放军理工大学 | 一种基于Hadoop平台的分布式重复数据删除系统和方法 |
CN105989194A (zh) * | 2015-03-20 | 2016-10-05 | 国际商业机器公司 | 表数据比较的方法和系统 |
US9535907B1 (en) * | 2010-01-22 | 2017-01-03 | Veritas Technologies Llc | System and method for managing backup operations of virtual machines |
CN106326461A (zh) * | 2016-08-30 | 2017-01-11 | 杭州东方通信软件技术有限公司 | 一种基于网络信令记录的实时处理保障方法及系统 |
CN106547811A (zh) * | 2015-09-22 | 2017-03-29 | 国际商业机器公司 | 数据集的分布式合并 |
CN106611037A (zh) * | 2016-09-12 | 2017-05-03 | 星环信息科技(上海)有限公司 | 用于分布式图计算的方法与设备 |
CN106873945A (zh) * | 2016-12-29 | 2017-06-20 | 中山大学 | 基于批处理和流式处理的数据处理架构及数据处理方法 |
CN106897411A (zh) * | 2017-02-20 | 2017-06-27 | 广东奡风科技股份有限公司 | 基于Spark技术的ETL系统及其方法 |
CN106921515A (zh) * | 2016-06-29 | 2017-07-04 | 阿里巴巴集团控股有限公司 | 业务操作数据处理方法、装置、电子设备、服务器及系统 |
CN107066328A (zh) * | 2017-05-19 | 2017-08-18 | 成都四象联创科技有限公司 | 大规模数据处理平台的构建方法 |
CN107329836A (zh) * | 2017-07-13 | 2017-11-07 | 北京元心科技有限公司 | 多系统的内存管理方法、管理装置以及移动终端 |
CN107589907A (zh) * | 2017-08-10 | 2018-01-16 | 上海壹账通金融科技有限公司 | 数据处理方法、电子设备及计算机可读存储介质 |
CN108763572A (zh) * | 2018-06-06 | 2018-11-06 | 湖南蚁坊软件股份有限公司 | 一种实现Apache Solr读写分离的方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10700931B2 (en) * | 2014-08-17 | 2020-06-30 | Microsoft Technology Licensing, Llc | Network device configuration framework |
US10162867B2 (en) * | 2016-01-13 | 2018-12-25 | International Business Machines Corporation | Low memory sampling-based estimation of distinct elements and deduplication |
-
2018
- 2018-11-21 CN CN201811388343.4A patent/CN111211993B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9535907B1 (en) * | 2010-01-22 | 2017-01-03 | Veritas Technologies Llc | System and method for managing backup operations of virtual machines |
CN103377290A (zh) * | 2012-04-30 | 2013-10-30 | Sap股份公司 | 删除多级存储架构中的记录 |
CN104636327A (zh) * | 2013-11-06 | 2015-05-20 | 上海语镜汽车信息技术有限公司 | 一种基于增量计算的分布式流式数据系统 |
CN105989194A (zh) * | 2015-03-20 | 2016-10-05 | 国际商业机器公司 | 表数据比较的方法和系统 |
CN106547811A (zh) * | 2015-09-22 | 2017-03-29 | 国际商业机器公司 | 数据集的分布式合并 |
CN105320773A (zh) * | 2015-11-03 | 2016-02-10 | 中国人民解放军理工大学 | 一种基于Hadoop平台的分布式重复数据删除系统和方法 |
CN106921515A (zh) * | 2016-06-29 | 2017-07-04 | 阿里巴巴集团控股有限公司 | 业务操作数据处理方法、装置、电子设备、服务器及系统 |
CN106326461A (zh) * | 2016-08-30 | 2017-01-11 | 杭州东方通信软件技术有限公司 | 一种基于网络信令记录的实时处理保障方法及系统 |
CN106611037A (zh) * | 2016-09-12 | 2017-05-03 | 星环信息科技(上海)有限公司 | 用于分布式图计算的方法与设备 |
CN106873945A (zh) * | 2016-12-29 | 2017-06-20 | 中山大学 | 基于批处理和流式处理的数据处理架构及数据处理方法 |
CN106897411A (zh) * | 2017-02-20 | 2017-06-27 | 广东奡风科技股份有限公司 | 基于Spark技术的ETL系统及其方法 |
CN107066328A (zh) * | 2017-05-19 | 2017-08-18 | 成都四象联创科技有限公司 | 大规模数据处理平台的构建方法 |
CN107329836A (zh) * | 2017-07-13 | 2017-11-07 | 北京元心科技有限公司 | 多系统的内存管理方法、管理装置以及移动终端 |
CN107589907A (zh) * | 2017-08-10 | 2018-01-16 | 上海壹账通金融科技有限公司 | 数据处理方法、电子设备及计算机可读存储介质 |
CN108763572A (zh) * | 2018-06-06 | 2018-11-06 | 湖南蚁坊软件股份有限公司 | 一种实现Apache Solr读写分离的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111211993A (zh) | 2020-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9354991B2 (en) | Locally generated simple erasure codes | |
CN111211993B (zh) | 流式计算的增量持久化方法、装置及存储介质 | |
US7925856B1 (en) | Method and apparatus for maintaining an amount of reserve space using virtual placeholders | |
US20160378613A1 (en) | Virtual Machine Snapshot Backup Based on Multilayer De-duplication | |
RU2501072C2 (ru) | Распределенное хранение восстанавливаемых данных | |
US20170277915A1 (en) | Data protection enhancement using free space | |
US9563531B2 (en) | Storage of mass data for monitoring | |
CN108062419B (zh) | 一种文件存储方法、电子设备、系统和介质 | |
US10261696B2 (en) | Performance during playback of logged data storage operations | |
US10740198B2 (en) | Parallel partial repair of storage | |
US11210003B2 (en) | Method, device and computer program product for restoring data based on replacing child node identifiers with parent node identifier | |
CN109165112B (zh) | 一种元数据集群的故障恢复方法、系统及相关组件 | |
CN109117292B (zh) | 一种集群存储的方法和装置及集群存储系统 | |
CN104580428A (zh) | 一种数据路由方法、数据管理装置和分布式存储系统 | |
CN108959614A (zh) | 一种快照管理方法、系统、装置、设备及可读存储介质 | |
CN106951443B (zh) | 基于分布式系统的副本同步的方法、设备和系统 | |
WO2021258360A1 (zh) | 一种车载数据存储方法及系统 | |
US20210397599A1 (en) | Techniques for generating a consistent view of an eventually consistent database | |
WO2023197937A1 (zh) | 数据处理方法及其装置、存储介质、计算机程序产品 | |
CN111625402A (zh) | 数据恢复方法、装置、电子设备及计算机可读存储介质 | |
CN112596959A (zh) | 分布式存储集群数据备份方法及装置 | |
CN112153132A (zh) | 基于虚拟化管理平台的文件上传方法、装置及设备 | |
CN111625506A (zh) | 一种基于删除队列的分布式数据删除方法、装置及设备 | |
CN103714059A (zh) | 一种更新数据的方法及装置 | |
CN110798492A (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 |