Result: Justin: Hybrid CPU/Memory Elastic Scaling for Distributed Stream Processing ⋆
collection:INRIA
collection:EC-NANTES
collection:INRIA-RENNES
collection:INRIA_TEST
collection:GRID5000
collection:UNAM
collection:TESTALAIN1
collection:INRIA2
collection:LS2N
collection:LS2N-STACK
collection:INRIA-RENGRE
collection:INSTITUTS-TELECOM
collection:NANTES-UNIVERSITE
collection:NANTES-UNIV
collection:SLICES-FR
URL: http://hal.archives-ouvertes.fr/licences/copyright/
Further Information
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.