发明名称 基于优先级的模式匹配中间结果管理方法
摘要 本发明公开了一种基于优先级的模式匹配中间结果管理方法,通过给时间窗口内的每个中间结果赋予一个优先级权重,在中间结果缓冲区将满时,把优先级低的中间结果存储到外存以保证事件检测的完整性,将优先级高的中间结果保留在内存,使事件检测能以更大的概率搜索到对应的模式匹配中间结果,在高效利用资源的同时达到较小的复杂事件响应时间。
申请公布号 CN102521347B 申请公布日期 2014.05.14
申请号 CN201110410943.8 申请日期 2011.12.11
申请人 西北工业大学 发明人 李战怀;陈群;陈琳;孙林超;彭商濂;李强;刘海龙;聂艳明;娄颖
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 西北工业大学专利中心 61204 代理人 顾潮琪
主权项 1.一种基于优先级的模式匹配中间结果管理方法,其特征在于包括下述步骤:1)初始化模式匹配每个事件类型对应的实例堆栈空间,给中间结果缓冲MaxBuffer分配内存空间,并将实例堆栈和缓冲区设置为空;给优先级树T分配空间,并置为空;2)从滑动窗口W内按时间顺序读取一个事件e<sub>i</sub>,并进行如下条件的判断:(1)如在缓冲区MaxBuffer中不存在与e<sub>i</sub>标识相同的中间结果,则用e<sub>i</sub>建立一个中间结果PM<sub>Ei</sub>并存储于MaxBuffer中;(2)如在缓冲区MaxBuffer中存在与e<sub>i</sub>标识相同的中间匹配结果PM<sub>Ei</sub>,则将e<sub>i</sub>的状态信息添加到中间结果PM<sub>Ei</sub>的状态列表中,如果状态列表的状态数目达到模式E中定义的事件类型个数n,则输出事件,删除对应的中间结果,如果状态列表的状态数目未达到n,计算e<sub>i</sub>的优先级W(e<sub>i</sub>)=t.e<sub>i</sub>+(t.E<sub>i+1</sub>-t.E<sub>i</sub>)*P(E<sub>i</sub>,E<sub>i+1</sub>),其中P(E<sub>i</sub>,E<sub>i+1</sub>)是一个随机变量,表示事件发生在E<sub>i</sub>和E<sub>i+1</sub>两个地方的概率,将W(e<sub>i</sub>)插入到优先级树T上;E<sub>i</sub>为复杂事件E的第i个类型的子事件,1≤i≤n,<img file="FDA0000422625860000011.GIF" wi="585" he="73" />其中<img file="FDA0000422625860000012.GIF" wi="57" he="58" />为事件算子,1≤i≤j,叫做E的中间匹配结果;t.e<sub>i</sub>为事件e<sub>i</sub>的发生的时间,t.E<sub>i+1</sub>-t.E<sub>i</sub>为两个相邻的事件类型的简单事件间的时间差;3)如果在缓冲区MaxBuffer中不存在与e<sub>i</sub>标识相同的中间结果PM<sub>Ei</sub>,但外存中存在ei对应的中间结果PM<sub>Ei</sub>:如果MaxBuffer中的中间结果需要进行归档操作,则先将用户定义的归档区间长为R的MaxBuffer中的中间结果进行归档,归档方式为将优先级树上长度为R的优先级最低的中间结果归档到外部空间,其中R为中间结果归档区间,在MaxBuffer中预留出从数据库需要加载的中间结果的空间;将e<sub>i</sub>对应的中间结果PM<sub>Ei</sub>从数据库或文件系统中加载到MaxBuffer,并与e<sub>i</sub>进行模式匹配,将e<sub>i</sub>的状态信息更新到中间结果PM<sub>Ei</sub>,判断是否达到输出状态,如达到输出状态,则输出事件,否则计算ei的优先级W(e<sub>i</sub>)=t.e<sub>i</sub>+(t.E<sub>i+1</sub>-t.E<sub>i</sub>)*P(E<sub>i</sub>,E<sub>i+1</sub>)并将W(e<sub>i</sub>)插入到优先级树T上;4)如果在缓冲区MaxBuffer与外存中都不存在e<sub>i</sub>对应的中间结果PM<sub>Ei</sub>:(1)如果e<sub>i</sub>是待检测复杂事件的第一个类型的事件,则在中间结果集中新建一个PM<sub>Ei</sub>,将e<sub>i</sub>的信息记录到PM<sub>Ei</sub>中,计算e<sub>i</sub>的优先级,并将W(e<sub>i</sub>)插入到优先级树T上;(2)否则,可判断不存在与e<sub>i</sub>匹配的复杂事件,删除e<sub>i</sub>;5)进行下一个原始事件的中间结果的处理,直到当前滑动窗口内的原始事件都被处理完毕。
地址 710072 陕西省西安市友谊西路127号