一句话:提出参数化流语言 Flo,形式化 streaming progress 与 eager execution,统一流处理语义基础。
现有流处理语言在语义模型和保证上各不相同,甚至彼此不兼容,却都被归为“流处理”,缺少共同的精确语义基础。本文提炼出 streaming progress 与 eager execution 两条一般性质,用以保证流式输出确定且相对输入保持新鲜。作者在参数化流语言 Flo 中形式化这些性质,该语言抽象 dataflow 算子与流结构,并用轻量类型系统区分允许算子阻塞于终止的 bounded streams 与 unbounded streams;同时支持 dataflow 组合以及带环的嵌套图。为说明性质的通用性,论文将 Flink、LVars 与 DBSP 的代表性思想建模到 Flo 中,并证明其保证可映射到上述性质。
Streaming systems are present throughout modern applications, processing continuous data in real-time. Existing streaming languages have a variety of semantic models and guarantees that are often incompatible. Yet all these languages are considered “streaming”–what do they have in common? In this paper, we identify two general yet precise semantic properties: streaming progress and eager execution. Together, they ensure that streaming outputs are deterministic and kept fresh with respect to streaming inputs. We formally define these properties in the context of Flo, a parameterized streaming language that abstracts over dataflow operators and the underlying structure of streams. It leverages a lightweight type system to distinguish bounded streams, which allow operators to block on termination, from unbounded ones. Furthermore, Flo provides constructs for dataflow composition and nested graphs with cycles. To demonstrate the generality of our properties, we show how key ideas from representative streaming and incremental computation systems—Flink, LVars, and DBSP—have semantics that can be modeled in Flo and guarantees that map to our properties.
DOI 原文 · arXiv · PDF(开放获取) · DBLP
@article{LaddadCHM25,
title = {Flo: A Semantic Foundation for Progressive Stream Processing},
author = {Shadaj Laddad and Alvin Cheung and Joseph M. Hellerstein and Mae Milano},
journal = {Proceedings of the ACM on Programming Languages},
volume = {9},
number = {POPL},
year = {2025},
doi = {10.1145/3704845}
}