针对移动对象的多用户连续K近邻查询处理问题,结合多核多线程技术的发展,提出了一种基于多线程的两阶段多用户连续K近邻查询处理框架.将查询处理分为查询预处理阶段和查询执行阶段,分别执行数据更新任务和查询处理任务.每个阶段都设计了优化cache访问命中率,并利用多线程技术提高多用户连续查询处理并行性的方法及数据结构.提出了一种查询执行阶段的查询分组技术,利用查询之间的相关性提高了算法执行时内存访问的时间局部性.基于查询处理框架和移动对象内存格网索引结构提出了K近邻查询处理算法.充分的实验结果表明,采用了多线程和cache优化技术的连续查询处理框架与其他算法相比,在性能上具有较大优势,并且在不同核心数目的CPU平台下具有较好的性能扩展性.
To solve the problem of multiple continuous K nearest neighbor (KNN) queries over moving objects, considering the development of multi-core and multi-threading technologies, a two-stage framework is proposed for Multi-Threading Processing of Multiple Continuous KNN Queries (MPMCQ). This includes a preprocessing stage and a query execution stage to carry out the data updating task and the query execution task separately. In each of the stages, techniques are designed to optimize the cache access hit ratio and improve the parallelism through multi-threading. A query grouping technique in the query execution stage is proposed to improve the data temporal loeality when accessing the memory. Thus, the cache hit ratio can be guaranteed. A KNN query algorithm is given based on the MPMCQ framework and the grid index for moving objects. Extensive experiments are carded out to verify that by adopting the multi-threading and the cache optimization technologies, the proposed framework implements a much superior performance than other famous algorithms; moreover, it maintains excellent performance scalability when executed under different multi-core CPUs.