On the Semantic Overlap of Operators in Stream Processing Engines
流处理广泛用于物联网到云频谱中,以从连续的数据流中提取信息。流应用程序通常在采用DataFlow模型的专用流处理引擎(SPE)中运行,该模型将此类应用程序定义为运算符图,这些运算符逐步将数据转换为所需的结果。由于操作符可以独立部署和执行,因此DataFlow模型支持并行和分布,从而使流应用程序具有可伸缩性。今天,我们看到了大量SPE,每个SPE都有自己的一组操作符。在这种情况下,理解操作符的语义如何在SPE内部和SPE之间重叠,以及哪些SPE可以支持给定的应用程序,并不是一件小事。我们解决这个问题,正式表明,常见的SPE操作符可以表示为一个单一的,最小的聚合操作符的组合,从而显示任何框架能够运行这样的操作符组合可以运行应用程序定义的最先进的SPE。Aggregate运算符仅依赖于DataFlow模型的核心概念,例如按键和基于时间的窗口进行数据分区,并且只能为它分析的每个窗口输出一个值。连同我们的正式论证,我们经验性地评估如何SPE,只依赖于这样的操作符与SPE提供特定于操作符的实现相比,以及研究的性能影响,更有表现力的聚合运算符,通过放松输出的约束,每个窗口最多一个值。这种共同点的存在不仅意味着SPE内部和SPE之间的操作员的可移植性,而且还为其他数据处理框架定义了一组简洁的需求,以支持流应用程序。
2023-03-01 cs.DC
Tolerating Correlated Failures in Massively Parallel Stream Processing Engines
流处理引擎的容错技术可以分为被动和主动方法。典型的被动方法周期性地检查处理任务的运行时状态,并且可以通过使用其最新检查点恢复其运行时状态来恢复失败的任务。另一方面,主动方法通常使用备份节点来运行复制的任务。在失败时,活动副本可以以最小的延迟接管失败任务的处理。然而,这两种方法在大规模并行流处理引擎(MPSPE)中都有各自的不足之处。被动方法会导致较长的恢复延迟,特别是当多个相关节点同时发生故障时,而主动方法需要额外的复制资源。在本文中,我们提出了一种新的容错框架,这是被动和部分主动(PPA)。在PPA方案中,被动方法应用于所有任务,而只有选定的一组任务将被主动复制。活动复制任务的数量取决于可用资源。如果没有活动副本的任务失败,则在恢复过程完成之前将生成临时输出。我们还提出了有效和高效的算法来优化部分活动的复制计划,以最大限度地提高暂定输出的质量。我们在开源MPSPE Storm上实现了PPA,并使用真实和合成数据集进行了广泛的实验,以验证我们方法的有效性。
2016-02-04 cs.DC
Event Stream Processing with Multiple Threads
目前的运行时验证工具很少使用多线程来加速对大型事件跟踪的属性的评估。在本文中,我们提出了一个扩展的BeepBeep 3事件流引擎,允许使用多个线程在查询的评估。各种并行化策略,并介绍了简单的例子。这些战略的实施,然后评估经验上的问题样本。与以前的单线程版本的BeepBeep引擎相比,只将几个线程分配给查询的特定部分,在运行时间方面有了显著的改进。
2017-07-09 cs.DC
Distributed Data Stream Processing and Edge Computing: A Survey on Resource Elasticity and Future Directions
在一些新兴的应用场景下,例如在智慧城市、大型基础设施的运营监控、可穿戴辅助和物联网中,必须在非常短的延迟下处理连续的数据流。已经开发了包括多个软件引擎的若干解决方案,用于以可扩展且高效的方式处理无界数据流。最近,已经提出了使用边缘计算进行数据流处理的架构。本文综述了流处理引擎和流处理机制的最新发展,以利用流处理中云计算的资源弹性特性。资源弹性允许应用程序或服务根据波动的需求向外扩展/向内扩展。虽然这些功能已被广泛研究的企业应用程序,流处理提出了挑战,实现弹性系统,可以根据当前的负载,有效的资源管理决策。在包含边缘和云计算资源的高度分布式环境中,弹性变得更具挑战性。这项工作探讨了其中一些挑战,并讨论了文献中提出的解决方案,以解决这些问题。
2017-12-02 cs.DC
ESTemd: A Distributed Processing Framework for Environmental Monitoring based on Apache Kafka Streaming Engine
Central University of Technology(中央理工大学)
分布式网络和实时系统正在成为新计算机时代物联网(IoT)最重要的组成部分,其中包括从传感器生成的巨大数据流或数据集以及从现有遗留系统生成的数据。生成的数据提供了测量,推断和理解环境指标的能力,从脆弱的生态和自然资源到城市环境。这可以通过分析异构数据源(结构化和非结构化)来实现。在本文中,我们提出了一个分布式框架环境监测领域的事件流处理引擎(ESTemd)的异构环境数据流处理的应用。我们在这一领域的工作表明,大数据技术可以在环境决策支持系统、预警和预报系统中发挥有益的作用。提出的框架解决了异构系统的数据异构性和实时的处理巨大的环境数据集的挑战,通过发布/订阅方法,通过一个统一的数据管道与Apache Kafka的应用程序的实时的形状分析。
2021-04-02 cs.AI cs.DC
Theodolite: Scalability Benchmarking of Distributed Stream Processing Engines in Microservice Architectures
分布式流处理引擎的设计重点是可扩展性,以连续的方式处理大数据量。我们提出了经纬仪的方法基准的分布式流处理引擎的可扩展性。这种方法的核心是定义实现流处理的微服务必须满足的用例。对于每个用例,我们的方法识别可能影响用例可伸缩性的相关工作负载维度。我们建议为每个用例和相关的工作负载维度设计一个基准。我们提出了一个通用的基准测试框架,可以应用于执行给定用例和工作负载维度的各个基准测试。我们的框架为给定维度的不同工作负载和不同数量的处理实例执行用例的Cocklow架构的实现。通过这种方式,它可以确定资源需求如何随着工作负载的增加而变化。在本文的范围内,我们提出了4个确定的用例,来自处理工业物联网数据,以及7个相应的工作负载维度。我们提供了Kafka Streams和Apache Flink的4个基准测试的实现,以及在云环境中执行可扩展性基准测试的基准测试框架的实现。我们使用这两种方法来评估Theodolite方法,并对不同部署选项的Kafka Streams和Flink的可扩展性进行基准测试。
2021-02-11 cs.DC cs.PF cs.SE
Colocating Real-time Storage and Processing: An Analysis of Pull-based versus Push-based Streaming
在过去的十年中,实时的【形】大数据架构发展成为处理数据流摄取、存储和处理的专用层。分层流式传输架构集成了由流摄取/存储系统实现的基于拉的读和基于推的写RPC机制。此外,流处理引擎公开了源/宿接口,允许它们轻松地解耦这些系统。然而,开源流引擎利用通过基于拉取的方法实现的工作流源,不断向流摄取/存储发出读RPC,有效地与写RPC竞争。本文提出了一种统一的流架构,利用基于推送和/或基于拉取的源实现集成摄取/存储和处理引擎,可以减少处理延迟,提高系统读写吞吐量,同时为更高的摄取腾出空间。我们实现了一个新的基于推的流媒体源,取代连续拉基于RPC与一个单一的RPC和共享内存(存储和处理处理通过指针共享对象处理流媒体数据)。为此,我们进行了一个实验分析的基于拉与基于推的设计方案的流源阅读器,同时考虑一组流基准和微基准,并讨论这两种方法的优点。
2022-11-10 cs.DC cs.PF
AgileDART: An Agile and Scalable Edge Stream Processing Engine
针对传统数据处理系统难以适配边缘应用低延迟、高并发、环境异构动态的问题,提出AgileDart边缘流处理引擎,通过动态数据流抽象和老虎机路径规划模型,相较现有方案在延迟、扩展性和适应性上表现更优。
2025-07-29 cs.DB cs.DC
Flock: A Low-Cost Streaming Query Engine on FaaS Platforms
Flock 是一种基于 FaaS 平台的云原生流式查询引擎,利用函数调用负载进行数据交换,无需外部存储和集中协调器,支持 SQL 和 DataFrame API,相比 Apache Flink 成本降低 10-20 倍且性能相当。
2024-04-21 cs.DB cs.DC
Building Analytics Pipelines for Querying Big Streams and Data Histories with H-STREAM
本文介绍了H-STREAM,一个大的流/数据处理管道评估引擎,提出流处理操作符作为微服务,以支持来自物联网(物联网)环境的大数据流的分析和可视化。H-STREAM微服务结合了流处理和数据存储技术,这些技术根据产生流的事物的数量、它们产生流的速度以及可用于在线处理流并将其交付给消费者的物理计算资源进行调整。H-STREAM提供安装在云环境中的流处理和可视化微服务。微服务可以被组合用于实现特定的流聚合分析管道作为查询。本文提出了一种实验验证,使用Microsoft Azure作为部署环境,测试H-STREAM在(i)神经科学实验和(i)物联网农场上运行的社交连接分析场景中处理速度和容量挑战的能力。
2021-08-07 cs.DC
StreamBed: capacity planning for stream processing
本文提出 StreamBed 容量规划系统,通过小规模受控测试平台为 Flink 查询建立资源需求模型,并在 Nexmark 上证明其能以 48 核准确预测超过 1,000 核作业的容量。
2023-09-28 cs.DC
Where Does Streaming State Cost Go? A Reproducible Comparison of Flink and Kafka Streams on Kafka
Indiana University(印第安纳大学)
本文通过受控实验比较 Flink 与 Kafka Streams 在 Kafka 上的恰好一次流处理,揭示状态管理架构对延迟、恢复和正确性的影响,并强调评估容错流系统需综合考量多维度指标。
2026-09-25 cs.DC
Serverless Abstractions for Short-Running, Lightweight Streams
Technische Universität Berlin(柏林工业大学)
流函数通过基于迭代器的接口,为短时、轻量级流提供高效处理,减少99%的处理开销。
2026-03-03 cs.DC
Hazelcast Jet: Low-latency Stream Processing at the 99.99th Percentile
Jet是Hazelcast在过去五年中开发的一款开源、高性能、分布式流处理器。Jet的设计以毫秒级延迟为第99.99百分位数,作为其主要设计目标。最初,Jet的目标是成为一个执行引擎,在Hazelcast的内存数据网格(IMDG)生成的流之上执行复杂的业务逻辑:一组高性能、内存中、分区和复制的数据结构。随着时间的推移,Jet发展成为一个成熟的横向扩展流处理器,可以处理无序流和一次处理保证。Jet的端到端延迟在毫秒级,其吞吐量在每个CPU核心数百万个事件的数量级。本文介绍了我们为了最大限度地提高每个CPU核心的性能而做出的主要设计决策,以及经验教训和经验性能评估。
2021-03-18 cs.DB cs.DC
Large-Scale Learning from Data Streams with Apache SAMOA
Apache SAMOA(Scalable Advanced Massive Online Analysis)是一个用于挖掘大数据流的开源平台。大数据被定义为由于时间和内存的复杂性,其大小超出了典型软件工具捕获、存储、管理和分析能力的数据集。Apache SAMOA为最常见的数据采掘和机器学习任务(如分类、聚类和回归)提供了一组分布式流算法,并提供编程抽象来开发新算法。它具有可插拔架构,允许它在几个分布式流处理引擎上运行,如Apache Flink,Apache Storm和Apache Samza。Apache SAMOA是用Java编写的,可以在https://samoa.incubator.apache.org上获得,并获得Apache软件许可证版本2.0。
2018-05-26 cs.DC
Model-driven Scheduling for Distributed Stream Processing Systems
随着物联网(IoT)的发展,分布式流处理框架被普遍使用。这些框架旨在通过伸缩来适应动态输入消息速率。Apache Storm最初由Twitter开发,是一个广泛使用的流处理引擎,其他包括Flink,Spark流。为了保证流媒体应用的成功运行,需要知道流媒体应用的最优资源需求,而过高的资源估计会增加额外的成本,因此需要一些策略来为给定的流媒体应用提出最优的资源需求。在这篇文章中,我们提出了一个模型驱动的方法调度流应用程序,有效地利用先验知识的应用程序提供可预测的调度行为。具体来说,我们使用应用程序性能模型来提供所需的资源分配的可靠估计。此外,这种直觉还驱动资源映射,并有助于缩小估计和实际的低性能和资源利用率。总之,这种模型驱动的调度方法给出了用于在分布式资源上以目标输入流速率执行给定DSPS应用的可预测的应用性能和资源利用行为。
2017-02-06 cs.DC
Auto-tuning Distributed Stream Processing Systems using Reinforcement Learning
对分布式系统进行微调被认为是一项工艺,依赖于直觉和经验。当系统需要近乎实时的地做出反应时,这变得更具挑战性,因为流媒体引擎必须保持预先商定的服务质量指标。在本文中,我们提出了一种自动化方法,该方法基于监督和强化学习方法的组合,以根据先前的负载推荐最合适的杠杆配置。有了这个,流媒体引擎可以自动调整,而不需要人类来确定正确的方式和适当的时间来部署它们。这为今天尚未应用的新配置打开了大门,因为管理这些系统的复杂性已经超过了人类专家的能力。我们展示了强化学习系统如何在比人类更短的时间内找到更好的配置,并适应不断变化的工作负载。
2018-09-14 cs.DB cs.DC cs.LG
Streaming vs. Functions: A Cost Perspective on Cloud Event Processing
在云事件处理中,在边缘生成的数据由云资源实时处理。分布式流处理(DSP)和功能即服务(FaaS)都被提出来实现这样的事件处理应用。FaaS强调快速开发和易于操作,而DSP强调高效处理大数据量。尽管它们的体系结构不同,但两者都可以用于建模和实现松耦合的作业图。在本文中,我们从成本角度考虑FaaS和DSP的选择。我们使用云FaaS和DSP从Theodolite基准测试套件中实现无状态和有状态工作流。在广泛的评估中,我们展示了应用程序类型,云服务提供商和运行时环境如何影响应用程序部署的成本,并为云工程师提供决策指南。
2022-08-12 cs.DC
Big Data-Driven Fraud Detection Using Machine Learning and Real-Time Stream Processing
本文提出结合 Kafka、Flink、Spark 等大数据实时流处理工具与机器学习模型的反洗钱欺诈检测方案,在合成 AML 数据集上取得超过 99% 的分类准确率。
2025-05-27 cs.DC
Khaos: Dynamically Optimizing Checkpointing for Dependable Distributed Stream Processing
分布式流处理系统正在成为大数据处理平台越来越重要的一部分,因为用户越来越依赖于它们提供快速访问新结果的能力。因此,根据这些结果及时做出决策取决于系统容忍故障的能力。通常,这些系统通过实现检查点和回滚恢复来实现容错和从部分故障中自动恢复的能力。然而,由于在这些分布式环境中发生部分故障的统计概率以及作业预期操作的工作负载的可变性,静态配置通常不能以低开销满足服务质量约束。在本文中,我们提出了Khaos,一种新的方法,它利用虚拟云自动化技术的并行处理功能,用于分布式流处理作业中容错配置的自动运行时优化。我们的方法采用了三个后续阶段,借用混沌工程的原则:建立稳定状态的处理条件,进行实验,以更好地了解系统如何执行故障,并使用这些知识,不断减少服务质量违规。我们与Apache Flink一起实现了Khaos原型,并通过实验证明了它的有用性。
2023-01-26 cs.DC
RIoTBench: A Real-time IoT Benchmark for Distributed Stream Processing Platforms
物联网(IoT)是一种新兴的技术范式,其中数百万个传感器和执行器帮助实时的【形】监控和管理物理、环境和人类系统。物联网应用固有的闭环响应能力和决策能力使其成为使用低延迟和可扩展流处理平台的理想候选者。托管在云数据中心上的分布式流处理系统(DSPS)正在成为任何物联网软件架构中实时的【形】数据处理和分析的重要引擎。但是,当代DSPS的功效和性能尚未针对物联网应用和数据流进行严格的研究。在这里,我们开发了实时物联网基准套件RIoTBench,以及性能指标,以评估流物联网应用的DSPS。该基准测试包括27个常见的物联网任务,这些任务分为不同的功能类别,并作为可重用的微基准测试实现。此外,我们提出了由这些任务组成的四个物联网应用程序基准,并利用DSPS的各种语义。这些应用程序基于常见的物联网模式,用于数据预处理,统计汇总和预测分析。这些与来自智能城市和健身的真实物联网观察的四个流工作负载相结合,峰值流速率范围从500到10000条消息/秒,频率分布多样。我们在Microsoft Azure公共云上验证了流行的Apache Storm DSPS的RIoTBench套件,并提出了经验观察。DSPS研究人员可以使用该套件进行性能分析和资源调度,物联网从业人员可以使用该套件评估DSPS平台。
2017-01-30 cs.DC
STRETCH: Virtual Shared-Nothing Parallelism for Scalable and Elastic Stream Processing
流处理应用程序通过数据分析任务的有向无环图从原始数据中提取价值。无共享(SN)并行是扩展流处理应用的事实标准。给定一个应用程序,SN并行实例化每个分析任务的几个副本,使每个实例负责整个分析的专用部分,并依赖于专用队列在连接的实例之间交换数据。一方面,SN并行性可以向上和向外扩展应用程序的执行,因为线程可以在进程/节点内和跨进程/节点运行任务实例。另一方面,它缺乏共享可能会导致不必要的开销,并阻碍扩展时,线程操作的数据,可以共同访问共享内存。这种权衡促使我们研究一种流处理应用程序利用共享内存并增强扩展(在横向扩展之前)的方法,同时坚持流处理应用程序广泛采用的基于SN的API。我们介绍了STRETCH,一个框架,最大限度地扩大规模,并提供即时的弹性重新配置(无状态转移)的流处理应用程序。我们提出了虚拟无共享(VSN)的并行性和弹性的概念,并提供了正式的定义和正确性证明的语义分析任务支持的STRETCH,显示他们扩展了常见的流处理引擎。我们还提供了一个完全实现的原型,并表明STRETCH的性能超过了最先进的框架,如Apache Flink,并提供了前所未有的超快重新配置,即使在配置数十个新任务实例时也不到40毫秒。
2022-04-29 cs.DC
MorphStream: Scalable Processing of Transactions over Streams on Multicores
本文提出多核事务流处理引擎 MorphStream,通过规划、调度、执行三阶段范式支持动态调度与并行处理,实验表明其在多场景下优于现有 TSPE。
2023-07-24 cs.DB cs.DC
Scalable real-time processing with Spark Streaming: implementation and design of a Car Information System
流数据处理是当今大数据领域的热门话题,因为它可以在低延迟内处理大量事件。最常用的开源流处理平台之一是Spark Streaming,本文基于真实世界的用例对其进行了演示和讨论。该用例是关于汽车信息系统的,它是经典流处理系统的一个示例。首先,系统被设计和工程化,其中应用程序架构被仔细地创建,因为它应该适合于类似的用例。在本文的最后,CIS和火花流的目标问题度量模型的使用进行评估。评估证明,Spark Streaming能够以可扩展和容错的方式创建流处理。但它也表明Spark是一个非常快速的项目,这可能会在软件项目的开发和维护过程中造成问题。
2017-09-14 cs.DB cs.DC
Streaming Right Multiplication over Grammar-Compressed Matrices: A Memory-Bounded GPU Engine for Genotype and Graph Data
Sant’Anna School of Advanced Studies(圣安娜高等研究学院);University of Pisa(比萨大学)
研究在GPU内存受限场景下语法压缩矩阵右乘问题,提出基于特定有向无环图及分层语法的方法,实现流式评估,在基因型矩阵和软件遗产图上有空间优势、时间性能良好且能量较低。
2026-07-29 cs.DC cs.DS cs.MS
Incremental Query Processing on Big Data Streams
本文讨论了分布式流处理引擎(DSPE)上的大规模增量数据分析的在线查询处理。我们的目标是将任何类似SQL的查询自动转换为增量DSPE程序。与其他方法相比,我们得到的增量程序返回准确的结果,而不是近似的答案。这是通过在查询计算生存期内保留最小状态,并使用增量计算技术在每个时间间隔(取决于当前状态和最新批次的数据)返回准确的快照答案来实现的。我们的方法可以处理嵌套数据汇集上的多种形式的查询,包括迭代和嵌套查询、具有聚合的分组和等价连接。最后,我们报告了我们的框架的原型实现,称为MRQL流,运行在Spark之上,我们通过实验验证了我们的方法的有效性。
2016-03-06 cs.DB cs.DC
MultiChain Blockchain Data Provenance for Deterministic Stream Processing with Kafka Streams: A Weather Data Case Study
Technicshe Universität Berlin(柏林工业大学);Zuse Institute Berlin(齐泽研究所柏林)
本研究提出基于区块链的溯源架构,用于Kafka Streams中的确定性流处理,通过加密数据和检查点验证数据完整性与分析正确性。
2026-01-25 cs.CR cs.DC
Cloud and the City: Facilitating Flexible Access Control over Data Streams
传感设备的激增产生了过多的数据流,这些数据流又可以被利用来执行复杂的分析,以支持各种实时应用和服务以及长期规划,例如,在智能城市或灵巧家庭的背景下,仅举几个突出的例子。成熟的云基础设施使这一愿景比以往任何时候都更接近现实。然而,我们认为,数据所有者能够灵活轻松地控制与其他实体共享数据的粒度是非常重要的-让数据所有者感到舒适的共享,并利用这种细粒度的控制来实现不同的业务模型或逻辑。在本文中,我们探讨了一些基本的操作,灵活地控制对数据流的访问,并提出了一个框架eXACML+扩展OASIS的XACML模型,以实现相同的。我们开发了一个原型,使用商业StreamBase引擎来展示流数据处理与细粒度访问控制机制(一个小的,但重要的选择集)的无缝结合,并研究了框架的有效性的基础上,在云环境中的实验。
2012-05-31 cs.CR cs.DC
Fast Prototyping of Distributed Stream Processing Applications with stream2gym
本文提出基于 Mininet 的 stream2gym 工具,通过高层接口支持大规模分布式流处理应用的快速原型化与多条件测试,并以低资源消耗获得与硬件测试平台相近的准确结果。
2024-09-01 cs.DC cs.NI
Distributed Streaming Analytics on Large-scale Oceanographic Data using Apache Spark
来自不同领域的真实数据需要实时可扩展的分析。大规模数据处理框架或引擎(如Hadoop)在需要即时结果时会出现不足。Apache Spark的流媒体库越来越成为一个受欢迎的选择,因为它可以流式传输和分析大量数据。本文分析了美国全球海洋数据同化实验(USGODAE)数据目录中收集的大尺度时空数据,展示并评估了Spark流处理的能力。我们通过在流作业的中间添加和删除节点来测量流的延迟并监控可扩展性。我们还验证了容错停止节点在中间的一个工作,并确保该工作被重新调度和完成其他节点。我们设计了一个全栈应用程序,可以自动执行数据汇集、数据处理和结果可视化。我们还使用Google Maps API来可视化结果,方法是使用各种分析的值对世界地图进行颜色编码。
2019-08-01 cs.DB cs.DC cs.IR
StreamBox-TZ: Secure Stream Analytics at the Edge with TrustZone
虽然在云边缘处理大量的物联网数据流是很有吸引力的,但这样做会将数据暴露给边缘上复杂、易受攻击的软件堆栈,从而带来安全威胁。为此,我们主张将数据及其计算隔离在边缘的可信执行环境(TEE)中,将它们与我们认为不可信的剩余边缘软件堆栈隔离开来。这种方法面临两个主要挑战:(1)在单个TEE中执行高吞吐量、低延迟的流分析,这受到低可信计算基础(TCB)和有限物理内存的限制;(2)验证流分析的执行,因为执行涉及边缘上的不可信软件组件。作为回应,我们提出了StreamBox-TZ(SBT),这是一个用于边缘平台的流分析引擎,可提供强大的数据安全性,可验证的结果和良好的性能。SBT为基于ARM TrustZone的TEE提供了一个设计和优化的数据平面。它支持持续的远程认证,以确保分析正确性和结果新鲜度,同时产生低开销。SBT仅向TCB添加42.5 KB的可执行文件(占整个TCB的16%)。在八核ARMv 8平台上,它通过以亚秒级延迟处理高达140 MB/秒(12 M事件/秒)的输入事件来提供最先进的性能。SBT的安全机制所产生的开销小于25%。
2019-06-05 cs.CR cs.DC cs.OS
A Comprehensive Benchmarking Analysis of Fault Recovery in Stream Processing Frameworks
如今,一些软件系统依赖于流处理架构来提供可扩展的性能并近实时地处理大量数据。流处理框架通过将应用程序的执行分布在多台机器上来促进可伸缩计算。尽管性能被广泛研究,容错的测量-流处理框架提供的一个关键功能-仍然没有得到适当的测量更新和全面的测试床。此外,故障恢复对性能的影响大多被忽略。本文提供了一个全面的故障恢复性能,稳定性和恢复时间在云原生环境与现代开源框架,即Flink,Kafka流,和火花结构化流的分析。我们的基准分析的灵感来自混沌工程注入故障。一般来说,我们的研究结果表明,有很大的变化相比,以前的研究在分布式流处理的故障恢复。特别是,结果表明,Flink是最稳定的,并具有最好的故障恢复之一。此外,Kafka Streams在失败后表现出性能不稳定性,这是由于其当前的重新平衡策略在负载均衡方面可能是次优的。Spark Structured Streaming显示了适当的故障恢复性能和稳定性,但具有更高的事件延迟。我们的研究旨在(i)帮助行业从业者选择最合适的流处理框架,以有效和可靠地执行数据密集型应用程序;(ii)支持研究人员应用和扩展我们的研究方法以及我们的基准;(iii)识别,预防和协助解决生产部署中的潜在问题。
2024-05-29 cs.DC cs.SE
An Exploratory Study of How Specialists Deal with Testing in Data Stream Processing Applications
[背景]如今,在许多类型的系统中,数据量和速度都有巨大的增长。它为必须以低延迟和高吞吐量处理数据流的基础设施和应用程序带来了新的需求。测试处理此类数据流的应用程序已成为工程师面临的重大挑战。公司正在采取不同的方法来处理这个问题。一些开发了自己的测试解决方案,而另一些则采用了现有测试技术的组合。对于如何或在何种情况下实施这些解决办法,没有达成共识。[目的]就我们所知,没有关于该主题的统一文献。本文试图通过与从业人员进行探索性研究来填补这一空白。[方法]采用质的研究方法,特别是访谈法和问卷调查法。我们采访了12位从事数据流相关项目的专业人士,并对其他105位专业人士进行了问卷调查。访谈经过了转录和编码过程,并对问卷进行了分析,以加强调查结果。[结果]本研究介绍了当前数据流处理应用中围绕软件测试的实践。这些实践涉及方法、技术和工具。[结论]我们的主要贡献是从实践的角度测试流媒体应用程序时出现的许多挑战的替代方案的概要。
2019-09-24 cs.DC cs.SE
AIR: A Light-Weight Yet High-Performance Dataflow Engine based on Asynchronous Iterative Routing
分布式流处理系统(DSPS)是当前数据管理中最新兴的主题之一,其应用范围从实时事件监控到处理复杂的流程序和大数据分析。该领域的主要市场参与者明显由Apache Spark和Flink代表,它们为SQL,统计推断,机器学习,流处理等提供了各种前端API。然而,很少有关于这些引擎集成到底层高性能计算(HPC)基础设施和它们使用的通信协议的细节报道。例如,Spark和Flink是用Java实现的,仍然依赖于一个专用的主节点来管理计算集群中工作节点之间的控制流。在本文中,我们描述了我们的AIR引擎,这是从头开始设计的C++使用消息传递接口(MPI),pthreads的多线程,并直接部署在一个共同的HPC工作负载管理器,如SLURM的顶部。AIR实现了一种轻量级的动态分片协议(称为“异步迭代路由”),它促进了所有客户端节点之间的直接和异步通信,从而完全避免了由主节点的控制流引起的开销,否则可能形成性能瓶颈。我们在各种基准设置上的实验证实,AIR在延迟和吞吐量方面优于Spark和Flink高达15倍;此外,我们还证明AIR比现有的DSP更好地扩展到由多达8个节点和224个核心组成的集群。
2020-01-03 cs.DC cs.SY eess.SY
ShuffleBench: A Benchmark for Large-Scale Data Shuffling Operations with Distributed Stream Processing Frameworks
本文提出新型基准测试程序ShuffleBench,用于评估分布式流处理框架的数据shuffle性能,它高度可配置、开源且支持四款主流框架,实验显示Flink吞吐量最高、Hazelcast延迟最低。
2024-03-07 cs.DC cs.SE