Justin: Hybrid CPU/Memory Elastic Scaling for Distributed Stream Processing

Fuente: arXiv
Enregistré dans:
Détails bibliographiques
Auteurs principaux: Schmitz, Donatien, Rosinosky, Guillaume, Rivière, Etienne
Format: Preprint
Publié: 2025
Sujets:
Accès en ligne:
Tags: Ajouter un tag
Pas de tags, Soyez le premier à ajouter un tag!
_version_ 1866918034789105664
author Schmitz, Donatien
Rosinosky, Guillaume
Rivière, Etienne
author_facet Schmitz, Donatien
Rosinosky, Guillaume
Rivière, Etienne
contents Distributed Stream Processing (DSP) engines analyze continuous data via queries expressed as a graph of operators. Auto-scalers adjust the number of parallel instances of these operators to support a target rate. Current auto-scalers couple CPU and memory scaling, allocating resources as one-size-fits-all packages. This contrasts with operators' high diversity of requirements. We present Justin, an auto-scaler that enables hybrid CPU and memory scaling of DSP operators. Justin monitors both CPU usage and the performance of operators' storage operations. Its mechanisms enable finegrain memory allocation for tasks upon a query reconfiguration. The Justin policy identifies individual operators' memory pressure and decides between adjusting parallelism and/or memory assignment. We implement Justin in Apache Flink, extending the Flink Kubernetes Operator and the DS2 CPU-only auto-scaler. Using the Nexmark benchmark, our evaluation shows that Justin identifies suitable resource allocation in as many or fewer reconfiguration steps as DS2 and supports a target rate with significantly fewer CPU and memory resources.
format Preprint
id arxiv_https___arxiv_org_abs_2505_19739
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle Justin: Hybrid CPU/Memory Elastic Scaling for Distributed Stream Processing
Schmitz, Donatien
Rosinosky, Guillaume
Rivière, Etienne
Distributed, Parallel, and Cluster Computing
Distributed Stream Processing (DSP) engines analyze continuous data via queries expressed as a graph of operators. Auto-scalers adjust the number of parallel instances of these operators to support a target rate. Current auto-scalers couple CPU and memory scaling, allocating resources as one-size-fits-all packages. This contrasts with operators' high diversity of requirements. We present Justin, an auto-scaler that enables hybrid CPU and memory scaling of DSP operators. Justin monitors both CPU usage and the performance of operators' storage operations. Its mechanisms enable finegrain memory allocation for tasks upon a query reconfiguration. The Justin policy identifies individual operators' memory pressure and decides between adjusting parallelism and/or memory assignment. We implement Justin in Apache Flink, extending the Flink Kubernetes Operator and the DS2 CPU-only auto-scaler. Using the Nexmark benchmark, our evaluation shows that Justin identifies suitable resource allocation in as many or fewer reconfiguration steps as DS2 and supports a target rate with significantly fewer CPU and memory resources.
title Justin: Hybrid CPU/Memory Elastic Scaling for Distributed Stream Processing
topic Distributed, Parallel, and Cluster Computing
url https://arxiv.org/abs/2505.19739