CN107203437A - 防止内存数据丢失的方法、装置和系统 - Google Patents
防止内存数据丢失的方法、装置和系统 Download PDFInfo
- Publication number
- CN107203437A CN107203437A CN201610154437.XA CN201610154437A CN107203437A CN 107203437 A CN107203437 A CN 107203437A CN 201610154437 A CN201610154437 A CN 201610154437A CN 107203437 A CN107203437 A CN 107203437A
- Authority
- CN
- China
- Prior art keywords
- event
- snapshot
- storage
- pattern matching
- matching engine
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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
-
- 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
-
- 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/1405—Saving, restoring, recovering or retrying at machine instruction level
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
-
- 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/11—File system administration, e.g. details of archiving or snapshots
- G06F16/128—Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/046—Forward inferencing; Production systems
- G06N5/047—Pattern matching networks; Rete networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/22—Arrangements for supervision, monitoring or testing
- H04M3/2281—Call monitoring, e.g. for law enforcement purposes; Call tracing; Detection or prevention of malicious calls
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/22—Arrangements for supervision, monitoring or testing
- H04M3/36—Statistical metering, e.g. recording occasions when traffic exceeds capacity of trunks
Abstract
本申请实施例涉及内存数据领域,尤其涉及防止内存数据丢失的方法,包括:第一流模式匹配引擎启动模式匹配时,在第一流模式匹配引擎的内存中创建状态机;在模式匹配过程中,根据模式匹配规则,第一流模式匹配引擎依次从事件存储装置中获取事件;根据快照规则,快照所述状态机的状态,形成快照文件,将所述快照文件存储到快照存储装置,其中,所述快照文件记载了所述获取的事件在所述事件存储装置中的偏移标记。提高了内存数据的可靠性。
Description
技术领域
本申请涉及内存数据技术领域,尤其涉及防止内存数据丢失的方法、装置和系统。
背景技术
很多分布式系统中的应用都需要在内存中保存状态,而且状态量大、变化频繁。存在内存中的数据最大的问题就是易失性,当节点宕机时,内存数据会全部丢失。所以,为了使系统具备高可用性,很多方案被设计出来,例如,将状态数据存储在物理数据库或者Key-Value内存库中或者将状态数据在集群中其它节点上维护一个副本。
在大数据实时流处理领域,内存状态丢失就相当于消息的丢失,内存状态的管理水平直接影响系统能够支撑的业务种类,比如,广告推荐类,对系统要求不高,允许消息的丢失和重复(At most once);对于银行、网络、反恐领域的攻击监测类业务,允许消息重复但是不能丢失(At Least once);金融类业务,要求系统不能丢失和重复任何消息(Exactly once)。大数据场景还有一个特点就是规模大,在这种规模下复杂的技术不一定能满足需要,所以亟需一种既简单又实用的方法来满足内存状态管理的需要。
目前,存储在内存的数据存在易失的特性。当主机崩溃、操作系统故障和进程重启,都会引起内存数据的丢失。对多数业务来说,内存中数据的丢失是无法接受的。
发明内容
本申请实施例提供一种大数据实时流处理应用场景下防止内存数据丢失的方法、装置和系统,提高内存数据可靠。
一方面,本申请的实施例提供了一种防止内存数据丢失的方法。方法包括: 第一流模式匹配引擎启动模式匹配,在第一流模式匹配引擎的内存中创建状态机;在模式匹配过程中,根据模式匹配规则,依次从事件存储装置中获取事件,集群控制装置中设定了事件存储装置和第一流模式匹配引擎之间存在对应关系。根据快照规则(比如:每隔2分钟),快照状态机的状态,形成快照文件,将所述快照文件存储到快照存储装置,其中,所述快照文件记载了状态机的状态,这个状态可以为获取的事件在所述事件存储装置中的偏移标记。本发明由于在模式匹配过程中,第一流模式匹配引擎会快照状态机的状态,并将快照文件存储在快照存储装置,这样内存数据被快照起来,就算内存数据由于各种原因丢失,对等的其它流模式匹配引擎会从快照存储装置获取快照文件,这样就又可以获取内存的数据,继续处理快照起来的内存数据,这样就可以提高内存数据的可靠性,不会被丢失了。
在一个可能设计中,当第一流模式匹配引擎发生故障或者重启时,此时第一流模式匹配引擎的内存数据已经丢失了,此时第二流模式匹配引擎从快照存储装置获取到所述快照文件,其中,在第一流模式匹配引擎发生故障后,所述第二流模式匹配引擎被设置为与所述事件存储装置具有对应关系,以及所述第一流模式匹配引擎与所述事件存储装置的对应关系被废弃;根据所述快照文件中记载的所述获取的事件在所述事件存储装置中的偏移标记,从所述事件存储装置中偏移标记开始继续获取事件,继续进行模式匹配。虽然第一流模式匹配引擎发生故障,它的内存数据丢失了,但是由于其内存数据已经被快照了,形成快照文件,并将快照文件存储在快照存储装置中,这样对等的第二流模式匹配引擎会从快照存储装置获取快照文件,又可以获取内存的数据,继续处理快照起来的内存数据,这样就可以提高内存数据的可靠性,不会被丢失了。
在一个可能的设计中,在所述从所述事件存储装置中偏移标记开始继续获取事件之前,还包括:将所述快照文件加载到所述第二流模式匹配引擎的内存中,解析所述快照文件中的状态机数据;根据所述状态机数据,在所述第二流模式匹配引擎的内存中创建状态机,连接所述事件存储装置。进一步提高了内 存数据的可靠性,不会被丢失了。
在一个可能的设计中,当所述第一流模式匹配引擎发生故障时,还包括:集群控制装置设置所述第二流模式匹配引擎和所述事件存储装置的对应关系。
另一方面,本申请实施例提供了一种防止内存数据丢失的装置,该装置具有实现上述方法实际中第一流模式匹配引擎的功能,所述功能可以通过硬件实现,也可以通过硬件执行的软件实现。所述硬件或软件包括一个或多个上述功能相对应的模块。
再一方面,本申请实施例提供了一种计算机存储介质,用于存储为上述第一流模式匹配引擎所用的计算机软件指令,其包含用于执行上述所设计的程序。
另一方面,本申请的实施例提供了一种防止内存数据丢失的系统,包括第一流模式匹配引擎和事件存储装置,其中,所述第一流模式匹配引擎,用于启动模式匹配时,在第一流模式匹配引擎的内存中创建状态机,在模式匹配过程中,根据模式匹配规则,第一流模式匹配引擎依次从事件存储装置中获取事件,其中,第一流模式匹配引擎和事件存储装置具有对应关系,根据快照规则,快照所述状态机的状态,形成快照文件,将所述快照文件存储到快照存储装置,其中,所述快照文件记载了所述获取的事件在所述事件存储装置中的偏移标记;所述事件存储装置,用于从流源接收事件流,并存储所述事件流。本发明由于在模式匹配过程中,第一流模式匹配引擎会快照状态机的状态,并将快照文件存储在快照存储装置,这样内存数据被快照起来,就算内存数据由于各种原因丢失,对等的其它流模式匹配引擎会从快照存储装置获取快照文件,这样就又可以获取内存的数据,继续处理快照起来的内存数据,这样就可以提高内存数据的可靠性,不会被丢失了。
在一个可能的设计中,还包括:第二流模式匹配引擎,其中,所述第二流模式匹配引擎,用于当所述第一流模式匹配引擎发生故障时,从所述快照存储装置获取到所述快照文件,其中,在第一流模式匹配引擎发生故障后,所述第二流模式匹配引擎被设置为与所述事件存储装置具有对应关系,以及所述第一 流模式匹配引擎与所述事件存储装置的对应关系被废弃;以及根据所述快照文件中记载的所述获取的事件在所述事件存储装置中的偏移标记,从所述事件存储装置中偏移标记开始继续获取事件,继续进行模式匹配。
在一个可能的设计中,所述第二流模式匹配引擎,还用于在所述从所述事件存储装置中偏移标记开始继续获取事件之前,将所述快照文件加载到内存中,解析所述快照文件中的状态机数据;根据所述状态机数据,在内存中创建状态机,连接所述事件存储装置。
在一个可能的设计中,还包括集群控制装置,用于当所述第一流模式匹配引擎发生故障时,设置所述第二流模式匹配引擎和所述事件存储装置的对应关系。
在一个可能的设计中,还包括快照存储装置,用于存储快照文件
相较于现有技术,本发明提供的方案中,由于在模式匹配过程中,第一流模式匹配引擎会快照状态机的状态,并将快照文件存储在快照存储装置,这样内存数据被快照起来,就算内存数据由于各种原因丢失,对等的其它流模式匹配引擎会从快照存储装置获取快照文件,这样就又可以获取内存的数据,继续处理快照起来的内存数据,这样就可以提高内存数据的可靠性,不会被丢失了。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1所示为本发明实施例的一种可能防止内存数据丢失的系统网络示意图;
图2所示为本发明实施例提供的防止内存数据丢失系统示意图;
图3所示为本发明实施例提供的计算机设备示意图;
图4所示为本发明实施例提供的防止内存数据丢失的方法流程示意图;
图5所示为本发明实施例提供的防止内存数据丢失装置的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
如图1所示,本发明实施例简单的防止内存数据丢失的系统框架图,包括:流源101,事件存储装置102,流模式匹配引擎103、快照存储装置104和集群控制装置105。其中,流源101也可以称为生产者(producer),生产者产生事件流,并将事件流发送给事件存储装置102。事件存储装置102可以是对事件流持久化的消息队列,例如:事件存储装置102可能是一个软件,比如:一种高吞吐量的分布式发布订阅消息系统Kafka。为了提高效率,在系统中,存在多个事件存储装置102,每个事件存储装置102主要用于从流源接收事件流,并存储事件流。每一个事件存储装置102也可以称为分区,例如:图1中为4个事件存储装置102,分别为分区1,分区2,分区3和分区4。Kafka在整各流处理过程中不是必须的部件,后端的应用也可以直接连接流源。
流模式匹配引擎103(Pattern Matching Engine,PME)可以从事件存储装置102获得数据,从而消费数据,最终产生新的具有业务价值的场景有关的新的复杂事件。在流模式匹配引擎103处理过程中,会对事件进行解析,在内存中创建状态机来实现业务的逻辑。内存的数据存在易失性,如果流模式匹配引擎宕机,内存里的大量状态机也就丢失。流模式匹配引擎103可以认为是消费者,消费Kafka的数据。为了减轻流模式匹配引擎103的负荷,可以有多个流模式匹配引擎103,例如:如图1所示,流模式匹配引擎103有两个。
具体的来说,正常的流模式匹配引擎,用于启动模式匹配时,在内存中创建状态机,在模式匹配过程中,根据模式匹配规则,依次从事件存储装置中获取事件,根据快照规则,快照状态机的状态,形成快照文件,将所述快照文件 存储到快照存储装置,其中,这样快照文件记载了所述获取的事件在所述事件存储装置中的偏移标记。当上述正常的流模式匹配引擎发生故障时,其它的另外一正常的流模式匹配引擎从快照存储装置获取到所述快照文件,其中,在流模式匹配引擎发生故障后,另外一正常的流模式匹配引擎被设置为与所述事件存储装置具有对应关系;将快照文件加载到内存中,解析所述快照文件中的状态机数据;根据所述状态机数据,在内存中创建状态机,连接事件存储装置;以及根据所述快照文件中记载的所述获取的事件在所述事件存储装置中的偏移标记,从所述事件存储装置中偏移标记开始继续获取事件,继续进行模式匹配。
集群控制装置105与所有的流模式匹配引擎103相连接,集群控制装置105用于控制流模式匹配引擎103,并且在集群控制装置105中设置各个流模式匹配引擎103和各个事件存储装置102的对应关系,并且当某个流模式匹配引擎发生故障或者重启时,设置其它的正常的流模式匹配引擎和事件存储装置的对应关系。
快照存储装置104,主要用于存储快照文件。
本发明由于在模式匹配过程中,当某个流模式匹配引擎会快照状态机的状态,并将快照文件存储在快照存储装置,这样内存数据被快照起来,就算内存数据由于各种原因丢失,对等的其它正常的流模式匹配引擎会从快照存储装置获取快照文件,这样就又可以获取内存的数据,继续处理快照起来的内存数据,这样就可以提高内存数据的可靠性,不会被丢失了。
如图2所示,本发明提供的一种防止内存数据丢失的系统可以包括一个以上防止内存数据丢失的装置201和一个以上的事件存储装置202。这里的防止内存数据丢失的装置201可以是图1中的流模式匹配引擎103,如图2所示,图2中的防止内存数据丢失的装置201可以以图3中的计算机设备(或系统)的方式来实现。
图3所示为本发明实施例提供的计算机设备示意图。计算机设备300包括 至少一个处理器301,通信总线302,存储器303以及至少一个通信接口304。
处理器301可以是一个通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。
通信总线302可包括一通路,在上述组件之间传送信息。所述通信接口404,使用任何收发器一类的设备,用于与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(Wireless Local Area Networks,WLAN)等。
存储器303可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,所述存储器303用于存储执行本发明方案的应用程序代码,并由处理器301来控制执行。所述处理器301用于执行所述存储器303中存储的应用程序代码。
在具体实现中,作为一种实施例,处理器301可以包括一个或多个CPU,例如图3中的CPU0和CPU1。
在具体实现中,作为一种实施例,计算机设备300可以包括多个处理器,例如图3中的处理器301和处理器308。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序 指令)的处理核。
在具体实现中,作为一种实施例,计算机设备300还可以包括输出设备305和输入设备306。输出设备305和处理器301通信,可以以多种方式来显示信息。例如,输出设备305可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备306和处理器301通信,可以以多种方式接受用户的输入。例如,输入设备306可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的计算机设备300可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,计算机设备300可以是台式机、便携式电脑、网络服务器、掌上电脑(Personal Digital Assistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备或有图3中类似结构的设备。本发明实施例不限定计算机设备300的类型。
如图2中的防止内存数据丢失的装置可以为图3所示的设备,防止内存数据丢失的装置201的存储器中存储了一个或多个软件模块。防止内存数据丢失的装置201可以通过处理器以及存储器中的程序代码来实现软件模块,实现对防止内存数据丢失。
下面将基于上面所述的本发明涉及的共性方面,对本发明实施例进一步详细说明。
如图4所示,本发明提供的一种防止内存数据丢失的方法,过程包括:
S401:流源采集事件流,对事件流进行分区处理,并将分区后的事件流发送给事件存储装置。
这里的事件流(Stream)由连续不断的元组(tuple)组成,元组可以看做一个结构完整的数据包,具有某种特定格式。元组可以是事件(Event),元组由一组属性组成,通过这一组事件可以表述一个含义。例如,一个事件包含了下面四个属性:主叫号码(callnumber),起始时间(startTime),结束时间 (EndTime)和小区标识(CellID)。流源是指可以获取事件流的源头网元。具体来说,流源具体可以是一种数据采集软件,例如,数据采集软件可以通过连接信令机的Socket接口来接收信令,或者读取生产环境产生的话单文件,然后将采集到的信令或者话单文件转换成事件,发送给事件存储装置。对于事件存储装置来说,事件也可以被认为是消息。流源可以根据事件(或者称为消息)的关键值(通常可以为某个属性)和分区算法,对事件进行分区处理,然后将事件发送到对应的某一事件存储装置(或者称为分区),比如:关键值为主叫号码,分区算法为一致性哈希算算法,此时流源会根据每个事件包含的主叫号码和一致性哈希算法进行计算,然后将每个事件归属到一个分区上,并将事件发送到相应的事件存储装置,比如:事件流1,3发送给事件存储装置1;事件2,4发送给事件存储装置2。
S402:事件存储装置接收到流源发送的事件流,将事件流持久化到本地磁盘上。
由于事件流被持久化到本地磁盘后,当该某个事件被流模式匹配引擎消费后,该事件也不会立即被删除,事件存储装置只是对当前消费的事件做了偏移标记(offset),该偏移标记用于记录被消费的事件在整个事件流中的位置,这样流模式匹配引擎从偏移标记的位置继续消费事件,流模式匹配引擎可以通过调整offset来改变事件的位置对事件进行重复消费,或者跳过一部分事件。
例如:在事件存储装置中存储了50个打电话的事件,流模式匹配引擎读取了其中25个打电话的事件,则在第25个打电话的事件上做个偏移标记,这样下次读取的时候,就从第26个打电话的事件继续读取,如果想重复读取某个事件,例如:需要再一次读取第24的事件,则将偏移标记移动到第23个打电话的事件上的位置。
S403:当流模式匹配引擎需要消耗某个事件流时,流模式匹配引擎从事件存储装置获取存储的事件,并对事件进行解析,根据一系列的条件,产生匹配结果。
该步骤之前,还可以包括:集群控制装置根据某个算法(例如:负载均衡算法),设置各个流模式匹配引擎和各个事件存储装置的对应关系。具体来说,集群控制装置获取事件存储装置的总数和流模式匹配引擎的总数,再根据负载均衡的原理,均衡地设置流模式匹配引擎和各个事件存储装置的对应关系,比如:事件存储装置的总数为4个,流模式匹配引擎的总数为2个,则每个流模式匹配引擎对应2个事件存储装置。具体来说,流模式匹配引擎1和事件存储装置1,2为对应关系,流模式匹配引擎2和事件存储3,4为对应关系,当对应关系设置成功后,流模式匹配引擎1从事件存储装置1,2中读取存储的事件,流模式匹配引擎2从事件存储装置3,4中读取存储的事件。当某个流模式匹配引擎失效或者发生故障时,集群控制装置可重新计算流模式匹配引擎和各个事件存储装置的对应关系,将失效或者发送故障的流模式匹配引擎2对应的事件存储装置分配给其它正常的流模式匹配引擎。
流模式匹配引擎开始进行模式匹配时,在流模式匹配引擎的内存中创建状态机,当该流模式匹配引擎失效或者发生故障时,状态机也会丢失,因此流模式匹配引擎根据快照规则(例如:每隔一段时间)对状态机的状态进行快照,形成快照文件,并将快照文件保存到快照存储装置中,快照文件记载了流模式匹配引擎消耗的事件在事件存储装置中的偏移标记。
下面具体介绍一个例子来来说明这一个步骤。例如:流模式匹配引擎需要跟踪用户打电话的事件,当一个客户在10分钟内打了超过50个电话,即认定该客户有可能是恶意呼叫的电话。在这个场景下,流模式匹配引擎1和事件存储装置1,2是对应的,流模式匹配引擎2和事件存储装置3,4是对应的;也就是说,流模式匹配引擎1从事件存储装置1或2中获取事件,流模式匹配引擎2从事件存储装置3或4中获取事件。流模式匹配引擎1从事件存储装置1获取到某个用户的第一个打电话事件,就创建一个状态机,并且这个状态机的超时时间设置为10分钟,在10分钟内,从事件存储装置1获取到一个打电话事件就累计一次;当累计的个数超过50个时,则匹配出一个结果,该结果为该 客户为恶意呼叫,并将该结果上报给后台系统(例如:CRM系统),后台系统会根据自己的策略进行处理。如果在10分钟内,流模式匹配引擎1获取的打电话事件的个数小于50时,则该状态机将被销毁。
在10分钟内,每过30秒,流模式匹配引擎1都会将读取事件存储装置1事件的进行快照,例如:在时刻1时,流模式匹配引擎1读取了事件存储装置1的事件,读取的当前位置的偏移量为A,读取了事件存储装置2里的事件,读取的位置偏移量为X,流模式匹配引擎1启动定时快照,将内存状态数据写入到快照文件中,该快照文件中记录了事件存储装置1和事件存储装置2被读取的位置,即:(1,A),(2,X)。
流模式匹配引擎1继续读取事件存储装置1和事件存储装置2的事件,当消费到时刻2时(此刻还没有进行新的一次快照),此时流模式匹配引擎1读取事件存储装置1的位置偏移量为B,事件存储装置2的位置偏移量为Y,此时流模式匹配引擎1突然宕机。当流模式匹配引擎1宕机,事件存储装置1和2中的事件没有流模式匹配引擎1来进行消费,流源发进来的事件流将一直累积在本地磁盘。
时刻3,集群控制装置发现了流模式匹配引擎1的故障无法恢复,通知流模式匹配引擎2接管流模式匹配引擎1的责任,流模式匹配引擎2将流模式匹配引擎1产生的最后一次的快照文件加载到内存中,解析快照文件中的状态机数据,根据状态机数据创建内存状态机,这样就可以实现了快照文件反序列化到内存状态机,然后连接事件存储装置1和事件存储装置2,并根据时刻1留下的快照文件中记录的offset值,分别设定事件存储装置1和事件存储装置2的消费数据的当前offset,即,将1的位置由B改到A,将2的位置由Y改到X,然后流模式匹配引擎2继续分别从事件存储装置1的位置A继续读取事件,从事件存储装置2的位置X继续读取事件。
S404、快照存储装置接收流模式匹配引擎发送的内存的快照文件,存储该快照文件。
如图5所示,本发明实施例还提供了一种防止内存数据丢失的装置的结构示意图。装置500包括:创建单元501,用于启动模式匹配时,在内存中创建状态机;获取单元502,用于在模式匹配过程中,根据模式匹配规则,依次从事件存储装置中获取事件;快照单元503,用于根据快照规则,快照所述状态机的状态,形成快照文件,将所述快照文件存储到快照存储装置,其中,所述快照文件记载了所述获取的事件在所述事件存储装置中的偏移标记。
在本实施例中,防止内存数据丢失的装置500是以功能单元的形式来呈现。这里的“单元”可以指特定应用集成电路(application-specific integrated circuit,ASIC),电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到防止内存数据丢失的装置可以采用图3所示的形式。创建单元501,获取单元502和快照单元503可以通过图3的处理器和存储器来实现。
本发明实施例还提供了一种计算机存储介质,用于储存为上述图5所示的防止内存数据丢失的装置所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。通过执行存储的程序,可以实现防止内存数据丢失的装置实现防止内存数据丢失。
本领域内的技术人员应明白,本申请的实施例可提供为方法、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入 式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种防止内存数据丢失的方法,其特征在于,包括:
第一流模式匹配引擎启动模式匹配时,在第一流模式匹配引擎的内存中创建状态机;
在模式匹配过程中,根据模式匹配规则,第一流模式匹配引擎依次从事件存储装置中获取事件;
根据快照规则,快照所述状态机的状态,形成快照文件,将所述快照文件存储到快照存储装置,其中,所述快照文件记载了所述获取的事件在所述事件存储装置中的偏移标记。
2.根据权利要求1的方法,其特征在于,当所述第一流模式匹配引擎发生故障时,方法还包括:
第二流模式匹配引擎从所述快照存储装置获取到所述快照文件,其中,在第一流模式匹配引擎发生故障后,所述第二流模式匹配引擎被设置为与所述事件存储装置具有对应关系,以及所述第一流模式匹配引擎与所述事件存储装置的对应关系被废弃;
根据所述快照文件中记载的所述获取的事件在所述事件存储装置中的偏移标记,从所述事件存储装置中偏移标记开始继续获取事件,继续进行模式匹配。
3.根据权利要求2的方法,其特征在于,在所述从所述事件存储装置中偏移标记开始继续获取事件之前,还包括:
将所述快照文件加载到所述第二流模式匹配引擎的内存中,解析所述快照文件中的状态机数据;
根据所述状态机数据,在所述第二流模式匹配引擎的内存中创建状态机,连接所述事件存储装置。
4.根据权利要求1的方法,其特征在于,当所述第一流模式匹配引擎发生故障时,还包括:集群控制装置设置所述第二流模式匹配引擎和所述事件存储装置的对应关系。
5.一种防止内存数据丢失的装置,其特征在于,包括:
创建模块,用于启动模式匹配时,在内存中创建状态机;
获取模块,用于在模式匹配过程中,根据模式匹配规则,依次从事件存储装置中获取事件;
快照模块,用于根据快照规则,快照所述状态机的状态,形成快照文件,将所述快照文件存储到快照存储装置,其中,所述快照文件记载了所述获取的事件在所述事件存储装置中的偏移标记。
6.一种防止内存数据丢失的系统,其特征在于,包括第一流模式匹配引擎和事件存储装置,其中,
所述第一流模式匹配引擎,用于启动模式匹配时,在第一流模式匹配引擎的内存中创建状态机,在模式匹配过程中,根据模式匹配规则,第一流模式匹配引擎依次从事件存储装置中获取事件,其中,第一流模式匹配引擎和事件存储装置具有对应关系,根据快照规则,快照所述状态机的状态,形成快照文件,将所述快照文件存储到快照存储装置,其中,所述快照文件记载了所述获取的事件在所述事件存储装置中的偏移标记;
所述事件存储装置,用于从流源接收事件流,并存储所述事件流。
7.根据权利要求6的系统,其特征在于,还包括:第二流模式匹配引擎,其中,所述第二流模式匹配引擎,用于当所述第一流模式匹配引擎发生故障时,从所述快照存储装置获取到所述快照文件,其中,在第一流模式匹配引擎发生故障后,所述第二流模式匹配引擎被设置为与所述事件存储装置具有对应关系,以及所述第一流模式匹配引擎与所述事件存储装置的对应关系被废弃;
以及根据所述快照文件中记载的所述获取的事件在所述事件存储装置中的偏移标记,从所述事件存储装置中偏移标记开始继续获取事件,继续进行模式匹配。
8.根据权利要求7的系统,其特征在于,所述第二流模式匹配引擎,还用于在所述从所述事件存储装置中偏移标记开始继续获取事件之前,将所述快照文件加载到内存中,解析所述快照文件中的状态机数据;根据所述状态机数据,在内存中创建状态机,连接所述事件存储装置。
9.根据权利要求6的系统,其特征在于,还包括集群控制装置,用于当所述第一流模式匹配引擎发生故障时,设置所述第二流模式匹配引擎和所述事件存储装置的对应关系。
10.根据权利要求6的系统,其特征在于,还包括分布式装置,用于存储快照文件。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610154437.XA CN107203437B (zh) | 2016-03-17 | 2016-03-17 | 防止内存数据丢失的方法、装置和系统 |
PCT/CN2017/073060 WO2017157111A1 (zh) | 2016-03-17 | 2017-02-07 | 防止内存数据丢失的的方法、装置和系统 |
EP17765653.5A EP3422186B1 (en) | 2016-03-17 | 2017-02-07 | Method, device and system for preventing memory data loss |
US16/132,069 US20190012087A1 (en) | 2016-03-17 | 2018-09-14 | Method, apparatus, and system for preventing loss of memory data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610154437.XA CN107203437B (zh) | 2016-03-17 | 2016-03-17 | 防止内存数据丢失的方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107203437A true CN107203437A (zh) | 2017-09-26 |
CN107203437B CN107203437B (zh) | 2021-02-12 |
Family
ID=59850510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610154437.XA Active CN107203437B (zh) | 2016-03-17 | 2016-03-17 | 防止内存数据丢失的方法、装置和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20190012087A1 (zh) |
EP (1) | EP3422186B1 (zh) |
CN (1) | CN107203437B (zh) |
WO (1) | WO2017157111A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678889A (zh) * | 2017-09-30 | 2018-02-09 | 上海数据交易中心有限公司 | 工作流任务状态的恢复方法及装置、存储介质、计算设备 |
CN108809855A (zh) * | 2018-05-24 | 2018-11-13 | 北京三快在线科技有限公司 | 消息管理方法、装置及电子设备 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11704035B2 (en) | 2020-03-30 | 2023-07-18 | Pure Storage, Inc. | Unified storage on block containers |
CN112671877B (zh) * | 2020-12-16 | 2022-07-08 | 中国建设银行股份有限公司 | 一种数据处理方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101018122A (zh) * | 2007-03-13 | 2007-08-15 | 杭州华为三康技术有限公司 | 模式匹配处理方法及系统 |
US20080080603A1 (en) * | 2006-09-29 | 2008-04-03 | International Business Machines Corporation | On-chip detection and measurement of data lock in a high speed serial data link |
CN101702326A (zh) * | 2009-10-30 | 2010-05-05 | 曙光信息产业(北京)有限公司 | 内存控制器 |
US7818806B1 (en) * | 2005-11-08 | 2010-10-19 | Nvidia Corporation | Apparatus, system, and method for offloading pattern matching scanning |
US20120203756A1 (en) * | 2011-02-08 | 2012-08-09 | International Business Machines Corporation | Local results processor for use in a pattern matching accelerator |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7308561B2 (en) * | 2003-12-12 | 2007-12-11 | Alcatel Lucent | Fast, scalable pattern-matching engine |
US8370931B1 (en) * | 2008-09-17 | 2013-02-05 | Trend Micro Incorporated | Multi-behavior policy matching for malware detection |
EP2789138B1 (en) * | 2011-12-06 | 2016-09-14 | Seven Networks, LLC | A mobile device and method to utilize the failover mechanisms for fault tolerance provided for mobile traffic management and network/device resource conservation |
US9286311B2 (en) * | 2012-06-14 | 2016-03-15 | Santhosh Adayikkoth | Real-time filtering of relevant events from a plurality of events |
-
2016
- 2016-03-17 CN CN201610154437.XA patent/CN107203437B/zh active Active
-
2017
- 2017-02-07 EP EP17765653.5A patent/EP3422186B1/en active Active
- 2017-02-07 WO PCT/CN2017/073060 patent/WO2017157111A1/zh active Application Filing
-
2018
- 2018-09-14 US US16/132,069 patent/US20190012087A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7818806B1 (en) * | 2005-11-08 | 2010-10-19 | Nvidia Corporation | Apparatus, system, and method for offloading pattern matching scanning |
US20080080603A1 (en) * | 2006-09-29 | 2008-04-03 | International Business Machines Corporation | On-chip detection and measurement of data lock in a high speed serial data link |
CN101018122A (zh) * | 2007-03-13 | 2007-08-15 | 杭州华为三康技术有限公司 | 模式匹配处理方法及系统 |
CN101702326A (zh) * | 2009-10-30 | 2010-05-05 | 曙光信息产业(北京)有限公司 | 内存控制器 |
US20120203756A1 (en) * | 2011-02-08 | 2012-08-09 | International Business Machines Corporation | Local results processor for use in a pattern matching accelerator |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678889A (zh) * | 2017-09-30 | 2018-02-09 | 上海数据交易中心有限公司 | 工作流任务状态的恢复方法及装置、存储介质、计算设备 |
CN107678889B (zh) * | 2017-09-30 | 2020-06-09 | 上海数据交易中心有限公司 | 工作流任务状态的恢复方法及装置、存储介质、计算设备 |
CN108809855A (zh) * | 2018-05-24 | 2018-11-13 | 北京三快在线科技有限公司 | 消息管理方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
EP3422186A1 (en) | 2019-01-02 |
CN107203437B (zh) | 2021-02-12 |
EP3422186A4 (en) | 2019-03-20 |
US20190012087A1 (en) | 2019-01-10 |
WO2017157111A1 (zh) | 2017-09-21 |
EP3422186B1 (en) | 2020-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11010278B2 (en) | Real-time reporting based on instrumentation of software | |
CN107203437A (zh) | 防止内存数据丢失的方法、装置和系统 | |
US9723045B2 (en) | Communicating tuples in a message | |
CN112084258A (zh) | 一种数据同步方法和装置 | |
CN111143382A (zh) | 数据处理方法、系统和计算机可读存储介质 | |
EP4213038A1 (en) | Data processing method and apparatus based on distributed storage, device, and medium | |
US20160026921A1 (en) | Synchronization for Context-Aware Complex Event Processing | |
US20210132970A1 (en) | System and method for implementing a generic parser module | |
EP3172682B1 (en) | Distributing and processing streams over one or more networks for on-the-fly schema evolution | |
CN113656176B (zh) | 云设备的分配方法、装置、系统、电子设备、介质及产品 | |
CN112732756A (zh) | 数据查询方法、装置、设备及存储介质 | |
US20230336368A1 (en) | Block chain-based data processing method and related apparatus | |
CN109947736A (zh) | 实时计算的方法和系统 | |
US10621199B2 (en) | Two phase retrieval using named graphs | |
WO2023109238A1 (zh) | 一种数据同步方法、系统及存储介质 | |
CN113656369A (zh) | 一种大数据场景下的日志分布式流式采集及计算方法 | |
US10671582B2 (en) | Two phase save using named graphs | |
Carbone et al. | Towards highly available complex event processing deployments in the cloud | |
CN115002205B (zh) | 一种基于表路由代理模式的Kapacitor集群方法 | |
CN105577422A (zh) | 一种能源互联网的实时数据分析系统及其方法 | |
CN113961581A (zh) | 查询处理方法、装置、电子设备及存储介质 | |
CN116136882A (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
CN115185995A (zh) | 一种企业开工率评估方法、系统、设备和介质 | |
CN117874060A (zh) | 基于区块链的供应链产品溯源数据多条件查询方法及装置 | |
CN115858104A (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 |