本文提出Hercules,一种基于并行树的技术,用于在大规模磁盘数据集上进行精确相似性搜索。本文提出新的索引构建和查询回答算法,利用不同的摘要技术,仔细调度昂贵的操作,优化内存和磁盘访问,并利用现代硬件的多线程和SIMD能力来执行cpu密集型计算。通过与最先进技术的广泛实验评估,证明了Hercules的优越性和鲁棒性,使用许多合成和真实数据集,以及不同难度的查询工作负载。结果表明,Hercules的表现比最好的竞争对手快一个数量级(这并不总是相同的)。此外,Hercules是唯一在所有场景下都优于优化扫描的索引,包括基于磁盘的数据集的硬查询工作负载。(文中的关键点在于 并行与多线程的优化)
方法:
本文提出Hercules,第一个数据系列索引,在所有流行的工作负载中,响应查询的速度比所有最新的最先进技术都快。赫拉克勒斯通过利用以下关键思想实现了这一点。首先,利用DSTree和ParIS+分别采用的EAPCA和iSAX两种不同的数据序列摘要技术,在建立索引时获得良好聚类的树结构,同时在查询时获得较高的叶子剪枝率;赫拉克勒斯享受这两种方法的优点,并采用新思想来克服它们的局限性。其次,采用两级缓存管理技术优化内存访问。这种设计利用了(i)一个大的内存缓冲区(HBuffer),它包含所有叶子的原始数据,当它满时就刷写到磁盘上;(ii)一个小的缓冲区(SBuffer),它包含每个叶子的指针,指向存储在HBuffer中的叶子的原始数据。这样,它减少了系统调用的数量,防止了内存不足管理问题的发生。它还能更有效地调度外部存储请求。最先进的技术[53,64]通常将每个leafs的数据存储在单独的文件中,而Hercules