CN111898001B - 一种基于属性过滤度的计数匹配方法 - Google Patents
一种基于属性过滤度的计数匹配方法 Download PDFInfo
- Publication number
- CN111898001B CN111898001B CN202010589509.XA CN202010589509A CN111898001B CN 111898001 B CN111898001 B CN 111898001B CN 202010589509 A CN202010589509 A CN 202010589509A CN 111898001 B CN111898001 B CN 111898001B
- Authority
- CN
- China
- Prior art keywords
- attribute
- event
- matching
- subscriptions
- constraint
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9035—Filtering based on additional data, e.g. user or group profiles
Abstract
本发明公开了一种基于属性过滤度的计数匹配方法。本发明根据计数匹配算法的特点,在研究不同计数匹配算法模型的基础上设计了一种基于属性过滤度的最大过滤匹配模型。在事件和订阅分配阶段完成属性过滤度的计算和排列,构建用于后续事件匹配的倒金字塔模型,在事件匹配过程中,当单桶链索引结构上的桶内约束个数达到一定数目时转化为红黑树,以加速事件匹配过程的速度。该技术匹配算法能够大大的缩减实际参与匹配的订阅数目,缓解复杂订阅引起的匹配性能衰减问题。
Description
一、技术领域
本发明涉及面向消息的中间件领域,尤其涉及基于内容的发布订阅系统匹配算法,具体是一种基于属性过滤度的计数匹配方法。
二、背景技术
随着人工智能、5G通信以及物联网等前沿技术的兴起和突破,伴随着的是分布式应用在数据规模和复杂性方面对数据传播模型的灵活性和稳定性的更高要求。发布订阅系统并不需要通信双方直接通信,在解耦合、异步传输和多对多通信上有着更明显的优势,其应用场景也遍布各个领域,如灾难监控、股票价格监控、移动消息推送和社交网络与游戏等等,提高发布订阅系统数据传播能力对现代数据通信有着重要意义。
发布订阅系统按照表达能力不同可分为基于主题的发布订阅系统和基于内容的发布订阅系统,基于主题的发布订阅系统只能表达粗粒度的订阅内容,而基于内容的发布订阅系统可以表达细粒度的订阅内容。基于内容的发布订阅系统虽然具有细粒度的表达能力,但是庞大的事件匹配过程会制约发布订阅系统对内容的处理速度,快速高效的事件匹配性能对基于内容的发布订阅系统十分有意义,对发布订阅系统领域的发展也至关重要。
在基于内容的发布订阅系统中,当接收到来自发布者的事件后,就会搜索所有匹配的订阅并转发此条事件,这一过程叫做事件匹配。在大规模复杂应用中发布订阅系统匹配算法事件匹配过程会因为密集的事件输入而时刻保持高负载,数据规模和复杂程度成为事件匹配的瓶颈。因此,改善和优化事件匹配性能对提高用户体验至关重要。近年来,许多研究学者就如何提高匹配速度展开了大量的研究,在这些研究中所使用的方法可以归纳为两种思想:减少订阅的数目和设计快速高效的索引结构。减少订阅的数目是一种较为直观的提高匹配速度的方式,理论上订阅数目与匹配速度之间呈线性关系。减少订阅数目常通过订阅之间的相互关系实现,现有的减少订阅数目的方式有合并、覆盖和划分等,其中大多数方法需要较高的准备成本和维护成本因而无法适应大规模复杂订阅的要求。而设计精巧的索引结构能够将事件匹配问题转化为快速查找问题,一个高效的索引结构应该具有匹配效率高、维护成本低和内存开销少的特点,在早期经常使用多层表结构完成快速索引,但因灵活性问题被学者们放弃并逐步提出多种新颖的索引结构,如树结构、链式结构以及基于几何分析的结构,这些结构的提出都能够很好的利用事件索引的特点加快事件匹配速度。单一思想的探索已经到达了瓶颈,结合两种不同的思想加快索引速度对大规模发布订阅系统十分有意义。
三、发明内容
本发明的目的在于提高匹配算法在复杂匹配环境中的匹配速度,相关研究者致力于提高大规模发布订阅系统的匹配性能,但很少关注订阅复杂性带来的影响,这体现在目前的相关研究都有针对大规模订阅的结构或机制而显有针对复杂订阅的。
本发明的目的是这样达到的:本文提出CMA-AFD(Counting matching algorithmbased on attribute filtering degree),一种基于属性过滤度的计数匹配方法,能够快速的完成事件的精确匹配而非模糊匹配。CMA-AFD使用结构可以变化的单桶链结构来结合独特的最大属性过滤度匹配机制,其结构支持桶的结构随着桶内约束数目的增加而从链式转为红黑树,有效的降低单桶约束堆积引起的索引速度衰减问题。此外,基于单元独立的单桶链结构,CMA-AFD能够在事件匹配之初通过维护局部变量估算各个属性上的属性过滤度,并安排属性过滤度高的属性在靠前的位置执行事件匹配,这样能够以最低的代价通过关联过滤的方式最大程度的缩减后续属性上需要检查约束的数量,巧妙的将减少订阅数目和设计高效索引的思想融合在一起。
具体做法是:在介绍基于属性过滤度的计数匹配算法时,会介绍基本思想、索引结构和属性过滤度。
基本思想,假设有四条订阅Sall={S1,S2,S3,S4}分布在Aall={A1,A2,A3}三个属性上,事件来临,订阅分布情况为:/> A2={S1,S3},/>带有上标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的事件匹配过程可分为三个阶段:属性选择阶段、索引阶段和确认阶段。
当一条事件来临时,在CMA-AFD属性索引阶段,先按事件值分属性将事件映射到各个单元对应的桶内,然后逐个属性计算其属性过滤度得到集合P={ρ1、ρ2、ρ3…ρm},并对集合P内的元素按照降序排列,最后根据P的降序集构建倒金字塔模型,属性索引阶段结束。
经过上一阶段得到按属性过滤度降序序列构成的倒金字塔模型后,开启索引阶段并从倒金字塔模型的最上层属性向最下层属性匹配。先初始化一个增强位集EBS,位集的个数等于订阅个数,经过位集法标记的订阅为不匹配订阅。然后在属性的索引结构上找到所有上边界小于/>和下边界大于/>的所有订阅并标记在EBS中,该过程可以理解为两段遍历和一次检查,遍历/>所属单元之前的所有上边界桶和之后的所有下边界桶,检查/>所属单元的上下边界桶。在此过程中找到的不匹配订阅都在增强位集中标记,匹配的订阅不被标记并且其计数器会自增。当遍历完最底层属性时,索引阶段结束。
确认阶段的主要任务是通过增强位集确认最终匹配的订阅。直接遍历上个阶段标记完成的位集中未被标记的订阅,在遍历的过程中完成计数器与属性个数的比较过程,每完成一次比较确认一条订阅,经过确认的订阅就可以向其发送事件。CMA-AFD的事件匹配过程伪代码如图4所示。
本发明的用户使用场景举例:
场景一:在具有调度能力的道路交通监控平台中,当平台监控到局部路段出现堵塞情况并预估出具体阻塞时间时,路段和时间这样一对属性对就可以作为订阅和事件的组成,高效的时间匹配算法能够及时的支持车辆的调度。
Claims (1)
1.一种基于属性过滤度的计数匹配方法,其特征在于:通过在常规的计数匹配算法中增加属性筛选机制和单桶链索引结构动态调整机制,能够快速的完成基于内容的发布订阅系统中的事件匹配过程;
一种基于属性过滤度的计数匹配方法总共分为三个阶段:属性选择阶段、索引阶段和确认阶段;
在属性选择阶段执行属性过滤度计算和倒金字塔模型构建,其特征在于:在按属性完成事件匹配的过程中,会预先计算各个属性上的属性过滤度,计算的方法是预匹配加统计,然后对属性按照属性过滤度大小降序排序以构建逻辑倒金字塔模型,后续的事件匹配顺序按照倒金字塔模型的顺序进行,其中倒金字塔模型的详细内容是,每一层包含一个属性的索引结构,在该结构中各层级所在位置由属性过滤度来决定,属性过滤度的含义是每个属性上不满足事件值的约束占其总约束含量,属性过滤度最高的属性处于倒金字塔结构的最上层,最低的处于倒金字塔结构的最底层,每次事件匹配自上而下执行,层级数为事件包含的属性数目,层内是按照该层属性值域划分的单桶链结构,桶链的长度由属性的值域决定,事件和订阅分别根据值和约束找到其在桶链上的单元,通过单元可以映射到此单元关联的上下边界桶,约束上边界值映射到上边界桶,下边界值映射到下边界桶,事件值会同时映射到该单元内的上下边界桶,约束插入到桶中的内容包括边界值和订阅编号,当桶内约束个数达到8个时将结构转化为红黑树结构,红黑树结点内包含了约束的订阅编号以及值;
完成上述步骤后进入到索引阶段,在索引阶段执行订阅索引、事件索引和事件匹配,索引结构会在订阅和事件属性达到一定数目时转化,其特征在于:当单桶链索引结构中的任意一个桶内包含的订阅约束个数达到8个时,其结构由链式结构转化为红黑树结构,详细过程是先初始化一个增强位集EBS,位集的个数等于订阅个数,经过位集法标记的订阅为不匹配订阅,然后在属性的索引结构上找到所有上边界小于/>和下边界大于/>的所有订阅并标记在EBS中,其中1≤i≤m,m为事件包含的属性数目,该过程可以理解为两段遍历和一次检查,遍历/>所属单元之前的所有上边界桶和之后的所有下边界桶,检查/>所属单元的上下边界桶,在此过程中找到的不匹配订阅都在增强位集中标记,匹配的订阅不被标记并且其计数器会自增,当遍历完最底层属性时,索引阶段结束;
当最后一个属性上的事件匹配完成后就进入到确认阶段,在确认阶段会通过初筛和复筛选出最终匹配的订阅并向其转发事件,详细过程是通过增强位集确认最终匹配的订阅,直接遍历上个阶段标记完成的位集中未被标记的订阅,在遍历的过程中完成计数器与属性个数的比较过程,每完成一次比较确认一条订阅,经过确认的订阅就可以向其发送事件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010589509.XA CN111898001B (zh) | 2020-06-24 | 2020-06-24 | 一种基于属性过滤度的计数匹配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010589509.XA CN111898001B (zh) | 2020-06-24 | 2020-06-24 | 一种基于属性过滤度的计数匹配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111898001A CN111898001A (zh) | 2020-11-06 |
CN111898001B true CN111898001B (zh) | 2023-08-08 |
Family
ID=73207855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010589509.XA Active CN111898001B (zh) | 2020-06-24 | 2020-06-24 | 一种基于属性过滤度的计数匹配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111898001B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106682110A (zh) * | 2016-12-06 | 2017-05-17 | 北京航天世景信息技术有限公司 | 一种基于哈希格网索引的影像文件存储和管理系统及方法 |
CN106909644A (zh) * | 2017-02-21 | 2017-06-30 | 中国科学院电子学研究所 | 一种面向海量遥感影像的多级组织和索引方法 |
CN107145502A (zh) * | 2017-03-20 | 2017-09-08 | 中山大学 | 一种海量图片存储和搜索的方法 |
CN107844609A (zh) * | 2017-12-14 | 2018-03-27 | 武汉理工大学 | 一种基于文体和词表的突发事件信息抽取方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7295094B2 (ja) * | 2017-09-06 | 2023-06-20 | コンヴィーダ ワイヤレス, エルエルシー | モノのインターネット構成可能イベント・アクション・シーケンシング・フレームワーク |
-
2020
- 2020-06-24 CN CN202010589509.XA patent/CN111898001B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106682110A (zh) * | 2016-12-06 | 2017-05-17 | 北京航天世景信息技术有限公司 | 一种基于哈希格网索引的影像文件存储和管理系统及方法 |
CN106909644A (zh) * | 2017-02-21 | 2017-06-30 | 中国科学院电子学研究所 | 一种面向海量遥感影像的多级组织和索引方法 |
CN107145502A (zh) * | 2017-03-20 | 2017-09-08 | 中山大学 | 一种海量图片存储和搜索的方法 |
CN107844609A (zh) * | 2017-12-14 | 2018-03-27 | 武汉理工大学 | 一种基于文体和词表的突发事件信息抽取方法及系统 |
Non-Patent Citations (1)
Title |
---|
钮亮等.一种支持范围查询的云数据空间索引研究.《小型微型计算机系统 》.2018,第39卷(第39期),967-972页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111898001A (zh) | 2020-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106452868B (zh) | 一种支持多维度聚合分类的网络流量统计实现方法 | |
CN101345707B (zh) | 一种实现IPv6报文分类的方法及设备 | |
CN102073700B (zh) | 一种复杂网络社团的发现方法 | |
CN104809168B (zh) | 超大规模rdf图数据的划分与并行分布处理方法 | |
CN107092656A (zh) | 一种树状结构数据处理方法及系统 | |
CN104579941A (zh) | 一种OpenFlow交换机中的报文分类方法 | |
CN104885078A (zh) | 用于大规模并行处理数据库集群中的两阶段查询优化的方法 | |
CN104392010A (zh) | 一种子图匹配的查询方法 | |
CN100385443C (zh) | 一种基于分档Bloom Filter结构的查询方法 | |
CN102323942B (zh) | 一种统计查询方法 | |
CN105515997B (zh) | 基于bf_tcam实现零范围扩张的高效范围匹配方法 | |
CN102868757B (zh) | 一种基于QoS指标的动态Web服务组合方法 | |
CN111898001B (zh) | 一种基于属性过滤度的计数匹配方法 | |
CN105975694B (zh) | 构建解决组合爆炸问题的级联贝叶斯网络的方法 | |
CN109918369A (zh) | 数据存储方法及装置 | |
Theeten et al. | Chive: Bandwidth optimized continuous querying in distributed clouds | |
CN102110158A (zh) | 一种基于改进型sdd-1算法的数据库多连接查询优化方法 | |
CN104125146B (zh) | 一种业务处理方法及装置 | |
CN103577899A (zh) | 一种基于可靠性预测与QoS相结合的服务组合方法 | |
CN101582085B (zh) | 一种基于分布式信息检索系统的集合选择方法 | |
CN108471355A (zh) | 一种基于海云计算架构的物联网信息互操作方法 | |
CN117093885A (zh) | 融合分层聚类和粒子群的联邦学习多目标优化方法 | |
CN115941506A (zh) | 一种基于策略网络强化学习的多类型服务资源编排方法 | |
CN110765730A (zh) | 一种组合逻辑电路简化方法 | |
Rafiee et al. | Pruned Kd-tree: a memory-efficient algorithm for multi-field packet classification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |