Flo: a Semantic Foundation for Progressive Stream Processing

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Laddad, Shadaj, Cheung, Alvin, Hellerstein, Joseph M., Milano, Mae
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866912117596094464
author Laddad, Shadaj
Cheung, Alvin
Hellerstein, Joseph M.
Milano, Mae
author_facet Laddad, Shadaj
Cheung, Alvin
Hellerstein, Joseph M.
Milano, Mae
contents 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.
format Preprint
id arxiv_https___arxiv_org_abs_2411_08274
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Flo: a Semantic Foundation for Progressive Stream Processing
Laddad, Shadaj
Cheung, Alvin
Hellerstein, Joseph M.
Milano, Mae
Programming Languages
Distributed, Parallel, and Cluster Computing
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.
title Flo: a Semantic Foundation for Progressive Stream Processing
topic Programming Languages
Distributed, Parallel, and Cluster Computing
url https://arxiv.org/abs/2411.08274