关键词:
内部并行性
异步IO
固态硬盘
空间数据结构
批量提交算法
摘要:
近年来,随着信息技术的飞速发展,人们的日常生活越来越依赖于空间数据,空间大数据时代已经到来。因为空间数据数量大、产生速度快、结构复杂、操作特殊等特点,也为其存储、索引、读写带来了新的挑战。虽然已有的基于固态硬盘的优化读写速度的方法取得了不错的效果,但是它们没有充分利用固态硬盘的内部并行性,且仅适用于单一的某种空间数据结构。针对上述问题,本文设计并实现了具有普适性的批量读写算法,并改造不同的空间数据结构使其更好的适用该算法。在此基础上,还研究了批量提交数与固态硬盘内部特征之间的关系。本文的主要工作如下:首先,提出了基于固态硬盘内部并行性的普适性批量读写算法。该算法首先判断空间数据结构类别,根据类别打开对应的空间索引文件,从而应对不同的数据结构。然后针对固态硬盘会因读写耦合而导致性能下降的特点,设计读和写算法来区分读写操作,并将其保存在Linux操作系统异步IO库的上下文中。再通过批量查询和批量更新算法对读写操作进行批量打包,设置阈值,以确保充分利用固态硬盘的内部并行性并实现读写效率最大化从而实现提升速度的目的。其次,为了在不同数据结构上更好的应用以上算法,提出了基于改造空间数据结构的批量提交算法。根据不同的空间数据结构特征改造其结构。即针对R-树容易导致数据分裂、KD-树容易产生空间树不平衡、四叉树可能导致一个数据存储于多个节点的现象,提出批量更新和批量平衡算法,从而对空间数据结构的构建、查询和更新算法进行改进,使得更适用于固态硬盘的内部并行性结构,提升读写速度。最后,本文通过实验进行性能评估。在3个不同类型的固态硬盘上进行了写操作测试、读操作测试和读写操作测试,分别体现在构建索引测试、查询测试和更新测试上,并与传统的方法进行了对比,实验结果证明了算法的有效性。不同的空间数据结构在使用批量提交算法后,读速度提升2.5到3倍,写速度提升1.5到1.7倍。最后,本文研究了批量提交数与固态硬盘内部特征之间的关系,在两个不同类型的固态硬盘中验证其读写效率的变化,观测其曲线的变化趋势及拐点,总结出当批量提交数等于固态硬盘的通道数时是速度最快的结点。