对查询、规则和预订进行索引的系统和方法

文档序号:6429363阅读:99来源:国知局
专利名称:对查询、规则和预订进行索引的系统和方法
技术领域
本发明公开一种对连续查询、规则、简档(profile)和预订(subscription)进行索引的方法,这里连续查询、规则、简档或预订可以包含至少一个区间谓词(interval predicate)。具体地说,公开一种快速识别和给定事件、条件或出版物匹配的查询、规则、简档和预订的区间谓词索引方法。
背景技术
参考附图中图解说明,并在下面的描述中详细说明的非限制性实施例,更充分地解释本发明及其各个特征和优点细节。应注意附图中图解说明的特征不必按比例绘制。众所周知的组件和处理技术的说明被省略,以便不必要地使本发明模糊不清。这里使用的例子只是意图便于理解实践本发明的方式,此外使本领域的技术人员能够实践本发明。因此,这些例子不应被理解成对本发明范围的限制。
随着万维网(WWW)的出现,大规模分布式环境中的基于内容的出版/预订(pub/sub)系统,连续查询,基于简档的应用,基于规则的监视系统,和其它信息散布服务已成为可行,并得到普及。这种系统和应用的用户通过Web,能够容易地向提供商提出或预订服务。这些预订,连续查询,简档和规则通常被表示成关于一组属性的谓词(predicate)。每个谓词涉及一种属性,一个运算符和一个值。谓词代表用户表述的条件,规范或约束。谓词被用于滤除大量的输入事件,条件或出版物,从而只把满足用户兴趣或规范的那些事件,条件或出版物通知用户。
支持大规模连续查询,基于内容的pub/sub,或者基于简档的应用的最关键部分之一是对照谓词,进行事件的快速匹配。短时间内能够产生大量的事件。必须对照大量的谓词,可能是几十万或者甚至数百万的谓词匹配每个事件。从而,需要一种有效的事件匹配系统。通常,需要基于主存储器的谓词索引。这种索引必须支持谓词的动态插入和删除,因为客户兴趣/约束被间歇地加入系统中或者从系统中删除。必须使搜索复杂性和存储成本降至最小。此外,谓词可包含非平等子句(non-equality clause),例如区间(interval)。和平等谓词不同,面临动态插入和删除,区间谓词特别难以索引。
区间谓词索引被用于有效地回答下述问题“覆盖数据点的集合Q={I1,I2,…,In}中的谓词区间是什么”。这里,I1,I2,…,In是由查询,规则,简档或预订指定的谓词区间,例如[4,5],[2,19],[24,230]或[-,8]。这些谓词区间代表用户感兴趣的数据值的范围。问题是通过保持关于查询,规则或预订的有效区间索引,有效地找出指定数据满足或匹配的所有查询或规则。在区间索引领域中存在一些系统。但是,它们大部分都不适用于大规模动态环境中事件的快速匹配。段树和区间树(H.Samet,Design and Analysis of Spatial Data Structure,Addison-Wesley,1990)通常在静态环境中作用情况良好,但是当必须动态增加或删除区间时就不能胜任。最初用于处理空间对象,例如矩形的R-树(A.Guttman,“R-treesA dynamic index structure forspatial searching”,Proceedings of the ACM SIGMOD,1984)可被用于索引区间。但是,当区间之间存在严重的重叠时,搜索时间会快速退步。IBS-树(E.Hanson等,“A predicate matching algorithm fordatabase rule systems”,Proceedings of the ACM SIGMOD,1990)和IS-列表(E.Hanson等,“Selection predicate indexing for activedatabases using interval skip lists”,Information Systems,21(3)269-298,1996)被设计用于区间索引。和多数其它动态搜索树一样,搜索时间为O(log(n)),存储成本为O(nlog(n)),这里n是谓词区间的总数。此外,为了获得O(log(n))搜索时间,在插入或删除之后,需要索引结构的复杂“调整”。为了重新平衡索引结构,需要所述调整。索引的调整增大了插入/删除时间复杂性。更重要的是,调整使得实际上难以可靠地实现该算法。从而,需要一种新的更有效的区间索引方法。

发明内容
本发明引入一种称为虚拟构成区间(VCI)的新概念,其中每个谓词区间被分解成一个或多个这样的构成区间。这些VCI严格地覆盖谓词区间。即,被谓词区间覆盖的每个属性值也被至少一个分解的VCI覆盖,反之亦然。每个构成区间具有唯一的ID或区间坐标和一组端点。当在其分解中使用构成区间的谓词区间被加入该系统时,该构成区间被认为是激活的。谓词ID随后被插入与分解的VCI相关的ID列表中。为了简化快速搜索,使用位图矢量来指示覆盖事件值的VCI的激活。挑战(challenge)是找出使谓词分解简单,更重要的是,建立有效位图索引的一组恰当的构成区间。由于每个构成区间只覆盖小范围的属性值,因此本发明还利用位图剪辑(bitmap clipping)来剪除不必要的位图存储。为了简化位图剪辑,本发明引入覆盖段(coveringsegment)概念。覆盖段之外的位位置(bit position)被删除。
本发明支持有效连续查询/规则监视,使大量查询、规则或预订的快速匹配成为可能。本发明在搜索时间复杂性和保持查询/规则索引的存储要求方面都很高效。插入和删除也非常高效。找出覆盖某一数据点的全部谓词区间的搜索时间复杂性为O(1),和迄今为止保持的谓词区间的数目无关。存储要求为O(n),它正比于迄今为止保持的谓词区间的数目。插入时间也为O(1)。


图1是可使用本发明的分布式系统环境的方框图。
图2是实现本发明的系统的方框图。
图3是表示在存在一个或多个区间谓词的情况下,实现事件匹配的问题的例子。
图4是一组简单构成区间(SCI)的例子。
图5是实现谓词插入处理器的流程图。
图6是实现事件匹配处理器的流程图。
图7是谓词删除处理器的流程图。
图8是表示利用简单构成区间的VCI索引的例子。
图9表示对数构成区间(LCI)的例子。
具体实施例方式
本发明涉及有效查询/规则索引,这里每个查询或规则可包含一个或多个区间谓词。具体地说,公开一种高效的区间谓词索引方案。这种区间谓词索引被用于有效地回答下述问题“覆盖数据点的集合Q={I1,I2,…,In}中的谓词区间是什么”。这里,I1,I2,…,In是由查询或规则指定的谓词区间,例如[4,5],(2,19),(24,230)或(-,*)。这些谓词区间代表用户感兴趣的数据值的范围。问题是通过保持关于查询或规则的高效索引,高效地找出指定数据满足或匹配的所有查询或规则。本发明支持高效的连续查询/规则监视,使大量查询或规则的实时监视成为可能。在搜索时间复杂性和保持查询/规则索引的存储要求方面,本发明都是高效的。用于找出覆盖某一数据点的所有谓词区间的搜索时间复杂性为O(1),和迄今为止保持的谓词区间的数目无关。存储要求为O(n),它正比于迄今为止保持的谓词区间的数目。
图1是分布式系统环境的方框图,其中各种服务提供者104、105,数据源102、103和客户机100、101通过通信网络106相互连接。通信网络106可以是因特网或无线网络。可向网络上的客户机提供各种服务,例如pub/sub,连续查询监视,事件监视或者规则监视。服务提供者采用本优选实施例中公开的发明监视并管理分布式环境中,来自一个多个数据源102、103的数据或事件。数据源可以是温度传感器,业务量传感器,股票价格数据流,零售商店销售额数据流等等。客户机100、101可以是能够接收信号的任意设备,例如个人计算机,蜂窝电话机,传统电话机或者数字个人助理。
图2是实现在目前优选的实施例中公开的发明的系统的方框图。该系统是计算机系统230,计算机系统230至少包括一个CPU 233,一个磁盘232,和一个主存储器230。包含在磁盘232和主存储器231中的是各种软件程序,所述各种软件程序之一实现本发明的逻辑。实现公开的区间索引方法210的程序至少包含谓词插入处理器211(图5中进一步说明),事件匹配处理器212(图6中进一步说明),谓词删除处理器213(图7中进一步说明),和用户帐户管理器214。用户帐户管理器214保持用户预订和其它帐户管理任务。区间索引方法的主要逻辑包括谓词插入处理器211,谓词删除处理器212和事件匹配处理器213,后面将更详细地对它们进行说明。系统的输入是用户兴趣201和事件值202。用预订,连续查询和规则中的区间谓词的形式,表述用户兴趣。事件值是来自传感器的读数或者出版者的内容。系统的输出203是匹配的预订,查询或规则。
图3是表示在存在一个或多个区间谓词的情况下,执行事件匹配的问题的例子。从左端到右端水平绘制谓词区间311-319。通过在事件值处画一条垂直线,能够解决事件匹配问题。例如,在ai和aj画两条垂直线301、302。匹配的区间是与垂直线相交的那些区间。例如,{q1,q3,q7,q9}是与ai匹配的一组谓词区间;{q2,q4,q6,q8,q9}是与ai匹配的一组谓词区间。
很快识别出与事件值的垂直线相交的那些谓词区间极具挑战性。在没有区间索引的帮助的情况下,必须通过线性搜索,进行事件匹配。即,把每个事件和全部谓词区间进行比较。这是慢到不能接受的过程,尤其是当谓词区间的数目较大时更是如此。
公开的区间索引方法是按照成本低廉的方式,实现图3中所示的思想的一种尝试。为了简单起见,假定谓词区间的端点是整数。不过,属性可以是整数或非整数数据类型。本领域的技术人员会认识到本发明可把非整数端点伸展到最近的整数。在某一属性的整数值处,预先定义一组虚拟构成区间,VCI。每个VCI具有唯一的ID或者说坐标,和特定的端点。这些VCI被用于分解谓词区间。分解的VCI严格覆盖谓词区间。即,谓词区间覆盖的任意属性值也被至少一个分解的VCI覆盖,反之亦然。
对于每个整数值,本发明使用位图矢量指示覆盖该值的特定VCI的激活。每个位图矢量包含总共N=RL位,这里R是该属性的整数值的总数。与每个VCI相关,谓词ID列表被保持。本发明使用报头指针的阵列来保持这样的ID列表。
图4是一组简单构成区间(SCI)的例子。在SCI下,关于每个整数值预先定义L个VCI。这些VCI具有从1到L的连续长度。VCIc[a,b]的ID(这里c是ID,[a,b]是间隔)可被计算为c=(a-a0)L+(b-a)-1。图4中,L=4,并且对于间隔[a0,a0+1],ID开始于0。存在四个其左端点是相同整数值的VCI。例如,VCI 0-3(401-403)都开始于a0,但是它们的右端点不同。
图5是实现谓词插入处理器(图2中的211)的流程图。为了插入谓词区间p[x,y](步骤500),本发明首先检查该谓词区间是否大于最大的虚拟构成区间,y-x>L(步骤501)。如果否,那么不需要任何分解,本发明简单地找出和谓词区间相同的VCI的ID(步骤505)。如果需要分解,那么本发明反复把谓词区间分解成从x开始的长度L的 个区间(步骤502)。最后的剩余区间是[x+mL,y]。在该分解之后,计算每个分解的VCI的ID(步骤503和步骤504)。最后,对于每个分解的VCIcj,如果Hcj为空,那么本发明设置对应的位图,并把谓词ID插入对应的ID列表中(步骤506)。注意当设置cj的位图时,本发明需要把位图bi,cj设置成1(a≤i≤b),这里ci是[a,b]的ID。这里,bi,cj意味着位图矢量Bi的位位置。
图6是实现事件匹配处理器(图2中的212)的流程图。搜索起始于事件值s(步骤600)。本发明把搜索结果M初始化为空,并把t初始化为0(步骤601)。本发明随后检查t是否小于N,这里N是VCI的总数(步骤602)。如果否,那么搜索结束,并返回结果(步骤603)。否则,本发明进一步检查bs,t是否等于1(步骤604)。如果是,那么本发明得到匹配的VCI,其相关的ID列表将和M组合(步骤605)。之后,本发明处理下一t(步骤606),并进入步骤602。
图7是谓词删除处理器(图2中的213)的流程图。除了步骤706之后,它基本上和插入处理器相同。步骤701-705和图5中的步骤501-505完全相同,因为这些步骤代表分解过程。在分解之后,本发明着手从ID列表删除谓词ID,并且如果在删除之后,ID列表变成空的,那么重置位图(步骤706)。
图8是表示利用简单构成区间(SCI)的VCI索引的例子。两个谓词q[a0,a0+2](801)和p[a0,a0+6](802)被插入。本发明使用图4中所示的例证SCI进行分解。每个位图矢量具有28位,本发明表示7个位图矢量810-816。28个指针报头的阵列(820)被用于管理ID列表821-823。由于L=4,因此对于谓词q[a0,a0+2],不需要分解。从而,ID被插入H1(821),b0,1,b1,1,b2,1被设置成1。另一方面,p[a0,a0+6]首先被分解成[a0,a0+4]和[a0+4,a0+6]。[a0,a0+4]的ID为3,[a0+4,a0+6]的ID为17。从而,其ID被插入两个ID列表822-823中。对应的位位置也被设置成1。
从而,本发明提供一种保持并利用查询索引的方法(和服务/系统)。如上所述,查询索引内的查询具有谓词区间(例如311-319和801-802)。通过定义多组虚拟构成区间(400-403,404-407,408-411等),并把每个谓词区间801-802插入至少一个所述多组虚拟构成区间中,开始本发明。更具体地说,谓词区间801被插入图4中所示的虚拟构成区间的第一组(400-403)的虚拟构成区间401中。虚拟构成区间401对应于图8中的位图矢量810-812的位位置b0,1,b1,1,b2,1。本发明只定义介于谓词区间的最小和最大可能属性值之间的虚拟构成区间。
所述多组虚拟构成区间(例如400-403)中的每一组适合于保持多个谓词区间。于是,当虚拟构成区间401保持谓词区间801的时候,虚拟构成区间403(它和虚拟构成区间401在相同的一组虚拟构成区间中)保持谓词区间802。位图矢量810-814(图8)中的位位置b0,3,b1,3,b2,3,b3,3,b4,3对应于图4中的虚拟构成区间403。从而,谓词区间(801、802)的事件值(a0,a0+1,a0+2等)与虚拟构成区间(401、403)的相同事件值对准,因为每个位图矢量810-816唯一地与单个事件值相关。必须遵守谓词区间只被插入具有对应事件值的构成区间中。从而,多个谓词区间(801、802)的相同事件值(例如,a0+1)被插入不同虚拟构成区间(401、403)内的相同事件值(例如位图矢量801中的a0+1)中,并且只不过存在于指定位图矢量(811)内不同的位位置(1、3)。如前所述,利用谓词ID位图矢量820,保持多组虚拟构成区间内的谓词区间的位置。
所述多组虚拟构成区间中的每一组覆盖唯一的一组事件值。例如,第一组虚拟构成区间(400-403)覆盖事件值a0到a0+4,而第二组虚拟构成区间(404-407)覆盖事件值a0+1到a0+5。一组中的所有虚拟构成区间(400-403)开始于相同的属性值(a0),并终止于不同的属性值(a0+1到a0+4)。注意所述多组虚拟构成区间具有统一的(uniform)长度(图4),而谓词区间具有不统一的长度(图3)。换句话说,查询索引内的所有多组虚拟构成区间具有由不同大小的虚拟构成区间形成的相同图案;在每个多组虚拟构成区间内,第一个虚拟构成区间的长度为一个区间,第二个虚拟构成区间的长度为两个区间,第三个虚拟构成区间的长度为三个区间。
如果谓词区间足够小,那么本发明把谓词区间插入相同大小的虚拟构成区间内,如同把谓词801插入虚拟构成区间401中所示。但是,如果谓词区间大于任意虚拟构成区间,那么本发明首先把谓词区间的初始部分插入最大的可用虚拟构成区间中。如果需要,许多最大尺寸的虚拟构成区间可被专用于长的谓词区间。谓词区间的过量长度被称为剩余谓词区间。本发明把剩余谓词区间插入相同长度的虚拟构成区间中。从而,谓词区间802的最后两个事件值被放入相似长度的虚拟构成区间(如果重复图4中的循环,那么它应是虚拟构成区间417)中。
可定义不同的多组VCI。图9表示对数构成区间(LCI)的例子。代替连续长度,本发明使用20,21,…,2k作为区间长度。如果L=4,那么本发明把1、2和4不同的VCI长度用于位于整数值处的一组预定VCI。就对数构成区间来说,VCI的总数是R(log(L)+1),它通常远远小于SCI的总数。
本领域的技术人员会认识到位图矢量中的某些值从不会被使用。这是因为一些VCI从不与事件值的垂直线相交。例如,[3,7]决不会覆盖小于2或大于8的任意事件值。从而,本发明能够从位图矢量中删除某些位位置。事实上,本发明能够识别位图矢量Bi的最小ID和最大ID。对于SCI,最小ID为(j-L)L+L-1,最大ID为iL+L-1。在这两个边界之外的任意位位置可被剪去,从而节省存储成本。
本领域的技术人员还会认识到用户兴趣可由一个以上的谓词子句来规定,一些谓词子句是平等子句,而其它一些谓词子句是非平等子句。本发明中公开的区间索引可被用于索引具有区间谓词和平等谓词的属性。这种情况下,本发明把平等看作长度为0的虚拟构成区间。此外,单独的区间索引可被用于单个属性,以便快速匹配所述单个属性的事件值。通过组合来自单独属性的单个结果,得到最终结果。
本领域的技术人员还会认识到谓词区间可以是开放的。这种情况下,本发明可把两个开放区间看两个特殊的VCI,一个是[bmax,∞),代表右端开放的区间,另一个是(-∞,amin],代表左端开放的区间。小于amin的任意事件值会得出以-∞作为左端点的全部谓词区间。类似地,大于bmax的任意事件值会得出以∞作为右端点的全部谓词区间。
本发明引入一种称为虚拟构成区间的新概念,每个谓词区间被分解成一组这样的构成区间。每个构成区间具有唯一的ID或区间坐标和一组端点。当在其分解中使用构成区间的谓词区间被加入该系统时,该构成区间被认为是激活的。对于每个属性值,位图索引被用于指示覆盖该属性值的任意构成区间的激活。挑战是找出使谓词分解简单,更重要的是,建立高有效位图索引的一组恰当的构成区间。由于每个构成区间只覆盖小范围的属性值,因此利用位图剪辑剪除不必要的位图存储。为了简化位图剪辑,引入了覆盖段概念。覆盖段之外的位位置被删除。
虽然关于优选实施例说明了本发明,不过本领域的技术人员会认识到在附加权利要求的范围内,可对本发明做出各种修改。
权利要求
1.一种保持并使用查询索引的方法,其中所述查询索引内的查询具有谓词区间,所述方法包括定义多组虚拟构成区间;和把每个所述谓词区间插入所述多组所述虚拟构成区间中的至少一组中。
2.按照权利要求1所述的方法,其中所述多组虚拟构成区间中的每一组适合于保持多个谓词区间,并且其中所述多组虚拟构成区间具有统一的长度,和其中所述谓词区间具有不统一的长度。
3.按照权利要求1所述的方法,还包括利用谓词ID位图矢量,保持所述多组虚拟构成区间内的所述谓词区间的位置。
4.按照权利要求1所述的方法,其中定义所述多组虚拟构成区间的所述过程包括在相同的属性值开始一组虚拟构成区间中的所有虚拟构成区间,在不同的属性值结束所述一组虚拟构成区间中的所述虚拟构成区间。
5.按照权利要求1所述的方法,其中所述查询索引内的所有所述多组所述虚拟构成区间具有由不同大小的虚拟构成区间形成的相同图案。
6.按照权利要求1所述的方法,其中把所述谓词区间插入所述虚拟构成区间的所述过程,包括把所述谓词区间插入相同大小的虚拟构成区间中。
7.按照权利要求1所述的方法,其中如果谓词区间大于任意所述虚拟构成区间,那么所述插入过程包括把所述谓词区间的初始部分插入最大的可用虚拟构成区间中,其中所述谓词区间的过量长度包括剩余的谓词区间;和把剩余的谓词区间插入相同长度的虚拟构成区间中。
8.按照权利要求1所述的方法,其中使所述谓词区间的事件值对准所述虚拟构成区间的相同事件值,从而多个谓词区间的相同事件值被插入虚拟构成区间内的相同事件值中。
9.一种保持并使用查询索引的方法,其中所述查询索引内的查询具有谓词区间,所述方法包括定义多组虚拟构成区间;和把每个所述谓词区间插入所述多组所述虚拟构成区间中的至少一组中,其中所述多组虚拟构成区间中的每一组适合于保持多个谓词区间,其中所述多组虚拟构成区间具有统一的长度,和其中所述谓词区间具有不统一的长度。
10.按照权利要求9所述的方法,还包括利用谓词ID位图矢量,保持所述多组虚拟构成区间内的所述谓词区间的位置。
11.按照权利要求9所述的方法,其中定义所述多组虚拟构成区间的所述过程包括在相同的属性值开始一组虚拟构成区间中的所有虚拟构成区间,在不同的属性值结束所述一组虚拟构成区间中的所述虚拟构成区间。
12.按照权利要求9所述的方法,其中所述查询索引内的所有所述多组所述虚拟构成区间具有由不同大小的虚拟构成区间形成的相同图案。
13.按照权利要求9所述的方法,其中把所述谓词区间插入所述虚拟构成区间的所述过程,包括把所述谓词区间插入相同大小的虚拟构成区间中。
14.按照权利要求9所述的方法,其中如果谓词区间大于任意所述虚拟构成区间,那么所述插入过程包括把所述谓词区间的初始部分插入最大的可用虚拟构成区间中,其中所述谓词区间的过量长度包括剩余的谓词区间;和把剩余的谓词区间插入相同长度的虚拟构成区间中。
15.按照权利要求9所述的方法,其中使所述谓词区间的事件值对准所述虚拟构成区间的相同事件值,从而多个谓词区间的相同事件值被插入虚拟构成区间内的相同事件值中。
16.一种保持并使用查询索引的方法,其中所述查询索引内的查询具有谓词区间,所述方法包括定义多组虚拟构成区间;和把每个所述谓词区间插入所述多组所述虚拟构成区间中的至少一组中,其中所述多组虚拟构成区间中的每一组适合于保持多个谓词区间,和其中所述多组虚拟构成区间中的每一组覆盖唯一的一组事件值,并且其中所述谓词值的所述插入包括只把所述谓词区间插入具有对应事件值的所述构成区间中。
17.按照权利要求16所述的方法,还包括利用谓词ID位图矢量,保持所述多组虚拟构成区间内的所述谓词区间的位置。
18.按照权利要求16所述的方法,其中定义所述多组虚拟构成区间的所述过程包括在相同的属性值开始一组虚拟构成区间中的所有虚拟构成区间,在不同的属性值结束所述一组虚拟构成区间中的所述虚拟构成区间。
19.按照权利要求16所述的方法,其中所述查询索引内的所有所述多组所述虚拟构成区间具有由不同大小的虚拟构成区间形成的相同图案。
20.按照权利要求16所述的方法,其中把所述谓词区间插入所述虚拟构成区间的所述过程,包括把所述谓词区间插入相同大小的虚拟构成区间中。
21.按照权利要求16所述的方法,其中如果谓词区间大于任意所述虚拟构成区间,那么所述插入过程包括把所述谓词区间的初始部分插入最大的可用虚拟构成区间中,其中所述谓词区间的过量长度包括剩余的谓词区间;和把剩余的谓词区间插入相同长度的虚拟构成区间中。
22.按照权利要求16所述的方法,其中使所述谓词区间的事件值对准所述虚拟构成区间的相同事件值,从而多个谓词区间的相同事件值被插入虚拟构成区间内的相同事件值中。
23.一种保持并使用查询索引的方法,其中所述查询索引内的查询具有谓词区间,所述方法包括定义多组虚拟构成区间;把每个所述谓词区间插入所述多组所述虚拟构成区间中的至少一组中,其中所述多组虚拟构成区间中的每一组适合于保持多个谓词区间,并且其中所述多组虚拟构成区间中的每一组覆盖唯一的一组事件值,其中所述谓词值的所述插入包括只把所述谓词区间插入具有对应事件值的所述构成区间中,和其中所述定义过程只定义介于所述谓词区间的最小和最大可能属性值之间的虚拟构成区间。
24.按照权利要求23所述的方法,还包括利用谓词ID位图矢量,保持所述多组虚拟构成区间内的所述谓词区间的位置。
25.按照权利要求23所述的方法,其中定义所述多组虚拟构成区间的所述过程包括在相同的属性值开始一组虚拟构成区间中的所有虚拟构成区间,在不同的属性值结束所述一组虚拟构成区间中的所述虚拟构成区间。
26.按照权利要求23所述的方法,其中所述查询索引内的所有所述多组所述虚拟构成区间具有由不同大小的虚拟构成区间形成的相同图案。
27.按照权利要求23所述的方法,其中把所述谓词区间插入所述虚拟构成区间的所述过程,包括把所述谓词区间插入相同大小的虚拟构成区间中。
28.按照权利要求23所述的方法,其中如果谓词区间大于任意所述虚拟构成区间,那么所述插入过程包括把所述谓词区间的初始部分插入最大的可用虚拟构成区间中,其中所述谓词区间的过量长度包括剩余的谓词区间;和把剩余的谓词区间插入相同长度的虚拟构成区间中。
29.按照权利要求23所述的方法,其中使所述谓词区间的事件值对准所述虚拟构成区间的相同事件值,从而多个谓词区间的相同事件值被插入虚拟构成区间内的相同事件值中。
30.一种适合于保持并使用查询索引的服务,其中所述查询索引内的查询具有谓词区间,所述服务定义多组虚拟构成区间;和把每个所述谓词区间插入所述多组所述虚拟构成区间中的至少一组中,其中所述多组虚拟构成区间中的每一组适合于保持多个谓词区间,和其中所述多组虚拟构成区间中的每一组覆盖唯一的一组事件值,并且其中所述谓词值的所述插入包括只把所述谓词区间插入具有对应事件值的所述构成区间中。
31.按照权利要求30所述的服务,还包括利用谓词ID位图矢量,保持所述多组虚拟构成区间内的所述谓词区间的位置。
32.按照权利要求30所述的服务,其中定义所述多组虚拟构成区间的所述过程包括在相同的属性值开始一组虚拟构成区间中的所有虚拟构成区间,在不同的属性值结束所述一组虚拟构成区间中的所述虚拟构成区间。
33.按照权利要求30所述的服务,其中所述查询索引内的所有所述多组所述虚拟构成区间具有由不同大小的虚拟构成区间形成的相同图案。
34.按照权利要求30所述的服务,其中把所述谓词区间插入所述虚拟构成区间的所述过程,包括把所述谓词区间插入相同大小的虚拟构成区间中。
35.按照权利要求30所述的服务,其中如果谓词区间大于任意所述虚拟构成区间,那么所述插入过程包括把所述谓词区间的初始部分插入最大的可用虚拟构成区间中,其中所述谓词区间的过量长度包括剩余的谓词区间;和把剩余的谓词区间插入相同长度的虚拟构成区间中。
36.按照权利要求30所述的服务,其中使所述谓词区间的事件值对准所述虚拟构成区间的相同事件值,从而多个谓词区间的相同事件值被插入虚拟构成区间内的相同事件值中。
37.一种保持并使用查询索引的系统,其中所述查询索引内的查询具有谓词区间,所述系统包括定义多组虚拟构成区间的多个位图矢量;适合于把每个所述谓词区间插入所述多组所述虚拟构成区间中的至少一组中的谓词插入处理器,其中所述多组虚拟构成区间中的每一组适合于保持多个谓词区间,和其中所述多组虚拟构成区间中的每一组覆盖唯一的一组事件值,并且其中所述谓词值的所述插入包括只把所述谓词区间插入具有对应事件值的所述构成区间中。
38.按照权利要求37所述的系统,还包括适合于保持所述多组虚拟构成区间内的所述谓词区间的位置的谓词ID位图矢量。
39.按照权利要求37所述的系统,其中一组虚拟构成区间中的所有虚拟构成区间开始于相同的属性值,并终止于不同的属性值。
40.按照权利要求37所述的系统,其中所有所述多组所述虚拟构成区间具有由不同大小的虚拟构成区间形成的相同图案。
41.按照权利要求37所述的系统,其中所述谓词插入处理器把所述谓词区间插入相同大小的虚拟构成区间中。
42.按照权利要求37所述的系统,其中如果谓词区间大于任意所述虚拟构成区间,那么所述谓词插入处理器把所述谓词区间的初始部分插入最大的可用虚拟构成区间中,其中所述谓词区间的过量长度包括剩余的谓词区间;和把剩余的谓词区间插入相同长度的虚拟构成区间中。
43.按照权利要求37所述的系统,其中使所述谓词区间的事件值对准所述虚拟构成区间的相同事件值,从而多个谓词区间的相同事件值被插入虚拟构成区间内的相同事件值中。
44.一种机器可读的程序存储装置,所述程序存储装置具体包含可由机器执行,从而实现保持并使用查询索引的方法的指令程序,其中所述查询索引内的查询具有谓词区间,所述方法包括定义多组虚拟构成区间;和把每个所述谓词区间插入所述多组所述虚拟构成区间中的至少一组中,其中所述多组虚拟构成区间中的每一组适合于保持多个谓词区间,并且其中所述多组虚拟构成区间具有统一的长度,和其中所述谓词区间具有不统一的长度。
45.按照权利要求44所述的程序存储装置,其中所述方法还包括利用谓词ID位图矢量,保持所述多组虚拟构成区间内的所述谓词区间的位置。
46.按照权利要求44所述的程序存储装置,其中定义所述多组虚拟构成区间的所述过程包括在相同的属性值开始一组虚拟构成区间中的所有虚拟构成区间,在不同的属性值结束所述一组虚拟构成区间中的所述虚拟构成区间。
47.按照权利要求44所述的程序存储装置,其中所述查询索引内的所有所述多组所述虚拟构成区间具有由不同大小的虚拟构成区间形成的相同图案。
48.按照权利要求44所述的程序存储装置,其中把所述谓词区间插入所述虚拟构成区间的所述过程,包括把所述谓词区间插入相同大小的虚拟构成区间中。
49.按照权利要求44所述的程序存储装置,其中如果谓词区间大于任意所述虚拟构成区间,那么所述插入过程包括把所述谓词区间的初始部分插入最大的可用虚拟构成区间中,其中所述谓词区间的过量长度包括剩余的谓词区间;和把剩余的谓词区间插入相同长度的虚拟构成区间中。
50.按照权利要求44所述的程序存储装置,其中使所述谓词区间的事件值对准所述虚拟构成区间的相同事件值,从而多个谓词区间的相同事件值被插入虚拟构成区间内的相同事件值中。
全文摘要
本发明引入一种称为虚拟构成区间(VCI)的新概念,每个谓词区间被分解成一个或多个这样的构成区间。这些VCI严格地覆盖谓词区间。即,被谓词区间覆盖的每个属性值也被至少一个分解的VCI覆盖,反之亦然。每个构成区间具有唯一的ID或区间坐标和一组端点。当在其分解中使用构成区间的谓词区间被加入该系统时,该构成区间被认为是激活的。谓词ID随后被插入与分解的VCI相关的ID列表中。为了促进快速搜索,使用位图矢量来指示覆盖事件值的VCI的激活。挑战是找出使谓词分解简单,更重要的是,建立高效位图索引的一组恰当的构成区间。由于每个构成区间只覆盖小范围的属性值,因此本发明还利用位图剪辑来剪除不必要的位图存储。为了简化位图剪辑,本发明引入覆盖段概念。覆盖段之外的位位置被删除。
文档编号G06F7/00GK1604085SQ20041007988
公开日2005年4月6日 申请日期2004年9月23日 优先权日2003年9月29日
发明者陈世魁, 梅志国, 吴坤龙, 俞士纶 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1