Decentralized self-adaptation for elastic Data Stream Processing

Abstract Data Stream Processing (DSP) applications are widely used to develop new pervasive services, which require to seamlessly process huge amounts of data in a near real-time fashion. To keep up with the high volume of daily produced data, these applications need to dynamically scale their execution on multiple computing nodes, so to process the incoming data flow in parallel. In this paper, we present a hierarchical distributed architecture for the autonomous control of elastic DSP applications. It consists of a two-layered hierarchical solution, where a centralized per-application component coordinates the run-time adaptation of subordinated distributed components, which, in turn, locally control the adaptation of single DSP operators. Thanks to its features, the proposed solution can efficiently run in large-scale Fog computing environments. Exploiting this framework, we design several distributed self-adaptation policies, including a popular threshold-based approach and two reinforcement learning solutions. We integrate the hierarchical architecture and the devised self-adaptation policies in Apache Storm, a popular open-source DSP framework. Relying on the DEBS 2015 Grand Challenge as a benchmark application, we show the benefits of the presented self-adaptation policies, and discuss the strengths of reinforcement learning based approaches, which autonomously learn from experience how to optimize the application performance.

[1]  Tsuyoshi Murata,et al.  {m , 1934, ACML.

[2]  Kun-Lung Wu,et al.  Elastic Scaling for Data Stream Processing , 2014, IEEE Transactions on Parallel and Distributed Systems.

[3]  Seif Haridi,et al.  Apache Flink™: Stream and Batch Processing in a Single Engine , 2015, IEEE Data Eng. Bull..

[4]  Claudio Soriente,et al.  StreamCloud: An Elastic and Scalable Data Streaming System , 2012, IEEE Transactions on Parallel and Distributed Systems.

[5]  Sriram Rao,et al.  Dhalion: Self-Regulating Stream Processing in Heron , 2017, Proc. VLDB Endow..

[7]  Valeria Cardellini,et al.  Towards Hierarchical Autonomous Control for Elastic Data Stream Processing in the Fog , 2017, Euro-Par Workshops.

[8]  Ching-Lai Hwang,et al.  Multiple attribute decision making : an introduction , 1995 .

[9]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[10]  Roberto Baldoni,et al.  Adaptive online scheduling in storm , 2013, DEBS.

[11]  Christof Fetzer,et al.  Auto-scaling techniques for elastic data stream processing , 2014, 2014 IEEE 30th International Conference on Data Engineering Workshops.

[12]  Seif Haridi,et al.  State Management in Apache Flink®: Consistent Stateful Distributed Stream Processing , 2017, Proc. VLDB Endow..

[13]  Richard S. Sutton,et al.  Reinforcement Learning: An Introduction , 1998, IEEE Trans. Neural Networks.

[14]  Tiziano De Matteis,et al.  Elastic Scaling for Distributed Latency-Sensitive Data Stream Operators , 2017, 2017 25th Euromicro International Conference on Parallel, Distributed and Network-based Processing (PDP).

[15]  Jian Tang,et al.  T-Storm: Traffic-Aware Online Scheduling in Storm , 2014, 2014 IEEE 34th International Conference on Distributed Computing Systems.

[16]  Schahram Dustdar,et al.  Elastic Stream Processing for the Internet of Things , 2016, 2016 IEEE 9th International Conference on Cloud Computing (CLOUD).

[17]  Enrique Saurez,et al.  Incremental deployment and migration of geo-distributed situation awareness applications in the fog , 2016, DEBS.

[18]  Rajkumar Buyya,et al.  A Stepwise Auto-Profiling Method for Performance Optimization of Streaming Applications , 2017, ACM Trans. Auton. Adapt. Syst..

[19]  Bradley R. Schmerl,et al.  On Patterns for Decentralized Control in Self-Adaptive Systems , 2010, Software Engineering for Self-Adaptive Systems.

[20]  Nicolas Lumineau,et al.  A Preventive Auto-Parallelization Approach for Elastic Stream Processing , 2017, 2017 IEEE 37th International Conference on Distributed Computing Systems (ICDCS).

[21]  Xin Yao,et al.  A Survey and Taxonomy of Self-Aware and Self-Adaptive Cloud Autoscaling Systems , 2016, ACM Comput. Surv..

[22]  Marco Danelutto,et al.  Elastic-PPQ: A two-level autonomic system for spatial preference query processing over dynamic data streams , 2018, Future Gener. Comput. Syst..

[23]  Gabriele Mencagli A Game-Theoretic Approach for Elastic Distributed Data Stream Processing , 2016, TAAS.

[24]  Vladimir Vlassov,et al.  SpanEdge: Towards Unifying Stream Processing over Central and Near-the-Edge Data Centers , 2016, 2016 IEEE/ACM Symposium on Edge Computing (SEC).

[25]  Frank Dürr,et al.  Solving the Multi-Operator Placement Problem in Large-Scale Operator Networks , 2010, 2010 Proceedings of 19th International Conference on Computer Communications and Networks.

[26]  Jignesh M. Patel,et al.  Twitter Heron: Stream Processing at Scale , 2015, SIGMOD Conference.

[27]  Jianneng Cao,et al.  Integrative Dynamic Reconfiguration in a Parallel Stream Processing Engine , 2016, ICDE.

[28]  Holger Ziekow,et al.  The DEBS 2015 grand challenge , 2015, DEBS.

[29]  Odej Kao,et al.  Elastic Stream Processing with Latency Guarantees , 2015, 2015 IEEE 35th International Conference on Distributed Computing Systems.

[30]  Yin Yang,et al.  DRS: Auto-Scaling for Real-Time Stream Analytics , 2017, IEEE/ACM Transactions on Networking.

[31]  Valeria Cardellini,et al.  Optimal operator deployment and replication for elastic distributed data stream processing , 2018, Concurr. Comput. Pract. Exp..

[32]  Indranil Gupta,et al.  Stela: Enabling Stream Processing Systems to Scale-in and Scale-out On-demand , 2016, 2016 IEEE International Conference on Cloud Engineering (IC2E).

[33]  Vincenzo Grassi,et al.  Distributed QoS-aware scheduling in storm , 2015, DEBS.

[34]  Valeria Cardellini,et al.  Auto-Scaling in Data Stream Processing Applications: A Model-Based Reinforcement Learning Approach , 2017, InfQ@VALUETOOLS.

[35]  Scott Shenker,et al.  Discretized streams: fault-tolerant streaming computation at scale , 2013, SOSP.

[36]  Avrilia Floratou,et al.  Self-Regulating Streaming Systems: Challenges and Opportunities , 2017, BIRTE.

[37]  Robert Tappan Morris,et al.  Vivaldi: a decentralized network coordinate system , 2004, SIGCOMM '04.

[38]  Raul Castro Fernandez,et al.  Integrating scale out and fault tolerance in stream processing using operator state management , 2013, SIGMOD '13.

[39]  Sean R Eddy,et al.  What is dynamic programming? , 2004, Nature Biotechnology.

[40]  Silvia Bonomi,et al.  Elastic Symbiotic Scaling of Operators and Resources in Stream Processing Systems , 2018, IEEE Transactions on Parallel and Distributed Systems.