一种基于复数单维索引的对称发布订阅系统匹配方法

文档序号:6339992阅读:127来源:国知局
专利名称:一种基于复数单维索引的对称发布订阅系统匹配方法
技术领域
本发明属于数据库领域,特别涉及一种基于复数单维索引的对称发布订阅系统匹 配方法。
背景技术
发布订阅系统是以个性化的信息发布和获取为中心的应用服务平台,如提供股 票、交通、天气、新闻等信息的发布及订阅的服务平台,发布者提供给平台的信息被称作事 件,订阅者提供给平台的感兴趣消息的过滤条件被称作订阅,在传统的发布订阅系统中,信 息的发布者对信息的订阅者没有约束;有一类信息发布获取服务平台如求职求人、出租 求租、网上易物等,信息的发布者需要对信息的接受者进行筛选过滤,以求职求人为例,公 司发布工资信息的同时还对求职者的年龄有要求,求职者发布自己的年龄信息的同时还对 公司所提供的工资有要求,与传统的发布订阅系统不同,该类服务平台的用户既是信息的 制造者又是信息的消费者,这类信息发布获取服务平台被称为对称发布订阅系统。不论是传统的发布订阅系统还是对称发布订阅系统,事件与订阅的匹配方法是发 布订阅系统的关键技术之一,在传统的发布订阅系统中,为了提高匹配效率,需要对由谓词 表示的过滤条件建立订阅索引,根据索引结构,匹配方法可分为三类1)基于复数单维索 引的方法对于定义在相同属性类型相同的谓词建立一个一维索引,索引结构可以采用红 黑树、哈希表与B+Tree,匹配过程是对满足条件的谓词进行计数,其代表为Counting方法; 2)基于高维索引的方法是把订阅看作高维空间上的对象,利用高维空间索引对订阅建索 引,匹配过程就是高维空间的查询过程,常用的索引结构是R*Tree、UBTree ;3)基于决策树 的方法,每一个属性对应树的一层,每一层的分支由定义在这一层的谓词决定,匹配过程是 从树的根节点到叶子节点的搜索过程。从匹配的效率、索引的动态维护行及对数据分布的敏感性,上述匹配方法有不同 特性1)基于复数单维索引的方法,如Counting方法,对于具有良好的扩展性、动态维护 性,对数据分布不敏感,对于每一个事件的过滤,每一维对应一个属性,每个属性上预选结 果集合都是整个订阅集,而不是其子集,计算量较大,实现较复杂;2)基于高维索引的方 法,如RTree索引,实现简单,随着每一步查找的深入,候选结果集都是在不断减小的,其计 算量不像复数单维索引那样是随着维数的增长而线性增长,计算量较小,但高维空间索引 的维护代价高,当维数较高时,查询操作需要扫描整个索引,动态维护性查,其性能对数据 分布敏感;3)基于决策树的方法匹配速度快,但其动态维护性非常高,不具有可用性。综上所述,在传统的发布订阅系统中,发布者是信息的制造者,订阅者是消息的消 费者,在对称发布订阅系统中,消息的发布者也希望施加约束条件,从而达到对于信息的接 受者进行筛选或限制,基于高维索引的匹配方法虽然支持对称发布订阅的事件与订阅的匹 配,但因为动态维护性差同时其性能对数据分布敏感,在可用性在实践上有很大的局限性; 基于复数单维索引的方法不直接支持对称发布订阅的事件与订阅的匹配,因为在传统的方 法里,事件用点表示,事件对订阅做点查询,在对称发布订阅系统中,事件是带有约束条件的,也就是事件要求对订阅作范围查询时,传统的基于复数单维索引的匹配方法不能适应 这种条件下的应用。

发明内容
针对上述方法的不足,本发明提出一种基于复数单维索引的对称发布订阅系统匹 配方法。首先定义对称发布订阅系统的匹配模型如下在对称发布订阅系统中,发布者发 布的事件既包含事件自身的描述信息又包含对订阅者的约束条件,每个属性上的事件自身 的描述信息可以用与该属性对应空间上的一段间隔来表示,其中用点表示的描述信息是开 始位置与结束位置相同的间隔,发布者对订阅者的约束条件用一组谓词来表示,每个属性 上定义一个谓词,每个谓词也可以用与该属性对应空间上的一段间隔来表示,其中等于谓 词表示为开始位置与结束位置相同的间隔;订阅者提交的订阅中既包含订阅者对发布者发 布的事件的匹配条件还包括订阅者自身的描述信息,订阅中用谓词描述的匹配条件与自身 的描述信息都可以用定义在属性上的间隔来表示,综上、对称发布订阅系统中的事件与订 阅都可以用一组间隔表示;根据上述模型,本发明给出事件与订阅匹配的定义针对对称发布订阅系统中的 一个属性,定义在该属性上事件与订阅被称为子事件与子订阅,如果与子事件与子订阅对 应的间隔相交,那么子事件与子订阅互相匹配;对于对称发布订阅系统中的所有属性,如果 一个事件的所有子事件与一个订阅的所有子订阅匹配,则称该事件与该订阅匹配;本发明的技术方案是这样实现的由于在对称的发布订阅系统中、事件与订阅是 对称的,用户既是提供者又是消费者,订阅与事件只有语义上的区别,在处理过程上订阅与 事件是相同的,系统既要对订阅建索引计数也要对事件建索引计数,其索引的结构、索引的 建立使用方法及计数方法完全相同,一种基于复数单维索引的对称发布订阅系统匹配方 法,包括以下步骤步骤1 系统接收用户提交的数据,所述数据包含用户的要求与用户自身的信息, 以数值形式表示用户分为两类,系统任选一类用户提交的信息数据作为订阅,则另一类用 户提交的信息数据作为事件;当用户提交的信息数据为事件时执行步骤2,当用户提交的 信息数据为订阅时执行步骤3 ;步骤2 查询与事件匹配的订阅并将事件插入事件索引;步骤2-1 查询订阅索引,方法为分解事件的每一个属性,将之变成和属性对应 的子事件的集合,对每一个子事件,查询步骤3-3建立的订阅索引,检查与之匹配的子订 阅,并对与匹配出的子订阅对应的订阅匹配计数器SCoimter进行计数,以便将来比对订阅 是否得到满足时使用,假定到达的事件为[EX,EY],其中,EX、EY分别表式间隔的起点与终 点的数值,所对应的索引与计数操作方法如下用EY查询所对应属性的小于谓词的索引查到第一个小于等于EY叶子节点后,利 用B+Tree叶子节点的有序链表,对索引的叶子链表进行扫描,扫描的方向是从大到小,对 每一个扫描到的谓词对应的订阅进行匹配计数,计数值为1 ;用EX查询所对应属性的大于谓词的索引查到第一个大于等于叶子节点后,利用 B+Tree叶子节点的有序链表,对索引的叶子链表进行扫描,扫描的方向是从小到大,对每一个扫描到的谓词对应的订阅进行匹配计数,计数值为1 ;步骤2-2 输出匹配的订阅检查步骤2-1所查到的每个订阅相关联的索引表的 情况,如果索引表内的每个订阅的预统计的计数值PCoimter与其匹配的订阅匹配计数器 Scoimter相等,则此事件使该订阅得到了满足,系统将该订阅输出并提交给用户;步骤2-3 将此事件插入事件索引分解事件的每一个属性,将之变成和属性对应 的子事件的集合,根据子事件对应的间隔的类型,将其插入对应的索引同时对该子事件计 数,该事件的计数是每个子事件的计数值的和,即预统计计数PCoimter,每一属性有两个索 弓丨,一个用于索引与大于谓词对应的间隔,另一个索引与小于谓词对应的索引,索引的数据 结构为 B+Tree ;假定该属性的域值为[D0MAIN_MIN,D0MAIN_MAX], D0MAIN_MIN 与 D0MAIN_ MAX为该属性的最小值与最大值,下文所用的SX与SY分别为间隔的起点值与终点值,对索 引的插入与对每个子订阅的计数的具体操作方法如下(1)如果该属性上没定义谓词,即间隔为[D0MAIN_MIN,D0MAIN_MAX]模式时,因为 任何事件都在区间范围内,所以任何订阅都会得到满足,故而不需为其建立索引与计数,该 子事件的计数值为O ;(2)当间隔为[SX,D0MAIN_MAX]模式时,它对应大于谓词,将SX插入与大于谓词 对应的索引,因为任意事件的右端都在最大值之内,该子事件的右端点不需计数,其计数值 为1 ;(3)当间隔为[D0MAIN_MIN,SY]模式时,它对应小于谓词,将SY插入与小于谓词 对应的索引,因为任意事件的左端都在最小值之内,该子事件的左端点不需计数,其计数值 为1 ;(4)当间隔为[SX,SY]模式时,不论SX与SY是否相等,可以将其分解成[SX, D0MAIN_MAX]和[D0MAIN_MIN,SY]的形式,由(2)和(3)可知,需要将SX插入大于谓词索 引,将SY插入小于谓词索引,该子事件的数值为2,当且仅当分解成的这两个谓词都得到满 足的时候,[SX,SY]模式才会得到满足;步骤2-4:转到步骤1;步骤3 查询与订阅匹配的事件并将订阅插入订阅索引;步骤3-1 查询事件索引分解订阅的每一个属性,将之变成和属性对应的子订阅 的集合;对每一个子订阅,查询步骤2-3建立的事件索引,检查与之匹配的子事件,并对与 匹配出的子事件对应的事件匹配计数器SCoimter进行计数,以便将来比对事件是否得到 满足时使用,假定到达的事件为[EX,EY],所对应的索引与计数操作方法如下(1)用EY查询所对应属性的小于谓词的索引,查到第一个小于等于EY叶子节点 后,利用B+Tree叶子节点的有序链表,对索引的叶子链表进行扫描,扫描的方向是从大到 小,对每一个扫描到的谓词对应的事件进行匹配计数,计数值为1 ;(2)用EX查询所对应属性的大于谓词的索引,查到第一个大于等于叶子节点后, 利用B+Tree叶子节点的有序链表,对索引的叶子链表进行扫描,扫描的方向是从小到大, 对每一个扫描到的谓词对应的订阅进行事件计数,计数值为1 ;步骤3-2 输出匹配的事件,检查步骤3-1所查到的每个订阅相关联的索引表的 情况,如果索引表内的每个事件的预统计的计数值PCoimter与其匹配的事件匹配计数器 SCoimter相等,则此订阅使该事件得到了满足,系统将该事件输出并提交给用户;
步骤3-3 将订阅插入订阅索引,分解订阅的每一个属性,将之变成和属性对应的 子订阅的集合,根据子订阅对应的间隔的类型,将其插入对应的索引同时对该子订阅计数, 该订阅的计数是每个子订阅的计数值的和,即预统计计数PCoimter,每一属性有两个索引, 一个用于索引与大于谓词对应的间隔,另一个索引与小于谓词对应的索引,索引的数据结 构为B+Tree,假定该属性的域值为[D0MAIN_MIN,D0MAIN_MAX],对索引的插入与对每个子 订阅的计数的具体操作方法如下(1)如果该属性上没定义谓词,即间隔为[D0MAIN_MIN,D0MAIN_MAX]模式时,因为 任何事件都在区间范围内,所以任何事件都会得到满足,故而不需为其建立索引与计数,该 子订阅的计数值为0 ;(2)当间隔为[SX,D0MAIN_MAX]模式时,它对应大于谓词,将SX插入与大于谓词 对应的索引,因为任意事件的右端都在最大值之内,该子订阅的右端点不需计数,其计数值 为1 ;(3)当间隔为[D0MAIN_MIN,SY]模式时,它对应小于谓词,将SY插入与小于谓词 对应的索引,因为任意事件的左端都在最小值之内,该子订阅的左端点不需计数,其计数值 为1 ;(4)当间隔为[SX,SY]模式时,不论SX与SY是否相等,可以将其分解成[SX, D0MAIN_MAX]和[D0MAIN_MIN, SY]的形式,由步骤3_3的(2)和(3)可知,需要将SX插入 大于谓词索引,将SY插入小于谓词索引,该子订阅的数值为2,当且仅当分解成的这两个谓 词都得到满足的时候,[SX,SY]模式才会得到满足;步骤3-4:转到步骤1。本发明的优点本发明方法与传统的Counting方法不同,1)在事件与订阅匹配的 时候,本发明的查询方式是范围查询而不是点查询,点查询可以被看做特殊的范围查询,因 此本发明既支持传统的发布订阅的匹配,又支持对称的发布订阅系统的匹配;2)在建立订 阅谓词索引时,本发明把相等的谓词也存储成B+树的形式,把相等的谓词看作两个不等谓 词的合取,相等谓词被分解为大于与小于谓词,在建索引时,分别向对应的大于谓词索引树 和小于谓词索引树插入这个结点,并把这两个谓词作为计数条件,这样使系统的数据结构 简单,更易于实现;3)本发明支持对称的发布订阅匹配,与基于高维的匹配方法相比,针对 不同的数据规模、谓词比例、数据分布及选择度;本发明的匹配性能与动态维护性能具有良 好稳定性有良好的扩展性。


图1为本发明一种基于复数单维索引的对称发布订阅系统匹配方法对称发布订 阅的示例框图;图2为本发明一种基于复数单维索引的对称发布订阅系统匹配方法谓词与间隔 映射示意图;图3为本发明一种基于复数单维索引的对称发布订阅系统匹配方法子订阅的匹 配示意图;图4为本发明一种基于复数单维索引的对称发布订阅系统匹配方法流程图;图5为本发明一种基于复数单维索引的对称发布订阅系统匹配方法所建立的订阅索引及相应的预统计计数示意图;图6(1) 图6(4),为本发明一种基于复数单维索引的对称发布订阅系统匹配方 法实施例建立的订阅索引树示意图;图7为本发明一种基于复数单维索引的对称发布订阅系统匹配方法谓词与订阅 的对应关系示意图;图8(0) 图8(4)为本发明一种基于复数单维索引的对称发布订阅系统匹配方法 事件匹配订阅示意图;图9为本发明一种基于复数单维索引的对称发布订阅系统匹配方法索引建立时 间比较示意图;图10为本发明一种基于复数单维索引的对称发布订阅系统匹配方法不同维数的 时间比较示意图;图11为本发明一种基于复数单维索引的对称发布订阅系统匹配方法等于谓词不 同比例的时间示意图。
具体实施例方式下面结合附图和实施例对本发明进行进一步详细说明。本发明的一个实施例,一个求人与求职系统中,这里所述的求人信息称为事件,求 职信息称为订阅,本实施例采用下面的4个对称发布订阅数据,其中每个数据有2个属性, 数据第一个属性为“工资”,取值范围为
;数据第二属性为“年龄”,取值范围为 W,150],所述4个对称发布订阅数据的内容如下订阅1 :{工资=1000,20 <=年龄<=32}订阅2 :{工资>=200,年龄<=60}订阅3 {200 < =工资<=600,NULL}事件1 {800 < =工资<=1600,年龄=24}假定数据到达顺序为订阅1、订阅2、订阅3、事件1,如图1所示,图1中还显示了 当事件ι提交后,系统给出匹配结果,其结果为订阅1与订阅2 ;图2和图3为本发明对称发布订阅系统的匹配模型原理示意图,其中,图2为谓词 与间隔映射示例图,其中,Sl =A <= X <= B,S2 =X <= B,S3 :X >= A, S4 =X = A,S1、S2、 S3与S4代表不同类型的谓词,Min、MaX、A、B分别表示与谓词对应属性的最大值、最小值、间 隔的起点与终点;谓词与间隔是一一对应相互转换,Sl表示区间[A,B],S2表示[Min, B], S3 表示[A, Max],S4 表示[A, A];图3为子订阅的匹配示意图,列出了事件与订阅匹配即间隔覆盖的所有可能性, 与订阅S匹配的事件是E1、E2、E3与E6,不匹配的是E4与E5 ;本实施例一种基于复数单维索引的对称发布订阅系统匹配方法,流程图如图4所 示,“系统初始化”的主要功能是创建与初始化匹配中所用的索引以及保存计数器值的数据 结构,初始化后,索引内容为空,计数器的值为0,总执行过程包括以下步骤(1)当订阅1输入,基于复数单维索引的对称发布订阅系统匹配方法执行步骤如 下步骤1 订阅1输入,执行步骤3 ;
步骤2 查询与事件匹配的订阅并将事件插入事件索引;步骤3 查询与订阅匹配的事件并将订阅插入订阅索引;步骤3-1 查询事件索引此时事件索引为空,无可查询索引,执行步骤3-2 ;步骤3-2 输出匹配的事件,由于步骤3-1的事件索引为空,故无匹配事件输出,执 行步骤3-3 ;步骤3-3 插入订阅索弓丨,方法为订阅1 用间隔表示为订阅 1 :{[1000,1000],[20,32]};对索引的插入与对每个子订阅的计数采用方法(4),则订阅1的谓词表示可以等 价转换为订阅1 {P1 工资<=1000,P2 工资>=1000,P3 年龄>=20,P4 年龄< = 32},其预统计计数PCOunterl = 4 ;同时将1000及Pl插入属性‘工资,的< =谓词的B+Tree 索引,将1000及P2插入属性‘工资,的> =谓词的B+Tree索引,将20及P3插入属性‘年 龄,的> =谓词的B+Tree索引,将32及P4插入属性‘年龄,的< =谓词的B+Tree索引,执 行步骤3-4 ;步骤3-4 转入步骤1 ;(2)当订阅2与订阅3输入时,所对应情况与订阅1相同,主要是步骤3-3插入订 阅索引过程有所不同订阅2与订阅3的间隔表示为订阅2 {[200,10000],
}订阅3 {[200,600],
}进一步根据步骤3-3中的⑵(3),订阅2的谓词表示可以等价转换为订阅2 :{P5 工资>=200,P6 年龄<=60},其预统计计数Pcounter2 = 2 ;同时 将200及P5插入属性‘工资,的> =谓词的B+Tree索引,将60及P6插入属性‘年龄,< = 谓词的B+Tree索引;根据步骤3-3中的⑴(4),订阅3的谓词表示可以等价转换为订阅3 :{P5 工资>=200,P7 工资<=600},其预统计计数Pcounter = 2 ;同时 将600及P7插入属性‘工资,的< =谓词的B+Tree索引;P5在上一步已经被插入索引,在 谓词与订阅对应关系表中的P5中插入订阅3 ;当订阅1、订阅2与订阅3输入后,系统所建立的订阅索弓丨,订阅及相应的预统计 计数Pcoimter及建立后的订阅索引树,如图5,图6,图7所示,图7还显示了谓词与订阅的 对应关系,当事件输入时查找匹配的订阅,其中P1、P2、P3、P4、P5、P6及P7代表上述的子谓 词;最后执行步骤3-4 ;(3)用户提交的信息数据为事件1时,基于复数单维索引的对称发布订阅系统匹 配方法,执行步骤如下步骤1 当事件1输入时,步骤1得到事件1的数据,事件1的间隔表示为S4 = {[800,1600], [24,24]},输入数据类型为事件,所以转入步骤2 ;步骤2 查询与事件匹配的订阅并将事件插入事件索引步骤2-1 查询订阅索引此时,订阅1、订阅2及订阅3已经存在于订阅索引中,检查与之匹配的子订阅,并对与匹配出的子订阅对应的订阅匹配计数器SCoimter进行计数, 如图8(0) 图8(4)所示,其中,图8(0)是计数器的初始状态,假定EX与EY代表间隔的起 占与錄占.对于属性‘工资,,根据步骤2-1中的(1),EX = 800,EY = 1600,用EY = 1600查 询属性‘工资’的< =谓词的B+Tree索引,查询结果是P2、P5,根据图7的谓词与订阅的对 应关系,订阅1、订阅2及订阅3的匹配计数器各加1,结果如图8(1)所示;根据步骤2-1中的(2),用EX = 800查询属性‘工资,的< =谓词的B+Tree索 引,查询结果是P1,根据图7的谓词与订阅的对应关系,订阅1的匹配计数器加1,结果如图 8⑵所示;对于属性‘年龄,,EX = 24,EY = 24,在查询升序扫描‘年龄,的< =谓词的B+Tree 时,结果为P4,P6,所以订阅1,订阅2的匹配计数器各加1,结果如图8(3),在查询扫描‘年 龄’的> =谓词的B+Tree索引时,结果为P3,订阅1的匹配计数器增1,执行完步骤2_2后 计数状态入图8(4)所示,执行步骤2-2 ;步骤2-2 输出匹配的订阅,因为订阅1与订阅2的预统计数器与匹配计数器的值 相等,所以订阅1与订阅2是事件1的匹配结果,系统输出订阅1与订阅2,如图1中求职匹 配结果所示,执行步骤2-3;步骤2-3 将此事件插入事件索引,其过程与上述(1) (2)步骤3-3建立订阅索引 的过程相似,再此不再赘述。本实施例的时空间复杂度所有的订阅都被分级成子订阅保存在索引里,索引的 数据结构为B+Tree,所以本实施例的空间复杂度为0(n),在匹配过程中,需要扫描索引每 一个属性的大于谓词的B+Tree与小于谓词的B+Tree的叶子链表,因此本实施例的匹配时 间复杂度为0 (n),索引的插入与删除代价是0 (log (n))。硬件平台为HP DX2708MT/CPU Intel Core 263001. 86GHz、内存 2GB、硬盘 80GB 7200rpm ;在Debian GNU linux 4. 0的系统上进行了模拟实验,所有程序用C++实现;实验 的结果如图9-11所示图9、图10与图11分别显示维数对匹配性能的影响、数据分布对配匹性能的影响 及索引性能的插入时间变化,在比对实验中,数据分布Zipf与Uniform有两种,多维索引为 UB-Tree与R*tree,Counting代表本发明,UB-Tree与R*tree代表多维索引,从图9可以看 出在订阅索引建立时,与R*Tree相比,UB-tree与本发明具有很好的动态维护性能,发布订 阅系统的数据是动态的插入与删除的,系统必须要有良好的动态维护性能;从图10与图11 可以看出,与UB-tree相比,本发明的匹配性能随着维数的变化线性增长,对不同的数据分 布具有稳定性。
权利要求
1.一种基于复数单维索引的对称发布订阅系统匹配方法,其特征在于包括以下步骤步骤1 系统接收用户提交的数据,所述数据包含用户的要求与用户自身的信息,以数 值形式表示用户分为两类,系统任选一类用户提交的信息数据作为订阅,则另一类用户提 交的信息数据作为事件;当用户提交的信息数据为事件时执行步骤2,当用户提交的信息 数据为订阅时执行步骤3;步骤2 查询与事件匹配的订阅并将事件插入事件索引,执行步骤1 ;步骤3 查询与订阅匹配的事件并将订阅插入订阅索引,执行步骤1。
2.根据权利要求1所述的一种基于复数单维索引的对称发布订阅系统匹配方法,其特 征在于步骤2所述的查询与事件匹配的订阅并将事件插入事件索引,包括以下步骤步骤2-1 查询订阅索引,方法为分解事件的每一个属性,将之变成和属性对应的子 事件的集合,对每一个子事件,查询步骤3-3建立的订阅索引,检查与之匹配的子订阅,并 对与匹配出的子订阅对应的订阅匹配计数器SCoimter进行计数,以便将来比对订阅是否 得到满足时使用,假定到达的事件为[EX,EY],其中,EX、EY分别表示间隔的起点与终点的 数值,所对应的索引与计数操作方法如下(1)用EY查询所对应属性的小于谓词的索引查到第一个小于等于EY叶子节点后,利 用B+Tree叶子节点的有序链表,对索引的叶子链表进行扫描,扫描的方向是从大到小,对 每一个扫描到的谓词对应的订阅进行匹配计数,计数值为1 ;(2)用EX查询所对应属性的大于谓词的索引查到第一个大于等于叶子节点后,利用 B+Tree叶子节点的有序链表,对索引的叶子链表进行扫描,扫描的方向是从小到大,对每一 个扫描到的谓词对应的订阅进行匹配计数,计数值为1 ;步骤2-2 输出匹配的订阅检查步骤2-1所查到的每个订阅相关联的索引表的情 况,如果索引表内的每个订阅的预统计的计数值PCoimter与其匹配的订阅匹配计数器 Scoimter相等,则此事件使该订阅得到了满足,系统将该订阅输出并提交给用户;步骤2-3 将此事件插入事件索引分解事件的每一个属性,将之变成和属性对应的子 事件的集合,根据子事件对应的间隔的类型,将其插入对应的索引同时对该子事件计数,该 事件的计数是每个子事件的计数值的和,即预统计计数PCoimter,每一属性有两个索引,一 个用于索引与大于谓词对应的间隔,另一个索引与小于谓词对应的索引,索引的数据结构 为 B+Tree ;假定该属性的域值为[DOMAIN_MIN,DOMAIN_MAX],DOMAIN_MIN 与 DOMAIN_MAX 为 该属性的最小值与最大值,下文所用的SX与SY分别为间隔的起点值与终点值,对索引的插 入与对每个子订阅的计数的具体操作方法如下(1)如果该属性上没定义谓词,即间隔为[DOMAIN_MIN,DOMAIN_MAX]模式时,因为任何 事件都在区间范围内,所以任何订阅都会得到满足,故而不需为其建立索引与计数,该子事 件的计数值为O ;(2)当间隔为[SX,DOMAIN_MAX]模式时,它对应大于谓词,将SX插入与大于谓词对应的 索引,因为任意事件的右端都在最大值之内,该子事件的右端点不需计数,其计数值为1 ;(3)当间隔为[DOMAIN_MIN,SY]模式时,它对应小于谓词,将SY插入与小于谓词对应的 索引,因为任意事件的左端都在最小值之内,该子事件的左端点不需计数,其计数值为1 ;(4)当间隔为[SX,SY]模式时,不论SX与SY是否相等,可以将其分解成[SX,D0MAIN_MAX]和[D0MAIN_MIN,SY]的形式,由⑵和(3)可知,需要将SX插入大于谓词索引,将SY 插入小于谓词索引,该子事件的数值为2,当且仅当分解成的这两个谓词都得到满足的时 候,[SX,SY]模式才会得到满足。
3.根据权利要求1所述的一种基于复数单维索引的对称发布订阅系统匹配方法,其特 征在于步骤3所述的查询与订阅匹配的事件并将订阅插入订阅索引,包括以下步骤步骤3-1 查询事件索引分解订阅的每一个属性,将之变成和属性对应的子订阅的集 合;对每一个子订阅,查询步骤2-3建立的事件索引,检查与之匹配的子事件,并对与匹配 出的子事件对应的事件匹配计数器SCoimter进行计数,以便将来比对事件是否得到满足 时使用,假定到达的事件为[EX,EY],所对应的索引与计数操作方法如下(1)用EY查询所对应属性的小于谓词的索引,查到第一个小于等于EY叶子节点后,利 用B+Tree叶子节点的有序链表,对索引的叶子链表进行扫描,扫描的方向是从大到小,对 每一个扫描到的谓词对应的事件进行匹配计数,计数值为1 ;(2)用EX查询所对应属性的大于谓词的索引,查到第一个大于等于叶子节点后,利用 B+Tree叶子节点的有序链表,对索引的叶子链表进行扫描,扫描的方向是从小到大,对每一 个扫描到的谓词对应的订阅进行事件计数,计数值为1 ;步骤3-2:输出匹配的事件,检查步骤3-1所查到的每个订阅相关联的索引表的情 况,如果索引表内的每个事件的预统计的计数值PCoimter与其匹配的事件匹配计数器 SCounter相等,则此订阅使该事件得到了满足,系统将该事件输出并提交给用户;步骤3-3 将订阅插入订阅索引,分解订阅的每一个属性,将之变成和属性对应的子订 阅的集合,根据子订阅对应的间隔的类型,将其插入对应的索引同时对该子订阅计数,该订 阅的计数是每个子订阅的计数值的和,即预统计计数PCoimter,每一属性有两个索引,一个 用于索引与大于谓词对应的间隔,另一个索引与小于谓词对应的索弓丨,索引的数据结构为 B+Tree,假定该属性的域值为[DOMAIN_MIN,DOMAIN_MAX],对索引的插入与对每个子订阅的 计数的具体操作方法如下(1)如果该属性上没定义谓词,即间隔为[DOMAIN_MIN,DOMAIN_MAX]模式时,该子订阅 的计数值为O ;(2)当间隔为[SX,DOMAIN_MAX]模式时,它对应大于谓词,将SX插入与大于谓词对应 的索引,其计数值为1;(3)当间隔为[DOMAIN_MIN,SY]模式时,它对应小于谓词,将SY插入与小于谓词对应 的索引,其计数值为1;(4)当间隔为[SX,SY]模式时,不论SX与SY是否相等,可以将其分解成[SX,D0MAIN_ MAX]和[DOMAIN_MIN,SY]的形式,由步骤3_3的(2)和(3)可知,需要将SX插入大于谓词 索引,将SY插入小于谓词索引,该子订阅的数值为2,当且仅当分解成的这两个谓词都得到 满足的时候,[SX,SY]模式才会得到满足。
全文摘要
一种基于复数单维索引的对称发布订阅系统匹配方法,属于数据库领域,方法如下系统接收用户提交的数据;查询与事件匹配的订阅并将事件插入事件索引;查询与订阅匹配的事件并将订阅插入订阅索引;本发明方法1)在事件与订阅匹配的时候,本发明的查询方式是范围查询而不是点查询;2)在建立订阅谓词索引时,本发明把相等的谓词也存储成B+树的形式,把相等的谓词看作两个不等谓词的合取,相等谓词被分解为大于与小于谓词,在建索引时,分别向对应的大于谓词索引树和小于谓词索引树插入这个结点,并把这两个谓词作为计数条件,这样使系统的数据结构简单,更易于实现;本发明的匹配性能与动态维护性能具有良好稳定性有良好的扩展性。
文档编号G06F17/30GK102004798SQ201010606649
公开日2011年4月6日 申请日期2010年12月27日 优先权日2010年12月27日
发明者信俊昌, 王斌, 王波涛, 王超 申请人:东北大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1