分布式数据检索的优化与负载均衡
更高效、可靠的分布式数据检索
“随时查询”方法能根据可用资源动态调整,以提高分布式数据检索的效率和可靠性。
大型在线数据存储库(如某中心的商店)分布在庞大的服务器集群中,从这些存储库中检索数据必须高效,以提供良好的用户体验。通常会有服务水平协议(SLA),规定一定比例(例如95%)的查询必须在规定的时间上限(例如150毫秒)内得到响应。
标准数据聚类方法的示意图,猫相关的内容仅聚集在两个服务器上。
提高效率的一种方法是将相关内容集中到少数几台服务器上,限制信息检索算法需要考虑的数据量。但是,如果大量用户试图访问相同的数据,可能导致系统利用率的负载不平衡,从而违反SLA。
在发表于《ACM信息系统交易》期刊的一篇论文中,我们与某大学的研究者共同提出了一种新的查询处理方法,该方法通过更均匀地分发数据来避免这种不平衡,同时仍限制了需要考虑的数据量。此外,我们的方法是一种随时查询方法,这意味着它能动态适应用户需求的变化,在带宽和处理周期稀缺时至少提供一些结果,并随着可用资源的增多而改进结果质量。这确保了在满足SLA的同时,最大限度地减少资源使用。
在使用标准的ClueWeb09B文档集合和TREC百万查询追踪中的查询进行的实验中,我们的方法在查询结果质量(相对于详尽的查询处理)方面胜过了一系列基线方法,证明其能够在大型文档集合上满足严格的延迟SLA。
基于选择性搜索的随时排序
为了节省资源,选择性搜索方法将查询定向到包含主题相关文档的索引部分。大多数选择性搜索方法将所有主题相关文档分发到单个服务器节点;相比之下,我们的方法将每个主题的一部分文档分发到每个节点。这种文档的均匀分布带来了负载平衡的好处,同时也简化了整个分布式系统。
一个数据语料库被分区成分片,分布在服务器节点上。在每个分片内,数据根据主题进行了聚类。新算法根据更细粒度的分类(颜色渐变)对每个主题内的数据进行重新排序,然后连接主题以进行高效索引。
在每个节点内,我们对每个主题分片中的文档进行更细粒度的聚类。聚类类别是自动确定的,但例如在“耳机”这个主题下,算法可能会聚类与降噪耳机、无线耳机等相关的文档。
在每个主题内,我们根据这种更细粒度的聚类重新排序文档,从而实现更有针对性、更高效的检索。我们在今年ACM信息检索特别兴趣小组会议上发表的论文《使用二分图分区实现更快的索引重排序》中详细描述了该方法。
随时排序查询处理
节点内的细粒度聚类使我们能够为不同的主题集群建立不同的相关性阈值,从而实现随时查询处理。根据查询,我们的算法确定每个主题内集群的访问顺序。如果某个集群内没有数据超过给定查询的阈值,则该集群被完全跳过。
在下面的示例中,目标是检索粉红色的数据点。在左侧的图表中,我们的算法决定首先访问数据丰富的第二个集群,只有在时间允许的情况下才继续访问更稀疏的第三个集群。第一个集群被完全跳过,因为当前得分阈值(蓝线)高于集群相关性阈值(红线)。右侧的图表展示了一种更传统的信息检索算法,它必须按照固定顺序处理节点中的所有文档。
随时查询方法可以跳过相关性较低的主题集群(如左侧的集群1),提高信息检索效率;传统的检索方法(右侧)必须按照固定顺序处理所有文档。
在实验中,我们将我们的聚类方法与两种标准信息检索算法(下图中的VBMW和MaxScore)结合使用,与现有的随时查询方法(JASS)进行了比较。我们还将其与一个预言机模型进行了比较,该模型以完全正确的顺序探索完全正确的主题集群,设定了性能上限。
这些图表比较了两种标准信息检索算法与研究人员检索方法结合使用时的性能,与预言机方法和现有随时查询方法的对比。
为了评估这些方法,我们使用了排名偏置重叠度,它表示算法在正确顺序下返回的前k个结果(k在下面的图表中为10和1000)的百分比;得分1.0表示最优排序。如下面的图表所示,我们的聚类方法使算法能比现有方法更有效地收敛到最优排序。
总体而言,我们的实验表明,我们提出的索引和查询处理方案允许遵循大规模信息检索系统中标准的严格延迟SLA,同时在延迟和查询结果质量之间提供了细粒度的权衡。
研究领域
搜索与信息检索
标签
分布式计算,数据库分区
相关出版物
文档有序索引上的随时排序
关于作者
Matthias Petri是某中心Alexa AI组织的一名应用科学家。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)
公众号二维码

公众号二维码


浙公网安备 33010602011771号