Skip to main content
QUICK REVIEW

[论文解读] Partial Key Grouping: Load-Balanced Partitioning of Distributed Streams

Muhammad Anis Uddin Nasir, Gianmarco De Francisci Morales|arXiv (Cornell University)|Oct 26, 2015
Cloud Computing and Resource Management参考文献 27被引用 8
一句话总结

本文提出了一种新型的流分区方案——部分键分组(pkg),通过结合键拆分与本地负载估计,将‘双选优势’原理应用于分布式流处理中。pkg 在数据倾斜情况下实现了近乎完美的负载均衡,将不平衡度降低数个数量级,并在真实 Storm 集群上将吞吐量提升最高达 175%,延迟降低最高达 45%,已集成至 Apache Storm v0.10。

ABSTRACT

We study the problem of load balancing in distributed stream processing engines, which is exacerbated in the presence of skew. We introduce Partial Key Grouping (PKG), a new stream partitioning scheme that adapts the classical "power of two choices" to a distributed streaming setting by leveraging two novel techniques: key splitting and local load estimation. In so doing, it achieves better load balancing than key grouping while being more scalable than shuffle grouping. We test PKG on several large datasets, both real-world and synthetic. Compared to standard hashing, PKG reduces the load imbalance by up to several orders of magnitude, and often achieves nearly-perfect load balance. This result translates into an improvement of up to 175% in throughput and up to 45% in latency when deployed on a real Storm cluster. PKG has been integrated in Apache Storm v0.10.

研究动机与目标

  • 解决现实工作负载中因键分布倾斜导致的分布式流处理引擎(DSPEs)中的负载不均衡问题。
  • 设计一种可扩展、去中心化的分区方案,以改进传统键分组(受单选哈希限制)和混洗分组(缺乏键语义且增加有状态处理的内存开销)的不足。
  • 在无需全局协调或每键状态跟踪的前提下实现实际的负载均衡,确保低开销与高吞吐量。
  • 评估本地负载估计与键拆分在流式、分布式环境中实现近乎最优负载均衡的有效性。

提出的方法

  • 提出部分键分组(pkg),一种新型的流分区策略,允许每个键由两个候选处理单元实例(PEIs)处理,从而放宽传统键分组中‘每个键仅对应一个PEI’的严格约束。
  • 采用键拆分技术,将同一键的消息分布到两个随机选择的PEIs上,从而在无需协调或路由表维护的前提下,实现‘双选优势’。
  • 采用本地负载估计机制,每个源独立监控下游PEIs的负载情况,避免对全局负载信息的依赖,降低协调开销。
  • 应用双选优势范式:对于每个键,系统选择两个随机选定的PEIs中负载较轻的一个,利用本地估计值指导路由决策。
  • 以极低的代码开销实现该方案——在 Apache Storm 上部署时,代码量不足 20 行,仅需一个函数。
  • 采用随机选择机制进行副本分配,可结合一致性哈希以增强稳定性,同时保持低内存与协调成本。

实验结果

研究问题

  • RQ1在无全局协调的分布式流式环境中,‘双选优势’原理是否能有效应用?
  • RQ2键拆分与本地负载估计是否能协同实现存在键倾斜情况下的近乎最优负载均衡?
  • RQ3能否在保持有状态流处理中键分组语义的同时,维持良好的负载均衡?
  • RQ4在负载均衡性能方面,本地负载估计与全局负载知识相比如何?
  • RQ5在流分区方案中,内存使用、协调成本与负载均衡之间的权衡关系如何?

主要发现

  • 与基于标准哈希的键分组相比,pkg 将负载不平衡度降低了数个数量级。
  • 在真实 Storm 集群上,pkg 在倾斜工作负载下可将吞吐量提升最高达 175%,延迟降低最高达 45%。
  • 本地负载估计的性能几乎与全局负载预言机相当,使其成为分布式系统中实用且可扩展的替代方案。
  • 键拆分使‘双选优势’的使用无需协调或每键状态跟踪,显著提升了可扩展性。
  • pkg 通过极少的协调开销,在实践中实现了近乎完美的负载均衡,即使在高倾斜情况下也能有效平衡 PEIs 间的负载。
  • 该方案已成功集成至 Apache Storm v0.10,证明了其实际可用性与生产环境适用性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。