- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于内存数据库空间索引结构CSR树性能研究
基于内存数据库空间索引结构CSR树性能研究
摘 要:本文在基于磁盘的空间索引R树的数据结构基础上,并提出一种新的空间索引结构――缓存敏感R树(CSR树),并给出了CSR树的实现方案,并进行了代码实现。
关键词:内存数据库 空间索引结构 CSR树 删除算法 查询算法
中图分类号: TP2 文献标识码:A 文章编号:1007-9416(2011)09-0128-01
CSR树(Cache Sensitive R-tree),又称为缓存敏感R树,是一种新型的基于内存数据库的空间索引结构。这种树的设计思路是借鉴CSS树和CSB+树的设计思想,尽量减少节点中的冗余信息,增加节点利用率,使得一次能向缓存加入更多信息,减少缓存适配率。
1、CSR树的节点结构设计
CSR树在节点的设计上借鉴了CSS树以及CSB+树的思想,子节点顺序存储,移除了节点和子节点之间的指针,只保留指向子节点组的头部的指针;考虑到在空间索引中光是移除节点间的指针所带来的缓存敏感化效果并不是很明显,而R树种占节点大部分空间的是最小外包矩形,故对最小外包矩形进行压缩处理,去除了子节点和父节点间重复的边界信息,对最小外包矩形的顶点坐标采取相对于父节点矩形的相对坐标表示,并对其所在的坐标空间进行一定精度的量化,对数据只保存其量化后的值。通过以上一连串的优化和改造,大大增加了CSR树的缓存敏感性能,使其适合内存数据库的应用环境。
CSR树详细的节点结构设计如图1所示,图中所示的是CSR树的节点结构,其中M代表当前结点中对象的个数;CP表示的是指向子结点组的指针,子节点在内存中顺序存放;MBR代表包围这个结点所有子节点对象的最小外包矩形,通过这个位所表示的最小外包矩形的坐标就可以算出子节点的对象经过量化处理后的相对表示坐标;BF位定义为由若干个长度为4比特的比特段组成,这些比特段按节点中对应的子节点对象的顺序排列,每个比特段对应相应位置的记录标志着对应记录的哪几条边储存在结点中,哪些从父结点中继承而来。E位保存了每条记录的顶点信息。当CSR树执行插入或者删除操作时都要进行节点定位,这就需要得到每个节点中最小外包矩形的边界信息,但是如果有的节点的矩形和最小外包矩形有重合的边界,那么在这个节点中的边界信息就是不完整的,那么怎么样才正确的定位呢,这时就需要标志位M了,当执行插入删除操作时,系统会检查M位的值,当M为负数就表示这个结点中的最小外包矩形各个边都没有从父结点中继承,反之若为正数就说明这个最小外包矩形的边界信息不完全,需要通过父节点来补全节点信息。而当M为正数时,他的值又表示节点内对象的个数,因此只有知道了M位的值才能正确访问E位。当M为负数时,就无需从父节点取得信息,则BF位就没有存在的必要了,此位可以不用,就可以在这种情况下节约了节点空间。
2、CSR树的算法实现
CSR树的实现实在R树已有的基础上,以改进其缓存敏感性为目标,对其去除了父子节点间的指针,只保留子节点组头指针,去除MBR中冗余的边界信息,并对MBR坐标进行相对坐标表示,对坐标系量化表示。CSR树在功能上具有R树所具有的所有功能,包括实现了最基本的查询操作、删除操作以及这些操作过程中会用到的分裂和聚合算法。
2.1 CSR树查询算法描述
CSR的查询算法在遍历每个结点时先判断M值的正负,如果M值为正数,则说明这个结点中没有最小外包矩形从其双亲结点中继承任何一条边的信息,也就是所有最小外包矩形的边的信息都需要保存在节点中,那么这样的搜索算法在传统的R树的基础上只使用了相对坐标表示和坐标轴量化的技术。这样的话查询算法和普通的R树查询算法差异很相似,唯一的区别就是CSR树需要将需要查询的矩形区域按一定得算法和节点中的最小外包矩形进行比较,由于这些最小外包矩形都是经过相对坐标表示和坐标轴量化处理的,所以在比较时,先要将需查询矩形进行相对化表示以及作出其量化后的坐标,再进行比较确定和哪些节点中的矩形重合。当M为正数,这时说明节点中并没有包含最小外包矩形所有边的信息,这时就需要根据节点的BF位和MBR位来还原边界信息,再通过以上步骤进行查询操作。
2.2 CSR树删除算法描述
CSR树的删除算法用基本的R树删除算法即可,只是其中的收缩函数condense()会有所区别。第一步是先找到待删除的索引叶子节点,由于R树中的非叶子节点可能互相覆盖,因此删除算法可能要搜索多个分支;第二步便是删除该节点;第三步对R树进行调整,而CSR树和传统的R树区别就在于多了一步对调整后的MBR进行重新计算得出该节点进行坐标相对化表示以及坐标轴量化后的坐标。
3、性能测试分析
3.1 查询性能测试分析
查询性能测试是已经插入10万条随机数据的情
原创力文档


文档评论(0)