动态图的性能监视的制作方法_2

文档序号:9221615阅读:来源:国知局
记录有关的初始格式信息开始。在一些情形中,数据源的记录结构初始时是未知的,而是可以在分析数据源之后被确定。关于记录的初始信息可以包括代表不同值的比特数、记录中字段的次序、以及由所述比特代表的值的类型(如字符串型、有符号/无符号的整型)。
[0028]性能监视模块106收集与执行模块112的性能有关的性能度量。如以下所讨论的,这些度量可以包括,例如,记录读取数、字节读取数、记录写入数、字节写入数、使用的处理器时间以及经过的时间(elapsed time)中的一些或全部。图2示出用于收集由执行模块执行的微型图的性能度量的示例性环境。通常,微型图是被配置为动态地取出(retrieved)并嵌入运行-微型图组件210之内的专用子图(specialized sub-graph)。通过引用并入本文的、美国专利申请号 13/161010,“Dynamically Loading Graph-Based Computat1ns (动态地加载基于图的计算)”中描述了用于执行这种动态地加载的图的系统。在一些实现中,微型图可以被预编译。
[0029]执行模块112执行图202。执行模块可以是,例如,正由计算机系统执行的进程或一组进程。该图可以是一组计算机可读指令,其被存储在非暂态计算机可读存储设备中,诸如数据贮存器(Storage)Iie中。图202可以从例如图1中的数据贮存器116的数据存储库被加载。
[0030]在这个示例中,图202包括从数据源204读取数据的组件206。组件206通过链接208被链接到运行-微型图组件210。来自组件206的输出端口的数据记录被传递到运行-微型图组件210的输入端口中。通常,端口是指通过其数据流图的组件可以接收或提供数据的任何机制。端口可以是,例如,传输控制协议(TCP)/互联网协议(IP)端口、网络套接字、或软件管道(pipe)。端口还可以指,在组件间通信的其他方法,诸如,例如,对共享存储器的读取和写入。
[0031]运行-微型图组件210选择要执行的微型图212。例如,信用处理系统可以代表不同用户执行许多动作(act1n)。所述动作可以包括更改地址、提高信用额度,和取消信用卡。这些活动的每一个可以与在数据记录中存储的不同代码相关联。一系列的数据记录可以包括例如来自第一用户的对地址的第一更改、来自第二用户的对地址的第二更改、来自第三用户的取消信用卡请求、来自第四用户的对地址的第三更改、以及来自第五用户的提高信用额度请求。
[0032]为处理这些记录中的每个,一个或多个不同微型图212可以被选择。例如,地址的变更可以由地址变更微型图来处理,取消信用卡可以由取消信用卡微型图来处理,而提高信用额度可以由提高信用额度微型图来处理。微型图可以被存储在数据存储库中并在运行时(run-time)动态地被加载。在一些实现中,微型图可以是预编译的数据流图,其由运行-微型图组件来访问。
[0033]该运行-微型图组件可以在输出端口 214上产生输出记录,并且该输出记录可以被存储在数据存储库216中。
[0034]运行-微型图组件210可以监视和记录微型图212的性能特性。例如,运行-微型图组件210可以收集如下性能度量,诸如,使用的处理时间、经过的时间、字节读取数、记录读取数、字节写入数、记录写入数、执行数、失败的执行数、总持续时间、平均记录处理速率(记录/秒)、平均字节处理速率(字节/秒)等等。
[0035]性能度量可以在运行-微型图组件210的第二输出端口 218上产生。例如,性能度量可以是一个或多个记录,其包含与所选择的微型图212连同其它所选择的微型图的性能有关的?目息。
[0036]性能度量可以被存储在性能监视模块106中的数据存储库220中。在一些实现中,数据存储库220可以被选择,以使得写入性能度量的性能影响最小化。例如,减少将性能度量写入数据存储库220而导致的延迟会是有益的。在一些实现中,数据存储库220可以位于共享存储器220中。写入共享(如半导体)存储器的操作通常导致较少的开销,并且因此比写入持久数据存储库,诸如磁盘,的类似操作要快速。
[0037]周期性地,例如,每五分钟、十分钟或三十分钟,传送组件222从数据存储库220读取性能度量并将性能度量写入系统监视日志224。在一些实现中,系统监视日志可以位于持久数据存储库中。
[0038]系统监视组件226可以从数据存储库220读取性能度量,并可以进一步处理和聚合该数据。例如,系统监视应用可以将与共同构成单个商业事务的多个数据流图相关联的性能度量组合。系统监视应用可以向用户228呈现该性能度量。通常,由运行-微型图组件210接收的每个数据记录可以引起对不同微型图的加载和处理,虽然同一个微型图可以被用于处理多个数据记录。
[0039]图3是从基于数据记录的内容而加载的微型图收集性能度量的过程的流程图。该过程可以由例如图1中的执行模块112的执行模块来执行。
[0040]在302,例如在运行-微型图组件的输入端口上接收到数据。通常,数据可以是一个或多个记录的形式。记录可以包括可以对应于一个或多个字段的一个或多个值。例如,信用卡事务数据记录可以包括四组四位整数值(如“ 1234123412341234”),其对应于账号标识符字段。
[0041]对于每个记录,微型图可以被加载,304 ;微型图可以被执行,306 ;并且度量可以被处理,308。
[0042]微型图可以从一个或多个位置或设备,诸如持久数据存储库,被加载,或者,可以被存储在存储器中。加载微型图可以包括选择要加载的适当的微型图,例如通过评估包括记录中的数据中的一些的数据。基于对记录中包含的数据的评估,可以从一个或多个微型图中选择微型图。例如,特定字段或字段的组合可以是要加载哪个微型图的决定因素。
[0043]通常,对微型图的选择中使用的数据被称为控制数据。在一些实现中,控制数据可以以要处理的数据中的单独的数据记录的形式被提供给运行-微型图组件。在其他实现中,控制数据可以被集成到每个数据记录中,并且在一些实例中还可以包括要处理的数据。
[0044]微型图可以被编译并且被存储在数据存储库中。在一些布置中,微型图是之前被编译并且被存储在数据存储系统中的数据流图,或者被从该数据流图中导出(derived)。在一些布置中,微型图在从数据存储库被加载时保持未编译的形式。微型图可以独立于包括运行-微型图组件的数据流图而被编译。
[0045]执行微型图,306,可以包括将数据记录提供到微型图的输入端口以及从微型图的输出端口接收输出记录。在一些实现中,微型图可以接收零个或更多个数据记录并且产生零个或更多个输出记录。
[0046]处理度量,308,可以包括确定该微型图的性能度量(例如,处理时间、经过的字节、读取的字节和写入的字节)。度量可以被聚合。即,可以跨越一个或多个微型图的执行对度量进行总计。例如,性能度量可以基于与微型图相关联的名称或其他标签来聚合。例如,所有“取消信用卡”微型图的执行的性能可以被组合。另外,微型图被执行的次数可以被追踪。性能度量可以被存储在内存数据存储库中。
[0047]在310确定是否有更多记录要被处理。例如,微型图可以处理多个输入记录以产生单个输出记录。若微型图或运行-微型图组件需要另外的记录,那么新的记录作为数据被接收,302。若不需要另外的记录,那么输出记录被提供和存储,312。
[0048]性能度量可以基于运行-微型图组件来聚合。即,通过特定运行-微型图组件的所有微型图的所有执行被聚合。性能度量还可以通过微型图标识符来聚合,如上所述。即,通过特定类型的微型图的所有执行被聚合。微型图标识符可以是,例如微型图的名称。
[0049]性能度量也可以不被聚合,而是可以针对微型图的每个单独的执行而被存储。在一些实现中,运行-微型图组件可以被配置为接收:指令如何聚合性能度量的用户定义参数。
[0050]如以上讨论的,在微型图的执行期间所收集的性能度量可以随着这些度量被收集而被聚合。图4示出按照微型图标识符来聚合性能度量的示例。被聚合的性能度量可以被系统监视应用所使用并向用户显示。表400可以位于例如图2中的数据存储库220的数据存储库中。在这个示例中,该表包括“微型图标识符”列402,“处理器时间”列404,“经过的时间”列406和“调用(Invocat1n) ”列408。最初,该表包括针对如下各项的行(row):“取消信用卡”微型图的标识符、“购买”微型图的标识符和“支付”微型图的标识符。
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1