A Survey of Distributed Data Stream Processing Frameworks <s> B. COMPARISON OF DSPEs <s> Streaming data processing has been gaining attention due to its application into a wide range of scenarios. To serve the booming demands of streaming data processing, many computation engines have been developed. However, there is still a lack of real-world benchmarks that would be helpful when choosing the most appropriate platform for serving real-time streaming needs. In order to address this problem, we developed a streaming benchmark for three representative computation engines: Flink, Storm and Spark Streaming. Instead of testing speed-of-light event processing, we construct a full data pipeline using Kafka and Redis in order to more closely mimic the real-world production scenarios. Based on our experiments, we provide a performance comparison of the three data engines in terms of 99th percentile latency and throughput for various configurations. <s> BIB001 </s> A Survey of Distributed Data Stream Processing Frameworks <s> B. COMPARISON OF DSPEs <s> The need for scalable and efficient stream analysis has led to the development of many open-source streaming data processing systems (SDPSs) with highly diverging capabilities and performance characteristics. While first initiatives try to compare the systems for simple workloads, there is a clear gap of detailed analyses of the systems' performance characteristics. In this paper, we propose a framework for benchmarking distributed stream processing engines. We use our suite to evaluate the performance of three widely used SDPSs in detail, namely Apache Storm, Apache Spark, and Apache Flink. Our evaluation focuses in particular on measuring the throughput and latency of windowed operations, which are the basic type of operations in stream analytics. For this benchmark, we design workloads based on real-life, industrial use-cases inspired by the online gaming industry. The contribution of our work is threefold. First, we give a definition of latency and throughput for stateful operators. Second, we carefully separate the system under test and driver, in order to correctly represent the open world model of typical stream processing deployments and can, therefore, measure system performance under realistic conditions. Third, we build the first benchmarking framework to define and test the sustainable performance of streaming systems. Our detailed evaluation highlights the individual characteristics and use-cases of each system. <s> BIB002
In this sub-section, we took a closer look at some representative leading-edge DSPEs selected based on their popularity BIB001 , BIB002 and potentials. These DSPEs include Storm, Spark Streaming, Flink, Kafka Streams, and IBM Streams. We then compared these DSPEs based on a subset of the key features in the taxonomy we have proposed and described in Section 3. The features that we found important for the comparison of the selected DSPEs are the programming model, data partition strategy, state management, message processing guarantees, fault tolerance and recovery. We also discuss additional criteria under the ''Other'' category.