[发明专利]最近邻查询方法及系统有效
申请号: | 201010607741.8 | 申请日: | 2010-12-27 |
公开(公告)号: | CN102043857A | 公开(公告)日: | 2011-05-04 |
发明(设计)人: | 戴娇;韩冀中;周薇 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京泛华伟业知识产权代理有限公司 11280 | 代理人: | 王勇 |
地址: | 100190 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 近邻 查询 方法 系统 | ||
技术领域
本发明涉及并行计算领域,特别涉及一种最近邻查询方法及系统。
背景技术
随着高性能应用和运算需求的迅猛发展,单台高性能计算机已经不能解决一些超大规模应用问题,如空间连接、多个数据集的最近邻查询(简称最近邻查询)等,这就需要将多台计算机资源联合起来,构成计算机集群,共同解决大规模应用问题。并行编码技术是计算机集群应用中的一种关键技术,它可以有效地开发并行计算机尤其是计算机集群的计算能力,是硬件和软件之间的桥梁,是并行计算的底层实现和高层抽象的界面。
最近邻查询(ALL-Nearest-Neighbor Query,简记为ANN)是计算机集群的一种典型应用,它是指对于给定基础数据集R中的所有对象,在参考数据集S中寻找距离最近的对象。全局最近邻查询不满足交换性,即ANN(R,S)≠ANN(S,R)。实现最近邻查询的最简单方式是对集合R中的每个对象,在集合S中执行最近距离查询,即在集合S中查找与集合R中的每一对象距离最近的对象。
现有技术中存在用于执行最近邻查询的相关方法,当前一种较为典型的方法是利用MapReduce来实现最近邻查询,特别是对大规模海量数据的最近邻查询。所述的MapReduce是Google公司提出的一种并行编程模型和分布式计算框架,它主要用于基于大规模集群的数据密集型应用。MapReduce提供了两个用户定义接口:map和reduce,map接口实际上是一个映射函数,它用来把一组键值对映射成一组新的键值对;reduce接口实质是一个化简函数,用来保证所有映射的键值对中的每一个共享相同的键组。
在利用MapReduce来实现大规模海量数据的最近邻查询时,首先将海量数据的计算任务分为K个子任务,然后分配到各个节点(计算机)上进行处理,最后综合各个节点的计算结果得到最终的最近邻查询结果。但在执行过程中会遇到多种问题,主要分为以下几类:
1、MapReduce需要对原始数据进行切割,然后才能将切割得到的多个分片数据分配到各个节点上。在这一切割过程中,容易产生每个分片中的数据不均衡,进而导致各个节点上的负载不均衡。例如,在一种常见的切割方法中,对空间类的原始数据按照坐标值进行切分,使得所得到的各个分片的面积基本相同,但由于切分形成的不同分片中的数据密度大小不一,因此各个分片中的数据不均衡,这就造成了对应节点上的负载的不均衡。虽然在现有技术中也存在先对原始数据做排序,然后再切分的方法来保证切分所得到的各个分片中的数据的均衡性,但如果原始数据是海量数据,这种方法显然又会有执行效率低的问题。
2、将海量数据分成K份并分配给不同的节点后,各个节点之间是相互独立的,节点间缺乏通信。但是在最近邻查询中,发生下列情况的可能性很大:一个点A的最近邻原本是B,但由于之前所提到的切割操作,A、B被切分到不同的分片中。从理论上说,A做最近邻查询的结果应该是B,但由于它们被分配到不同的分片,且用于处理这些分片的节点间缺乏通信,这会使得实际结果与理论上的正确结果存在偏差。这明显会降低最近邻查询的正确率。
3、对各个分片中的数据做最近邻查询时,MapReduce通常会采用全局扫描的方式,即一个分片中的对象会依次计算与该分片中其它数据集的对象间的距离,取与其距离最小的其它数据集的对象作为最近邻,这在性能上有很大劣势。
发明内容
本发明的目的在于克服现有的最近邻查询方法节点负载不均衡,正确率以及执行效率较低的缺陷,从而提供一种高效、准确的最近邻查询方法。
为了实现上述目的,本发明提供了一种最近邻查询方法,用于为基础数据集中的至少一个待查找对象在参考数据集中查找与所述待查找对象距离最近的对象;该方法包括:
步骤101)、对基础数据集进行分割,得到多个分片,每个分片中包含有指定范围内的基础数据集的对象;对参考数据集进行分割,得到多个分片,每个分片中包含有指定范围内的参考数据集的对象;
步骤102)、在与所述待查找对象所在的基础数据集分片相对应的参考数据集分片内计算与所述待查找对象距离最近的对象;
步骤103)、根据边界判定条件将步骤102)的计算结果分为确定结果或待定结果;所述边界判定条件为某一待查找对象到分片边界的距离是否小于该待查找对象与步骤102)计算得到的距离最近的对象间的距离,若大于,该待查找对象在步骤102)中的计算结果为确定结果,执行步骤105),否则,该待查找对象在步骤102)中的计算结果为待定结果,执行下一步;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010607741.8/2.html,转载请声明来源钻瓜专利网。