R-Tree
本节主要描述下在章节V-B中是如何通过基于集群节点的R-Tree索引对空间数据进行分割的。如图4(b)所示,是每个分区中R-Tree局部索引。
在数据分割阶段,为了计算分块的边界,我们通过批量加载一个输入文件的随机样本到内存中,R-Tree采用文献30中的Sort-Tile-Recursive(STR)算法实现。随机样本的大小为输入文件大小的1%的默认比率,最大限制为100MB,这样可以确保适合内存计算。比率和最大限制都可以通过配置文件设置。如果文件是不点图层,在批量导入阶段使用图形的中心点来代替。当输入文件特别大时,为了保证文件读取的速率,我们采用MapReduce来扫描所有记录和输出结果,每一条记录都有1%的可能性。这部分工作也可以追踪采样点的总体大小(以字节的方式)。如果大小小于100MB,样本将用于构建R-Tree。否则,将执行第二次样本操作,这次将以100/S比率的可能性输出结果,最终生成一个期望100MB大小的子样本。
一旦样本载入,主节点将通过STR算法和参数d(R-Tree度