发明名称 一种基于内存数据网格的流式数据处理程序错误的数据溯源定位方法
摘要 本发明涉及一种基于内存数据网格的流式数据处理程序错误的数据溯源定位方法,其核心思想是通过运行在分布式处理程序中的代理,监控处理的数据溯源信息即数据的输入与输出,并把这些信息发送给协调者,当程序出现错误、异常或者不一致的时候,开发人员或者用户可以利用这些溯源信息进行程序的调试,实现程序错误的分析与定位。
申请公布号 CN105868110A 申请公布日期 2016.08.17
申请号 CN201610186177.4 申请日期 2016.03.29
申请人 中国科学院软件研究所 发明人 黄涛;钟华;魏峻;王伟;窦文生;刘财政
分类号 G06F11/36(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 北京科迪生专利代理有限责任公司 11251 代理人 成金玉;孟卜娟
主权项 一种基于内存数据网格的流式数据处理程序错误的数据溯源定位方法,其特征在于实现步骤如下:(1)在分布式处理程序中设置捕获器(Capture),其作用是在捕获进入到分布式处理程序中的输入数据和经过分布式处理程序处理之后的结果;(2)分布式处理程序加载数据源中的数据时,通过设置的捕获器,获取每次操作之前的数据的值,给每一个数据值设置一个全局唯一标记来标记这个数据值,并把这个标记发送给协调者节点;(3)将(2)中得到的全局唯一标记和输入数据通过分布式处理程序运行时上下文环境传入实际对数据进行操作的处理逻辑,执行相应的处理过程;(4)处理逻辑执行完成以后,产生相应的结果;捕获器截获执行的结果,对执行结果设置一个全局唯一的标记,对数据进行更新操作时,对更新之后的值进行标记,通过标记之间的一对一的关系就建立了原数据和更新之后的数据之间的关联关系,并把这个标记发送给协调者节点,协调者根据输入数据和输入标记的对应关系与执行结果和结果标记的对应关系,建立输入数据标记和结果标记的之间的对应关系,通过标记值之间的关联建立输入数据与执行结果之间的关联;(5)执行结果再作为输入数据继续后续的处理过程或者最终结果返回给开发人员或用户;(6)开发人员或者用户进行调试和分析,在Java类Trace中,定义不同的调试方法,其中traceBack方法向前追溯Lineage信息,确定得到当前数值的操作和输入数据,traceBackAll一直往前追溯Lineage信息,确定得到当前数值的所有操作和最初的原始数据.,traceForward方法向后传播lineage信息,确定得到当前数值在之后一步操作中产生的结果,traceForwardAll方法一直向后传播Lineage信息,确定得到当前数值在之后的一系列操作中产生的最终的结果,sendContext方法向分布式处理程序传送运行时上下文环境信息;(7)当分布式处理程序出现异常或者错误时,开发人员通过(4)中捕获的数据溯源信息,利用(6)中提供的方法进行调试、错误的分析与定位,分布式处理系统向用户返回或者输入一定的结果,如果该结果与用户预期不一致,用户使用traceBack方法查看输出结果的输入数据和对应的处理逻辑,分析和判断可能的错误。
地址 100190 北京市海淀区中关村南四街4号