本发明专利技术公开了一种基于属性过滤度的计数匹配算法。本发明专利技术根据计数匹配算法的特点,在研究不同计数匹配算法模型的基础上设计了一种基于属性过滤度的最大过滤匹配模型。在事件和订阅分配阶段完成属性过滤度的计算和排列,构建用于后续事件匹配的倒金字塔模型,在事件匹配过程中,当单桶链索引结构上的桶内约束个数达到一定数目时转化为红黑树,以加速事件匹配过程的速度。该技术匹配算法能够大大的缩减实际参与匹配的订阅数目,缓解复杂订阅引起的匹配性能衰减问题。
【技术实现步骤摘要】
一种基于属性过滤度的计数匹配算法一、
本专利技术涉及面向消息的中间件领域,尤其涉及基于内容的发布订阅系统匹配算法,具体是一种基于属性过滤度的计数匹配算法。二、
技术介绍
随着人工智能、5G通信以及物联网等前沿技术的兴起和突破,伴随着的是分布式应用在数据规模和复杂性方面对数据传播模型的灵活性和稳定性的更高要求。发布订阅系统并不需要通信双方直接通信,在解耦合、异步传输和多对多通信上有着更明显的优势,其应用场景也遍布各个领域,如灾难监控、股票价格监控、移动消息推送和社交网络与游戏等等,提高发布订阅系统数据传播能力对现代数据通信有着重要意义。发布订阅系统按照表达能力不同可分为基于主题的发布订阅系统和基于内容的发布订阅系统,基于主题的发布订阅系统只能表达粗粒度的订阅内容,而基于内容的发布订阅系统可以表达细粒度的订阅内容。基于内容的发布订阅系统虽然具有细粒度的表达能力,但是庞大的事件匹配过程会制约发布订阅系统对内容的处理速度,快速高效的事件匹配性能对基于内容的发布订阅系统十分有意义,对发布订阅系统领域的发展也至关重要。在基于内容的发布订阅系统中,当接收到来自发布者的事件后,就会搜索所有匹配的订阅并转发此条事件,这一过程叫做事件匹配。在大规模复杂应用中发布订阅系统匹配算法事件匹配过程会因为密集的事件输入而时刻保持高负载,数据规模和复杂程度成为事件匹配的瓶颈。因此,改善和优化事件匹配性能对提高用户体验至关重要。近年来,许多研究学者就如何提高匹配速度展开了大量的研究,在这些研究中所使用的方法可以归纳为两种思想:减少订阅的数目和设计快速高效的索引结构。减少订阅的数目是一种较为直观的提高匹配速度的方式,理论上订阅数目与匹配速度之间呈线性关系。减少订阅数目常通过订阅之间的相互关系实现,现有的减少订阅数目的方式有合并、覆盖和划分等,其中大多数方法需要较高的准备成本和维护成本因而无法适应大规模复杂订阅的要求。而设计精巧的索引结构能够将事件匹配问题转化为快速查找问题,一个高效的索引结构应该具有匹配效率高、维护成本低和内存开销少的特点,在早期经常使用多层表结构完成快速索引,但因灵活性问题被学者们放弃并逐步提出多种新颖的索引结构,如树结构、链式结构以及基于几何分析的结构,这些结构的提出都能够很好的利用事件索引的特点加快事件匹配速度。单一思想的探索已经到达了瓶颈,结合两种不同的思想加快索引速度对大规模发布订阅系统十分有意义。三、
技术实现思路
本专利技术的目的在于提高匹配算法在复杂匹配环境中的匹配速度,相关研究者致力于提高大规模发布订阅系统的匹配性能,但很少关注订阅复杂性带来的影响,这体现在目前的相关研究都有针对大规模订阅的结构或机制而显有针对复杂订阅的。本专利技术的目的是这样达到的:本文提出CMA-AFD(Countingmatchingalgorithmbasedonattributefilteringdegree),一种基于属性过滤度的计数匹配算法,能够快速的完成事件的精确匹配而非模糊匹配。CMA-AFD使用结构可以变化的单桶链结构来结合独特的最大属性过滤度匹配机制,其结构支持桶的结构随着桶内约束数目的增加而从链式转为红黑树,有效的降低单桶约束堆积引起的索引速度衰减问题。此外,基于单元独立的单桶链结构,CMA-AFD能够在事件匹配之初通过维护局部变量估算各个属性上的属性过滤度,并安排属性过滤度高的属性在靠前的位置执行事件匹配,这样能够以最低的代价通过关联过滤的方式最大程度的缩减后续属性上需要检查约束的数量,巧妙的将减少订阅数目和设计高效索引的思想融合在一起。具体做法是:在介绍基于属性过滤度的计数匹配算法时,会介绍基本思想、索引结构和属性过滤度。基本思想,假设有四条订阅Sall={S1,S2,S3,S4}分布在Aall={A1,A2,A3}三个属性上,事件来临,订阅分布情况为:带有上标m的订阅表示匹配订阅。常规计数匹配算法REIN、GEM、DEXIN和PADEM等因为索引结构和匹配策略的限制选择随机属性匹配,但CMA-AFD会按照A2,A1,A3的顺序执行反向匹配。在A2属性将S1和S3订阅标记为不匹配以减少后续搜索空间大小,在A1属性同样通过提前标记S2和S4不匹配而使在A3属性上不必再检查S4,总之,CMA-AFD会在靠前的节点用最低的搜索代价过滤最多的订阅而使靠后的节点处理尽可能少的搜索空间,正是依靠这种最大关联过滤思想使得CMA-AFD能够在匹配复杂订阅时维持匹配性能的稳定性。索引结构,为了在索引结构中融合减少订阅数目的思想,CMA-AFD设计了一种倒金字塔索引结构。如图1所示,每一层包含一个属性的索引结构,在该结构中各层级所在位置由属性过滤度来决定,属性过滤度的含义是每个属性上不满足事件值的约束占其总约束含量,属性过滤度最高的属性处于倒金字塔结构的最上层,最低的处于倒金字塔结构的最底层,每次事件匹配自上而下执行,层级数为事件包含的属性数目。图1为一个6层结构,代表事件包含6个属性,分别是A1、A2、A3、A4、A5和A6,它们的属性过滤度由高到低依次递减,A1是事件匹配时执行的第一个属性,A6是事件匹配时匹配的最后一个属性。层内是按照该层属性值域划分的单桶链结构,其结构如图2所示,桶链的长度由属性的值域决定,图中划分了5个单元,区域宽度是0.2,假定图中属性值域为[0,1],事件和订阅分别根据值和约束找到其在桶链上的单元,通过单元可以映射到此单元关联的上下边界桶,约束上边界值映射到上边界桶H,下边界值映射到下边界桶L,事件值会同时映射到该单元内的上下边界桶。约束插入到桶中的内容包括边界值和订阅编号SID。为了插入速度和匹配速度的平衡以及避免单桶约束堆积情况,CMA-AFD采用动态调整桶结构的思想。如图3所示的桶中包含8条约束,CMA-AFD规定当桶内约束个数达到8个时将结构转化为红黑树结构,红黑树结点内包含了约束的订阅编号以及值。属性过滤度,当新事件E来临时,在基于索引结构的匹配算法上常见的匹配模式是前一个属性匹配结果作为输入继续在下一个属性上匹配,前一个属性如果找出更多匹配或者不匹配的订阅,后续属性上需要检查的订阅空间相应就会更少,CMA-AFD设计基于属性过滤度的倒金字塔模型的目的是最大程度的通过前述关联过滤思想缩减实际参与比较的约束数目,这样就在索引结构中引入了减少搜索空间的思想。本专利技术的积极效果是:1、根据最大关联过滤的方法,在事件匹配靠前节点提前缩减了需要匹配的订阅空间,大大的提高了约束较多的复杂订阅的匹配时间。2、基于桶内可以转化为红黑树的链式结构,在大规模匹配场景下,结构的转化能够有效的缓解桶内约束堆积带来的匹配速度衰减问题。四、附图说明图1倒金字塔结构图;图2层内索引结构图;图3桶动态转化过程图;图4事件匹配伪代码图;图5专利技术流程图。五、具体实施方式本专利技术的具体实施方式可以用一次事件匹配过程说明,CMA-AFD的事件匹配过程可分为三个阶段:属性选择阶段、索引阶段和确认阶段。本文档来自技高网...
【技术保护点】
1.一种基于属性过滤度的计数匹配算法,其特征在于:通过在常规的计数匹配算法中增加属性筛选机制和单桶链索引结构动态调整机制,能够快速的完成基于内容的发布订阅系统中的事件匹配过程:/n一种基于属性过滤度的计数匹配算法总共分为三个阶段:属性选择阶段、索引阶段和确认阶段,在属性选择阶段执行属性过滤度计算和倒金字塔模型构建,完成上述步骤后进入到索引阶段,在索引阶段执行订阅索引、事件索引和事件匹配,索引结构会在订阅和事件属性达到一定数目时转化,当最后一个属性上的事件匹配完成后就进入到确认阶段,在确认阶段会通过初筛和复筛选出最终匹配的订阅并向其转发事件。/n
【技术特征摘要】
1.一种基于属性过滤度的计数匹配算法,其特征在于:通过在常规的计数匹配算法中增加属性筛选机制和单桶链索引结构动态调整机制,能够快速的完成基于内容的发布订阅系统中的事件匹配过程:
一种基于属性过滤度的计数匹配算法总共分为三个阶段:属性选择阶段、索引阶段和确认阶段,在属性选择阶段执行属性过滤度计算和倒金字塔模型构建,完成上述步骤后进入到索引阶段,在索引阶段执行订阅索引、事件索引和事件匹配,索引结构会在订阅和事件属性达到一定数目时转化,当最后一个属性上的事件匹配完成后就进入到确认阶段,在确认阶段会通过初...
【专利技术属性】
技术研发人员:陈彦如,郭敏,张澧枫,张磊,陈良银,杨彦兵,魏亮雄,胡顺仿,张媛媛,王伟,王浩,
申请(专利权)人:四川大学,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。