论文部分内容阅读
近年来,随着DHT(分布式哈希表)的发明,各种大规模高容错的分布式系统在实际应用中变得十分普遍。基于DHT的各种应用需求也随之应运而生,例如一些基于DHT的数据库系统就具有复杂查询的需求。但是,由于DHT中的哈希方程破坏了数据放置的邻近性,在DHT系统中支持复杂查询变成一件十分困难的事情。在现有的方法中,一部分方法通过修改DHT内部结构来重新设计系统,而另外一部分则通过在DHT上层建立索引来支持复杂查询。后一种方法由于基于模块化思想而更具有实用性,因此我们采用这种方法。在本文中,我们研究了如下问题:如何利用DHT对外的通用接口来构建高效的分布式查询系统。我们提出了一套完整的方法(m)-LIGHT来进行DHT上的索引和查询处理。(m)-LIGHT包括一维索引LIGHT和多维索引m-LIGHT。首先,我们考察了一维的情况,并提出了索引方法LIGHT。LIGHT通过一种全新的命名机制将索引结构分布地放置到DHT上,由此提高了查询性能并降低了索引维护开销。就查询处理而言,LIGHT能实现性能的最优化,具体的包括范围查询,k-NN查询和Min/Max查询。同时LIGHT也减少了维护索引的带宽需求。我们进一步研究了多维数据的情况,并提出了m-LIGHT。相似的,m-LIGHT能实现查询处理和索引维护上的高效性,并且极大的减轻了在多维数据下常见的负载不均衡的情况。具体而言,我们扩展了原有一维的命名方程,将多维索引结构合理的分布到底层DHT系统中。同时,m-LIGHT采用一种数据分布相关的分裂方法来对索引进行分布式维护,并由此实现负载平衡的最优化。我们进行了广泛的真实实验来测量和评定(m)-LIGHT的性能。与当前其他基于DHT的索引方法相比,(m)-LIGHT节省了相当多的索引维护开销,实现了更加平衡的负载分布,并且在带宽消耗和查询延迟上都提高了查询处理的性能。