一种信息分发系统中基于多维内容的事件匹配算法的制作方法

文档序号:17288418发布日期:2019-04-03 03:45阅读:192来源:国知局
本发明属于信息分发系领域,能够在高维度大规模的信息分发系统中,高效进行事件匹配算法。针对现有的事件匹配算法在大规模高维度场景下匹配效率低下,成为发布订阅系统发展的瓶颈的问题,特别设计了一种基于内容,具有很强属性过滤的能力,使搜索空间迅速缩小的快速匹配算法gem-tree。
背景技术
::信息分发系统需要容纳并处理数量级大、内容丰富,多元的信息。在海量的信息中,如何快速完成用户需求与多元信息的匹配,是信息分发系统需要解决的问题,也是信息分发系统的核心技术。在大型基于内容的多属性发布/订阅系统中,事件匹配作为关键角色,它负责从订阅数据库中查找匹配事件的所有订阅。然而,系统规模的不断扩大,信息的日益丰富,搜索复杂度的不断提高,使得事件匹配的性能受到严峻的挑战。现有的匹配算法在这种场景下匹配效率受到很大的影响。现有的算法可分为树匹配和计数匹配两种类型。虽然现有的算法通过技术通过设计索引结构组织维护订阅,达到有效筛除不匹配订阅,提高匹配效率的目的,但是目前存在的缺点如下:1)当订阅的规模更大,含有的属性维度更高时,现有的匹配结构不能够满足快速匹配的要求;2)空间匹配、计数匹配算法不能充分利用订阅属性多维的特点,充分过滤订阅;3)树形结构在进行动态调节会耗费更多的资源;4)不能动态地重新配置以适应物理网络中的拓扑变化。技术实现要素:(一)要解决的技术问题本发明提出的一种信息分发系统中基于多维内容的事件匹配算法,需要解决的技术问题有:如何构建表达语义更加丰富多元的模型来表达相关概念;如何设计维度划分和单维度值域划分机制;如何设计索引结构和事件匹配算法;如何对算法的性能进行实验测试和对比评估。(二)技术方案为解决上述技术问题,本发明提出了一种信息分发系统中基于多维内容的事件匹配算法,包括以下几个步骤:步骤一:模型构建、步骤二:属性过滤表设计、步骤三:gem结构的设计、步骤四:gem-tree构建、步骤五:gem-tree事件匹配算法的设计、步骤六:gem-tree算法复杂度分析、步骤七:gem-tree性能的对比验证。步骤一:模型构建:构建发布订阅系统中的相关模型,用以表达语义更加丰富的订阅和事件信息。关键表示如下:步骤二:属性过滤表设计:通过属性过滤,在进行订阅存储时,根据订阅的典型属性和含有的属性数目,将订阅划分到不同的网格(mesh)内。当来了事件进行匹配时,根据事件的属性和属性数,选出相应网格,旨在将不匹配订阅尽早筛除,以减少执行事件匹配的次数。(1)关键概念如下:典型属性:能够最将订阅同其他订阅进行区分最有利的属性。典型属性优先级查询表:对订阅和事件中的属性进行统计计算后生成的列表,是订阅选取典型属性的依据。mesh:根据订阅的典型属性和含有的属性个数,决定订阅在属性过滤表中所属的网格(2)设计原理:(a)事件一定包含匹配订阅的典型属性;(b)匹配订阅的属性数一定小于事件的属性数。(3)属性过滤表的优点:(a)对订阅进行初步划分均衡gem-tree的高度。(b)尽早过滤大量不匹配订阅,减少后期匹配的次数步骤三:gem结构的设计:gem结构对值域进行的划分,将属性的值域映射为平面空间中的一个点,相应的值域空间映射为平面空间上的上三角,值域的划分映射为对平面空间的划分。gem结构见附件图1.gem结构图(1)附件图1中的映射关系如下:平面上三角结构:值域空间映射的平面几个结构。区间:平面上三角中的点。单值:平面上三角斜边上的点。cell:对平面上三角进行划分后得到的单元。附件中图2.gem进行事件匹配的解释a点属性值i1,i2匹配区域划分线区域a匹配区域区域b,c完全不匹配区域a’,b’待匹配区域(2)gem上执行事件匹配:在订阅进行插入时,根据属性的值域,将订阅存储到gem中的cell当中。当事件来临,进行属事件匹配时,从事件的属性值值点a,引出分割线i1,i2。i1,i2划分出匹配区域a,不匹配区域b和c,以及待匹配区域a’和b’。需要对a’和b’中的订阅进行进一步的事件匹配,筛除不匹配订阅。步骤四:gem-tree的设计:gem-tree的结构如附图3.gem-tree结构,附图3.中的节点说明如下:gem-tree的构建过程:(1)生成属性优先级列表;(2)为订阅添加典型属性;(3)根据典型属性和属性数,将订阅划分到相应的mesh;(4)根据订阅的属性,以及属性的优先级,将订阅进一步划分到相应的gem结构中(gem)(5)根据属性的值域,将订阅划分到相应的cell当中。查看cell的下一层的gem表中中是否含有订阅中的属性,如果有,则继续执行步骤5,否则将订阅存储到cell下的s-node中;(6)存储后检查s-node中的订阅是否超出容限。若超出,在s-node中发生分裂;否则插入结束,构建结束。(7)s-node发生分裂,对订阅的属性进行统计,选取出最优属性。生成此属性的gem结构,将含有此属性的订阅从s-node中抽出,存储到新建的gem中相应的cell中。步骤五:gem-tree事件匹配算法的设计gem-tree进行事件匹配的过程如下:(1)根据事件的属性和属性数,在attri-filter-table中确定进行匹配的mesh;(2)根据事件中的属性,选择属性对应的gem进行匹配;(3)在gem结构(上三角)上,根据属性的值,在上三角中划定分割线,对分割线刺穿的cell进行进事件匹配,筛除不匹配订阅。(4)遍历cell连接着下一层的gem结构的列表,若发现事件含有的属性,重复步骤2、3、4,直到所在的cell的下一层gem结构的列表不存在,或查找不到相应属性。(5)将所有匹配的订阅整合在一起,得到最终的匹配结果。步骤六:gem-tree复杂度分析相关参数定义如下:(1)设订阅中含有的谓词数为λ。如果订阅中谓词的分布式均匀分布,订阅中最大谓词数为λmax,那么订阅的平均谓词数为(2)系统中维度空间的大小为d。(3)gem中,cell的存储空间s-node的大小为c.订阅插入的时间复杂度:订阅插入的时间复杂度是o(λavglogd)。证明如下。首先,根据典型属性优先级列表,为订阅选择典型属性的复杂度是o(λavg);第二步是根据其典型的属性和谓词的订阅数量从属性过滤表中选出相应的网格(mesh)的复杂度是o(1);下一步是在gem列表中找到相应的gem结构,复杂度为o(1);从gem结构上完成事件匹配,找到相应匹配值域的复杂度为o(1);在这种情况下,插入订阅的成本取决于gem-tree的高度。gem-tree的高度为o(λavglogd),综上所述,gem-tree中插入订阅的时间复杂度为o(λavglogd)。事件匹配的时间复杂度:事件匹配的时间复杂度为o(λavgc)。证明如下:从属性过滤表中找出匹配订阅所在的网格(mesh)的复杂度为o(1);网格的下一层gem表中找出事件中含有属性的相应gem结构复杂度为o(1);从gem-tree中找到匹配订阅存储节点s-node的复杂度为o(λavglogd);从s-node中最终获取匹配订阅的复杂度为o(λavgc)。综上所述,gem-tree完成事件匹配的时间复杂度为o(λavgc)。步骤七:gem-tree性能的对比验证(1)实验平台的搭建:搭建了信息容量可达百万级的实验平台,从订阅数量,订阅的匹配度,属性空间的大小,订阅的属性数等多种因素考量,设计多种场景,对匹配算法进行实验对比和性能评估。(2)实验订阅来源:对be-tree提供的数据包。(3)对比算法:从树形结构和计数匹配算法中选择匹配算法ap-tree、be-tree、op-index、rein、进行算法复现,同gem-tree算法进行实验对比。实验对比结果总结如下:属性空间的大小对于事件匹配的影响不是很大,但是gem-tree进行事件匹配有一些优势(附图4);随着订阅数量的增长,各种算法的平均事件匹配时间和订阅删除时间逐渐增长。gem-tree同其他算法相比,增长的速度要慢很多(附图5附图9);随着订阅含有的平均属性数的增长,事件匹配花费的时间随之增长。gem-tree在这五个算法中表现最优。订阅属性数对于gem-tree进行事件匹配的影响很小(附图6);随着订阅匹配率的增长,事件匹配花费的时间随之增长。gem-tree在这五个算法中表现最优(附图5)。(三)有益效果(1)尽早排除不匹配订阅所有的事件匹配算法通过缩小搜索空间,以减少匹配的事件执行匹配的时候,从而提高事件匹的效率。大多数现有的算法从一个根节点开始,通过多层多个子节的结构,点对订阅进行划分。然而,随着订阅数量级的增加,索引结构会相应生成大,量的子节点,这维护这些子节点是非常昂贵的,事件匹配的效率也因此受到影响。此外,索引结构的不平衡在这些算法是不可避免的。本发明gem-tree通过使用属性过滤表代替根节点来缓解这个问题。属性过滤表不仅有利于排除了大量不匹配的订阅,还有助于平衡gem-tree的高度。(2)更快完成单维值域匹配一些现有事件匹配算法通过分层结构对值域进一步划分,用以划分订阅。事件匹配时通过在层次结构中查找候选匹配的订阅所在的订阅空间。相比之下,本发明中gem将值域空间转换成一个二维的平面上的等边上三角,通过对这个上三角的划分完成订阅的划分。gem进行事件匹配时,通过匹配值引出的分割线,马上获取匹配区域,大大提高了事件匹配的效率。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1.为本发明提供订阅插入流程图图2.为本发明提供事件匹配流程图图3.为本发明提供gem结构图图4.为本发明提供gem事件匹配图;图5.为本发明提供gem-tree结构图;图6.为本发明提供属性空间的增长对匹配时间的影响图7.为本发明提供订阅的匹配率对事件匹配时间的影响图8.为本发明提供订阅的平均属性数对匹配时间的影响图9.为本发明提供订阅数的增长对匹配时间的影响图10.为本发明提供订阅数量对生成索引结构生成时间的影响图11.为本发明提供订阅数量对删除订阅时间的影响具体实施下面结合附图和实施例,对本发明中事件匹配索引结构的构建和事件匹配的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但并不用来限制本发明的范围。(1)典型属性的选取典型属性是订阅最特别,最具特征性的属性。它可以作为订阅的标志,能够最大程度上将订阅与其他订阅进行区分。一个订阅的典型属性在其他订阅中没有,或这出现频率非常小。本专利中根据订阅流或者事件流,统计各个属性的频率,进行排序,最终生成典型属性优先级列表。当执行插入订阅的操作时,首先根据属性优先级列表,为订阅选出典型属性(如算法一所示)。(2)属性过滤表的生成通过属性过滤,在进行订阅存储时,根据订阅的典型属性和含有的属性数目,将订阅划分到不同的网格(mesh)内。当来了事件进行匹配时,根据事件的属性和属性数,选出相应网格,将不匹配订阅尽早筛除,以减少执行事件匹配的次数。属性过滤遵循的原理是:1)事件一定包含匹配订阅的典型属性;2)匹配订阅的属性数一定小于事件的属性数。属性过滤表具有的优点:1)对订阅进行初步划分均衡gem-tree的高度;2)尽早过滤大量不匹配订阅,减少后期匹配的次数。属性过滤表的生算法如下:订阅中的谓词数量是有限的。我们可以获取到订阅中的最大谓词数premaxnum,以及系统属性空间attrset。构建属性过滤器表根据premaxnum,attrset。首先,我们计算属性过滤表中的一行的长度(line4),然后遍历所有的属性系统,建立行属性和附加属性过滤表的行(line5-11)。属性过滤表中网格的密度是可以调节的,通过指定行方向上谓词增量来实现。(3)gem-tree中订阅的插入本发明提出了gem-tree,一种基于信息分发系统中基于多维内容的事件匹配算法,gem-tree的构建如下,参考附图3.gem-tree的结构:步骤一:生成属性优先级列表;步骤二:为订阅添加典型属性;步骤三:根据典型属性和属性数,将订阅划分到相应的mesh;步骤四:根据订阅的属性,以及属性的优先级,将订阅进一步划分到相应的gem结构中(t-node)步骤五:根据属性的值域,将订阅划分到相应的cell当中,并且存储在s-node中;步骤六:存储后检查s-node中的订阅是否超出容限。若超出,在s-node中发生分裂;否则插入结束,构建结束。步骤七:s-node发生分裂,对订阅的属性进行统计,选取出最优属性。生成此属性的gem结构,将含有此属性的订阅从s-node中抽出,存储到新建的gem中相应的cell中。具体生成伪代码如算法3所示。(4)事件匹配的具体执行步骤如下:步骤一:根据事件的属性和属性数,在attri-filter-table中确定进行匹配的mesh;步骤二:根据事件中的属性,选择属性对应的gem进行匹配;步骤三:在gem结构(上三角)上,根据属性的值,在上三角中划定分割线,对分割线刺穿的cell进行进事件匹配,筛除不匹配订阅。步骤四:遍历cell连接着下一层的gem结构的列表,若发现事件含有的属性,重复步骤2、3、4,直到所在的cell的下一层gem结构的列表不存在,或查找不到相应属性。步骤五:将所有匹配的订阅整合在一起,得到最终的匹配结果。具体生成伪代码如算法四所示:本发明针对订阅数量级不断增加,信息的日益丰富,搜索复杂度的不断提高,事件匹配效率受到很大的影响的问题,提出一种信息分发系统中基于多维内容的事件匹配算法,利用属性过滤表和gem结构,分别通过典型属性、属性数对不匹配订阅进行过滤和值域空间的有效划分,高效获取匹配订阅,大大提升了高维度海量订阅进行事件匹配的效率。本发明还模拟各种场景下的百万级的订阅平台,搭建实验平台,并且同现有的其他事件匹配算法进行对比,验证了本专利发明的算法在事件匹配中的高效性。所属领域的普通技术人员应当理解:以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1