6期丁治明等:面向物联网海量传感器采样数据管理的数据库集群系统框架
1185
5.2.1 分布式全局关键字索引及全局关键字查询
为了在I需oT-ClusterDB中支持关键字查询,要建立一个全局关键字B+树索引(GlobalFull -
,),图6给TextKewordB+-TreeGFTKB+-Tree y出了GFTKB+-Tree的结构
.
(是所有包含该关键字的所有元组的标识settuID)p集合.
让我们结合第4.2.4小节中的查询Q1和Q2来在I讨论对全局关键字查询的处理.oT-ClusterDB中,所有的查询均发送给根结点进行处理.当根结点接收到一个关键字查询时,将首先查询GKR-
,从而判断应该进一步查询哪个叶结点的Table;然后,根据对应叶结点的KKSMB+-TreeSMB+-,可以得到一组叶结点的s这些叶结点均TreeiteID,包含被查询的关键字;最后,根结点将查询广播给这些叶结点并行执行,执行结果由根结点汇总并返回给查询用户.各叶结点在执行来自于根结点的关键字查询时,将调用本地的LFTKB+-Tree快速地得到查询结果.
算法1给出了全局关键字查询的处理过程.算法1. 全局关键字查询处理算法.
输入:全局关键字索引 GFTKB+-Tree
关键字查询
输出:查询结果
图6 GFTKB+-Tree的结构
如图6所示,GFTKB-Tree是一个分布式的
索引,采用3层结构,其中:
+
QR
第1层是存放在IoT-ClusterDB根结点中的全,局关键字分区表(GlobalKewordRaneTable yg)GKR-Table.GKR-Table的记录格式为(keR-y
,其中kane,siteID)eRane是关键字值域中的一gyg个区域范围,siteID是与该范围相对应的叶结点的该叶结点中的K标识,SMB+-Tree索引该范围内的关键字.
第2层是一组存放在IoT-ClusterDB各叶结点中的keword到SiteID的映射B+树(kewordto--yy
,)SiteID MainB+-TreeKSMB+-Tree.KSMB+-ppg (),Tree的叶结点记录格式为(keword,setsiteID)y(其中k是所有包含该eword是关键字,setsiteID)y关键字的叶结点的标识的集合.在创建KSMB+-
每个叶结点从自己的本地元组中提取关键Tree时,字,并对每个关键字生成一个(偶keword,siteID)y;对(其中s随后,iteID即为该叶结点自己的标识)该叶结点根据GKR-Table将各个偶对发送给相应的叶结点,这样每个叶结点可以收到一组来自于整个系统中其它各个叶结点的(集keword,siteID)y合,并在此基础上构建KSMB+-Tree.
第3层是一组存放在IoT-ClusterDB叶结点中的本地全文关键字B+树索引(LocalFullext -T++
,)KewordBreeIndexLFTKBree.LFTKB+- -T -TyTree是IoT-NodeDB针对本地数据建立的全文关
键字索引,其叶结点的记录格式为(keword,y(),其中ksettuID)eword是一个关键字,py
;1.keQ)etkey=gy(
+
_();2.ksmbsite=retrievekeGFTKBree.GKRable-T-Ty,__(_);et3.ksmbtree=gtreeksmbsite,KSMB+-Tree_(_);4.ltkbsites=retrievekeksmbtreefy,_)5.FOREACHsiteltkbsitesDO(INPARALLEL ∈ f__();6. ltkbtree=gtreesite,LFTKB+-Treeetf(_);7. tuleids=retrivekeltkbtreepy,f
();8. res=evaluateQ,tuleidsp();9. sendMasterres
10.ENDFOR;
根结点收集各叶结点发来的查询结果并存入R;11.
(12.ReturnR).
在算法1中,函数返回查询Q要检etkeQ)gy(
(()函数根据关键字k索的关键字;retrievekedsey,y在数据结构d并返回相应的结果;s中进行检索,_(函数返回指定叶结点settreesite,treeName)iteg
中的t函reeName索引子树,evaluate(Q,tuleids)p数在tuleids元组集合的基础上执行查询并返回结p
)果,将结果rsendMaster(reses发送给根结点.5.2.2 分布式全局时空索引及全局时空查询处理
物联网系统中的另一类重除了关键字查询之外,要的查询类型是带有时空约束条件的查询,如第4.2.4小节中的查询Q为了支持这类查询,我们需4和Q5.要建立全局时空R树索引(GlobalSatialemoral -Tpp,)由于在IreeGSTR-Tree.oT-ClusterDB中数R-T
据是根据其空间属性进行分布的,因此GSTR-Tree的构建可以得到简化,图7给出了其总体结构.
1186
计 算 机 学 报2012年
从图8可以看出,移动监控对象时空轨迹的变化十分频繁,因为每一次新采样值的到来均会导致向轨迹中插入新的轨迹单元(轨迹单元是轨迹时空如果直曲线中相邻两个采样点构成的一条直线段).接以轨迹单元作为索引记录的基本单位,则索引的更新频率将等同于采样数据插入数据库的频率,从而导致索引更新代价升高.
为了解决上述问题,我们首先将X×Y×T空间划分成粒度较粗的等距格栅.然后,将每个移动监概略化”轨迹,概略化控对象的轨迹映射成对应的“
图7 GSTR-Tree的结构
轨迹单元是原始轨迹所穿过的格栅单元的中心点连线,因此其粒度比原始轨迹要大得多.最后对概略化轨迹单元进行索引并建立GSSTR-Tree.