基于多R树的动态发布订阅方法技术

技术编号:35195065 阅读:11 留言:0更新日期:2022-10-12 18:22
本发明专利技术公开了一种基于多R树的动态发布订阅方法,包括以下步骤:S1、构建一个只有根节点的R树;S2、时刻监听订阅条件,将监听到的订阅条件加入订阅条件列表,订阅条件列表存储于步骤S1的R树中;S3、当接收到事件请求时,根据订阅关系在R树中进行查找,当订阅条件匹配时,即向订阅者发布对应事件。基于多R树的动态发布订阅方法,能够提高发布订阅效率,实现事件订阅与发布的快速匹配。阅与发布的快速匹配。阅与发布的快速匹配。

【技术实现步骤摘要】
基于多R树的动态发布订阅方法


[0001]本专利技术涉及计算机
,具体涉及一种基于多R树的动态发布订阅方法。

技术介绍

[0002]在面向增量型系统实现事件订阅与发布时,因为增量型系统具有数据连续的特点,直接查找事件是比较困难的。使用传统的R树存储增量系统的订阅条件时,对于边界相交的订阅条件往往需要修改现有的R树结构,会造成系统的运行效率下降。

技术实现思路

[0003]本专利技术实施例提供一种基于多R树的动态发布订阅方法,以解决现有技术中系统的运行效率下降的问题。
[0004]本专利技术实施例提供一种基于多R树的动态发布订阅方法,包括:
[0005]S1、构建一个只有根节点的R树;
[0006]S2、时刻监听订阅条件,将监听到的订阅条件加入订阅条件列表,订阅条件列表存储于步骤S1的R树中;
[0007]S3、当接收到事件请求时,根据订阅关系在R树中进行查找,当订阅条件匹配时,即向订阅者发布对应事件。
[0008]作为本专利技术的优选方式,所述S2具体为当接收到订阅条件时,判断该订阅条件与订阅条件列表中的已有订阅条件是否存在边界相交的情况;如果不存在边界相交,则直接更新当前R树的存储结构;如果存在边界相交则基于当前R树构建新的R树来存储该订阅条件。
[0009]作为本专利技术的优选方式,所述订阅条件按照时间顺序依次存入订阅条件列表。
[0010]作为本专利技术的优选方式,所述存在边界相交的订阅条件,基于时间顺序构建新的R树,保证每个R树中订阅条件不存在边界相交。
[0011]作为本专利技术的优选方式,所述S2中初始时订阅条件列表为空。
[0012]本专利技术实施例提供的基于多R树的动态发布订阅方法,对于和已有订阅条件边界相交的订阅条件,基于已有的R树存储结构,建立新的R树对该订阅条件进行存储,以此提高增量型系统的发布订阅效率,实现事件订阅与发布的快速匹配。
附图说明
[0013]为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0014]图1为本专利技术实施例提供的基于多R树的动态发布订阅方法流程图;
[0015]图2为本专利技术实施例提供的基于多R树的动态发布订阅方法的更新订阅条件列表
图;
[0016]图3为本专利技术实施例提供的基于多R树的动态发布订阅方法的边界相交R树结构图;
[0017]图4为本专利技术实施例提供的基于多R树的动态发布订阅方法的边界相交图;
[0018]图5为本专利技术实施例提供的基于多R树的动态发布订阅方法的边界相交订阅条件存储图;
[0019]图6为本专利技术实施例提供的基于多R树的动态发布订阅方法的边界相交订阅条件更新图;
[0020]图7为本专利技术实施例提供的基于多R树的动态发布订阅方法的更新订阅条件A图;
[0021]图8为本专利技术实施例提供的基于多R树的动态发布订阅方法的更新订阅条件B图。
具体实施方式
[0022]为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。
[0023]应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0024]基于多R树的动态发布订阅方法,如图1所示,包括以下步骤:
[0025]S1、构建一个只有根节点的R树;
[0026]S2、时刻监听订阅条件,将监听到的订阅条件加入订阅条件列表,订阅条件列表存储于步骤S1的R树中;
[0027]S21、当接收到订阅条件时,判断该订阅条件与订阅条件列表中的已有订阅条件是否存在边界相交的情况;如果不存在边界相交,则直接更新当前R树的存储结构;反之则基于当前R树构建新的R树来存储该订阅条件;
[0028]订阅条件按照时间顺序依次存入订阅条件列表;
[0029]对存在边界相交的订阅条件,基于时间顺序构建新的R树,保证每个R树中订阅条件不存在边界相交;
[0030]S3、当接收到事件请求时,根据订阅关系在R树中进行查找,当订阅条件匹配时,即向订阅者发布对应事件。
[0031]S2中初始时订阅条件列表为空,订阅条件列表容量根据接收的订阅条件数量动态更新;实时监听订阅信息,如图2所示;监听到订阅条件时,会将接收到的订阅条件加入到订阅条件列表中,订阅条件列表中不存在重复订阅条件;图2中A、B、C和D都是订阅条件。
[0032]在面向增量系统时,因为系统中的数据是大量且连续的,很可能会出现订阅条件边界相交的情况,而将边界相交的订阅条件分开存储在不同的R树中会保证系统的运行效率。边界相交的订阅条件存储结构如图3所示。对于两个存在边界相交的订阅条件A和C而言,使用两棵R树来对其进行存储。
[0033]对于传统R树而言,在对于边界相交的订阅条件的存储处理上,多数情况下插入一
个节点需要修改已有的R树结构。因为在已有的R树中插入一个新的索引点时,按照最小边界矩形原则,首先需要寻找合适的插入位置,寻找到合适的位置之后将节点插入,插入之后有可能会引起节点的分裂,进而可能向上传递引起上层节点的分裂。
[0034]基于两棵R树对存在边界相交的订阅条件进行存储,需要考虑的是订阅条件是否存在边界相交以及新建R树带来的损耗。
[0035]对订阅条件是否存在边界相交进行判断:使用类似列表的数据结构保存对应R树的订阅条件,如列表1记录R1树的订阅条件,如列表2记录R2树的订阅条件。每当监听到新的订阅条件时,首先遍历订阅条件列表检查该订阅条件是否出现过,如果出现过则对其不进行处理(以区间范围为例,两个订阅条件的区间边界都一样则为相同的订阅条件,存储一次即可)。
[0036]如果是新出现的订阅条件则有三种情况,一是不被任何订阅条件包含,则在任意一棵R树(新增表示该订阅条件已经被记录,不需要所有R树均新增节点)保存订阅条件即可;二是被订阅列表中的某订阅条件包含,则更新对应的R树,在该订阅条件下新增订阅条件即可;三是边界相交,则新建一棵独立的R树保存新的订阅条件。
[0037]新增R树存储存在边界相交的订阅条件:增量系统是存储和处理具有范围特性订阅条件的系统,在处理这类特性的订阅条件时,传统的做法是,基于单R树存储所有订阅条件。但是对于增量系统连续的订阅条件而言,单R树结构复杂,节点更新和条件检索异常困难。所以,将订阅条件冗余的部分,即存在边界相交的订阅条件构建多R树进行存储,实现优化的目的。
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种的基于多R树的动态发布订阅方法,其特征在于,包括:S1、构建一个只有根节点的R树;S2、时刻监听订阅条件,将监听到的订阅条件加入订阅条件列表,订阅条件列表存储于步骤S1的R树中;S3、当接收到事件请求时,根据订阅关系在R树中进行查找,当订阅条件匹配时,即向订阅者发布对应事件。2.根据权利要求1所述的方法,其特征在于,所述S2具体为当接收到订阅条件时,判断该订阅条件与订阅条件列表中的已有订阅条件是否存在边界相交的情况;如果不存在边...

【专利技术属性】
技术研发人员:尤涛张营程博孟帅杜承烈陈进朝
申请(专利权)人:西北工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1