Rapid detection and mitigation of issues that impact performance and reliability is paramount for large-scale online services. For real-time detection of such issues, datacenter operators use a stream processor and analyze streams of monitoring data collected from servers (referred to as data source nodes) and their hosted services. The timely processing of incoming streams requires the network to transfer massive amounts of data, and significant compute resources to process it. These factors often create bottlenecks for stream analytics. To help overcome these bottlenecks, current monitoring systems employ near-data processing by either computing an optimal query partition based on a cost model or using model-agnostic heuristics. Optimal partitioning is computationally expensive, while model-agnostic heuristics are iterative and search over a large solution space. We combine these approaches by using model-agnostic heuristics to improve the partitioning solution from a model-based heuristic. Moreover, current systems use operator-level partitioning: if a data source does not have sufficient resources to execute an operator on all records, the operator is executed only on the stream processor. Instead, we perform data-level partitioning, i.e., we allow an operator to be executed both on a stream processor and data sources. We implement our algorithm in a system called Jarvis, which enables quick adaptation to dynamic resource conditions. Our evaluation on a diverse set of monitoring workloads suggests that Jarvis converges to a stable query partition within seconds of a change in node resource conditions. Compared to current partitioning strategies, Jarvis handles up to 75% more data sources while improving throughput in resource-constrained scenarios by 1.2-4.4x.
翻译:快速检测并缓解影响性能和可靠性的问题,对于大规模在线服务至关重要。为实现实时检测,数据中心运维人员使用流处理器分析从服务器(称为数据源节点)及其托管服务收集的监控数据流。及时处理传入的数据流需要网络传输海量数据以及大量计算资源,这些因素常成为流分析瓶颈。为克服瓶颈,当前监控系统采用近数据处理技术,通过两种方式实现:基于成本模型计算最优查询分区,或使用模型无关的启发式方法。最优分区计算代价高昂,而模型无关的启发式方法需迭代搜索大规模解空间。我们结合这两种方法,利用模型无关启发式方法改进基于模型的启发式方法所得的分区方案。此外,当前系统采用算子级分区:若数据源缺乏足够资源执行所有记录上的算子,则仅由流处理器执行。我们转而采用数据级分区,即允许算子同时在流处理器和数据源上执行。我们在名为Jarvis的系统中实现了该算法,使其能快速适应动态资源条件。在多样化监控工作负载上的评估表明,Jarvis能在节点资源条件变化后数秒内收敛至稳定查询分区。与现有分区策略相比,Jarvis在资源受限场景下可处理多达75%的额外数据源,同时吞吐量提升1.2-4.4倍。