Skip to content

Latest commit

 

History

History
47 lines (25 loc) · 2.21 KB

2022-04-29-流计算引擎弹性扩展综述.md

File metadata and controls

47 lines (25 loc) · 2.21 KB

2022.04.29 分享纪要

分享内容

问题描述

对于长时间运行的流计算平台而言,输入数据的速率不确定,当数据输入速度较高的时候,负载较高导致计算节点发生背压,拖慢整个计算的处理延时,此时需要对计算节点进行scale-out,同理在负载低的时候,计算节点使用的资源过多,需要scale-in。

解决思路

方向一:全部暂停再重启

基本思路:需要修改配置时,暂停数据处理,然后从最近的快照中恢复

  1. State Management in Apache Flink

    Flink通过最近的全局一致快照进行重配置,为计算节点分配新配置的状态,重写计算节点的路由转发表,然后重启实现重配置。

方向二:部分暂停重启

基本思路:重配置过程中一般只scale部分计算节点,没有必要全部暂停

  1. Chi: A Scalable and Pro_x0002_grammable Control Plane for Distributed Stream Processing Systems

    通过重配置事件,在dataflow中出发相应算子的路由表重写和状态迁移,实现部分暂停式的配置更新。

  2. Rhino: Efficient Management of Very Large Distributed State for Stream Processing Engines

    在Chi的基础上,通过主动的状态迁移和维护增量状态,实现了大规模状态下重配置过程中的重新配置。

方向三:基于进度追踪

基本思路:需要修改配置时,暂停数据处理,然后从最近的快照中恢复

  1. Megaphone: Latency-conscious State Mi_x0002_gration for Distributed Streaming Dataflows

    论文在timely dataflow的进度追踪机制下,通过frontier来保证新配置和旧配置之间的分界,从而可以将配置更新过程分为多个小的配置更新,是一种细粒度方式的配置更新。

FAQ