数据后台实时监控处理方法

文档序号:6371365阅读:4411来源:国知局
专利名称:数据后台实时监控处理方法
技术领域
本发明涉及计算机数据处理和监控技术,特别是涉及在无人监控的条件下高可靠性的数据后台实时处理和监控的方法。
背景技术
计算机技术中,实时数据处理方法需要能够监控到数据的到达从而调用相关的处理流程去处理这些数据。通过周期性检查数据生成目录显然达不到这一目标。在当前Linux操作系统中主要有两种检测文件系统数据变化的机制inotify和FAM0 inotify是Linux 2.6. 13之后的内核提供的一种机制,用以替代之前的dnotify。FAM
是一种更古老的机制,但它支持类Unix系统,因此具有更好的可移植性,同时FAM还支持监控NFS。通常所用的FAM称为Gamin,它与FAM兼容,但没有实现FAM的全部接口。因为inotify内核原生支持,性能更好,而FAM支持检测NFS文件系统的数据变化。目前并没有一个具有高可靠性的实时数据的后台处理方法,在程序运行出现各种问题时或者系统崩溃时,很难迅速恢复到异常前的状态。

发明内容
基于上述现有技术存在的问题,本发明提出了一种并行天文交叉证认方法,利一种能够自动触发处理流程、在系统不同层面提供相应的保障机制及较为完善的日志记录的数据实时处理和监控的方法。本发明提供一种数据后台实时监控处理方法,以集群系统环境作为执行环境,该方法包括以下步骤步骤一,当在原始的数据目录中有新的数据文件生成,启动文件系统变化的监测机制进行文件监控及对数据进行处理,并记录日志;步骤二、进行数据处理工作流执行及监控,采用DAG图表示一个测光流程中的所有任务,其中顶点来表示一个任务,顶点间的指向方式表示任务之间的依赖关系;当流程执行时,采用类似拓扑排序的方式来执行所有任务;每次从任务队列中选择一个状态为Ready的任务,当这个任务正确执行完毕后,将依赖于这个任务的后续任务的入度减一;在任务执行时记录其PID信息,并在其运行后周期性的检查任务的运行状态,针对不同的运行状态采用以下反馈机制一旦某任务出现问题,则重启该任务;当任务的失败次数超过某个阈值时,则会丢弃该任务,并记录日志;若某个任务的执行时间超出了系统的容忍极限,则会认为其发生了未知的错误,该任务会被强制结束,并尝试重新执行该任务;步骤三、为进程设定交叉保护,该流程初始时启动两个进程,一个是系统守护进程,用于执行文件监控及触发、工作流执行和监控、日志记录、崩溃恢复,另一个是系统保护进程,直接调用系统Cront进程进行系统保护;两进程会进行周期性的握手通信,一旦有一方未反馈响应并超过一定次数限制,则发送信息一方认为另一方出现了异常,需要结束并重启另一方。同时,Cront服务周期接收来自这两方的心跳信息若未收到其中任何一方的信息,则重启该进程;步骤四、进行日志记录;步骤五、系统崩溃时的恢复,当系统从一个状态被恢复后,它首先检查崩溃日志中记录的任务执行断点信息,即最后一个处理完毕的文件的时间戳,根据该信息恢复任务的执行。与现有技术相比,本发明提供可以自动监控指定目录数据文件的到来,并执行相应的处理流程;在后台对该处理提供了较为完善的保障机制和容错恢复机制;通过在服务器上使用本方法来对某指定目录进行监控,都能很好地完成到达数据的自动处理。对于人为制造的一些异常,包括系统重启、系统内存耗尽、处理流程意外退出等行为,该方法也能 很好地应对。


图I为守护进程的流程图;图2为交叉保护过程示意图。
具体实施例方式以下结合附图及较佳实施例,对依据本发明提供的具体实施方式
、结构、特征及其功效,详细说明如下。在计算机开机时启动后台守护进程和保护进程,两进程实现交叉保护机制,任何一方崩溃另一方都会去重启它;系统的Cront进程也会周期性地监控两进程的状态;守护进程监控数据目录文件的访问请求到来,调用相关的数据处理流程去处理数据,并记录相应的处理日志;当处理流程失败后,能够自行重启该流程,当超过一定的失败次数后,该处理任务会被丢弃;当系统崩溃后能从日志文件中恢复到崩溃前的状态。本发明的具体技术方案详述如下I)文件监控及任务触发本方法实现了 inotify和FAM两种文件系统变化的监测机制,使用时需要选择一种监测机制来对文件目录进行监控,如果在原始的数据目录中有新的数据文件生成,本发明就能够通过inotify或者FAM这两种机制得知,随即通过system函数调用相应的处理流程对数据进行处理,并记录相应的日志。2)工作流执行及监控在本方法中通过采用DAG图,即有向无环图的方式来表示一个数据处理流程中的所有任务。在图中采用顶点来表示一个任务,用顶点间的指向方式来表示任务之间的依赖关系。当流程执行时,采用类似拓扑排序的方式来执行所有任务每次从任务队列中选择一个状态为Ready的任务,当这个任务正确执行完毕后,将依赖于这个任务的后续任务的入度(后续任务所依赖的任务数,当后续任务执行前,必须等所有的依赖任务完成后才能执行,即等到后续任务的入度为零)减一。在任务执行时会记录其进程ID等信息,并在其运行后周期性的检查任务的运行状态,一旦某任务出现问题,则重启该任务,当任务的失败次数超过某个阈值时,则会丢弃该任务,并记录日志。若某个任务的执行时间超出了系统的容忍极限,则会认为其发生了未知的错误,该任务会被强制结束,并尝试重新执行该任务。
3)进程的交叉保护该方法在启动时会启动2个进程,一个是系统守护进程,用于执行文件监控及触发、工作流执行和监控、日志记录、崩溃恢复等操作,另一个是系统的保护进程。两进程会进行周期性的握手通信,一旦有一方未反馈响应并超过一定次数限制,则发送信息一方认为另一方出现了异常,需要结束并重启另一方。同时,Linux的Cront服务也会周期接收来自这两方的心跳信息,若未收到其中任何一方的信息,则会去重启该进程。如图2所示。
4)日志记录该方法自行实现了一个简单的日志系统。目前有两种类型的日志一种是常规日志,用于记录整个系统在执行过程中的各种信息,该日志每天生成一个,在保存时以gzip格式压缩存储;还有一种是恢复日志,用于在整个系统崩溃之后执行恢复操作,它采用二进制格式保存,在恢复日志中保存的是最后一个处理完毕的文件的时间戳,如果系统崩溃后,重启时会将监控目录内晚于恢复日志最后一个所处理文件的时间的文件添加到等待队列中。5 )系统崩溃时的恢复当系统从一个状态被恢复后,它首先检查崩溃日志中记录的任务执行断点信息,即最后一个处理完毕的文件的时间戳,根据该信息恢复任务的执行。本发明的具体实施例举例说明如下该实施例的实施环境为操作系统Ubuntu10. 04, Linux version 2. 6. 32-21-generic,CPU: Inter (R),Xeon (R)X33232. 50GHz*4,内存2G数据文件的到达目录/data/在该环境下该方法的执行流程如下系统首先会创建出ads. run和ads - prote这两个进程,ads - prote进程用于和系统的cront进程一起与ads. run进程进行交叉保护,如图2所示。而ads. run进程则主要负责数据的实时处理。ads. run的执行流程如图I所示,该进程启动后,首先从配置文件中读取相关参数,然后执行若干子系统的初始化工作,在初始化完毕后,进入到一个循环监听状态,在该状态会对server socket和FileMonitor文件描述符执行系统的select操作,如果server socket位被设置,则说明有客户跟该进程执行了通信,如果是保护进程的握手信号,则该进程重放该信号;如果是请求结束任务的信号,则该进程会从运行队列中删除任务。如果FileMonitor文件描述符被设置,则说明该进程发现检测目录下有新的文件,会把文件添加到等待队列中。当任务池中的任务数目小于可以同时执行的任务数目时,队列中的任务会被添加到任务池中,此时,该进程通过fork系统调用生成子进程来执行新添加的子任务。新添加的子任务的执行情况会被记录到日志中。任务执行完毕后,该任务会从任务池中移走。还有一种情况是指定时间之后没有描述符被设置,即超时,这时会调用TimeOut函数,检查运行队列中的各个任务,如果保护进程已经没有响应,会尝试重启保护进程。本发明可以自动监控指定目录数据文件的访问请求,并执行相应的处理流程。同时本方法提供了较为完善的保障机制和容错恢复机制。通过在服务器上使用本方法来对某指定目录进行监控,在一个月的实验中,该方法都能很好地完成到达数据的自动处理。对于人为制造的一些异常,包括系统重启、系统内存耗尽、处理流程意外退出等行为,该方法也能很好地应对 。
权利要求
1.一种数据后台实时监控处理方法,以集群系统环境作为执行环境,其特征在于,该方法包括以下步骤 步骤一,当在原始的数据目录中有新的数据文件生成,启动文件系统变化的监测机制进行文件监控及对数据进行处理,并记录日志; 步骤二、进行数据处理工作流执行及监控,采用DAG图表示一个数据处理流程中的所有任务,其中顶点来表示一个任务,顶点间的指向方式表示任务之间的依赖关系;当流程执行时,采用类似拓扑排序的方式来执行所有任务;每次从任务队列中选择一个状态为Ready的任务,当这个任务正确执行完毕后,将依赖于这个任务的后续任务的入度减一;在任务执行时记录其PID信息,并在其运行后周期性的检查任务的运行状态,针对不同的运行状态采用以下反馈机制一旦某任务出现问题,则重启该任务;当任务的失败次数超过某个阈值时,则会丢弃该任务,并记录日志;若某个任务的执行时间超出了系统的容忍极限,则会认为其发生了未知的错误,该任务会被强制结束,并尝试重新执行该任务; 步骤三、为进程设定交叉保护,该流程初始时启动两个进程,一个是系统守护进程,用于执行文件监控及触发、工作流执行和监控、日志记录、崩溃恢复,另一个是系统保护进程,直接调用系统cront进程进行系统保护;两进程会进行周期性的握手通信,一旦有一方未反馈响应并超过一定次数限制,则发送信息一方认为另一方出现了异常,需要结束并重启另一方;同时,Cront服务周期接收来自这两方的心跳信息若未收到其中任何一方的信息,则重启该进程; 步骤四、进行日志记录; 步骤五、系统崩溃时的恢复,当系统从一个状态被恢复后,它首先检查崩溃日志中记录的任务执行断点信息,即最后一个处理完毕的文件的时间戳,根据该信息恢复任务的执行。
全文摘要
本发明公开了一种数据后台实时监控处理方法,该方法包括以下步骤步骤一,当在原始的数据目录中有新的数据文件生成,启动文件系统变化的监测机制进行文件监控及对数据进行处理,并记录日志;步骤二、进行数据处理工作流执行及监控;步骤三、为进程定交叉保护;步骤四、进行日志记录;步骤五、系统崩溃时任务执行的恢复。与现有技术相比,本发明提供可以自动监控指定目录数据文件的到来,并执行相应的处理流程;在后台对该处理提供了较为完善的保障机制和容错恢复机制;在服务器上使用本方法对某指定目录进行监控,都能很好地完成到达数据的自动处理。对于人为制造的一些异常,包括系统重启、系统内存耗尽、处理流程意外退出等行为,也能很好地应对。
文档编号G06F11/07GK102810073SQ20121019432
公开日2012年12月5日 申请日期2012年6月13日 优先权日2012年6月13日
发明者孙济洲, 余骏, 于策, 肖健, 金舟, 孙超, 杨沐津 申请人:天津大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1