开源最前线(ID:OpenSourceTop) 猿妹 编译
链接:https://rise.cs.berkeley.edu/blog/confluo-millisecond-level-queries-on-large-scale-streaming-data/
近日伯克利 RISE Lab 开源了一个多数据流实时分布式分析系统 Confluo,它即是一个网络监控和诊断框架,也可以作为时序数据库和发布订阅消息系统。以下为伯克利博客原文:
我们很高兴Confluo作为开源C ++项目开源,其中包括:
Confluo的数据结构库,支持高吞吐量日志,以及各种在线(实时聚合,条件触发器执行等)和离线(即时过滤器,聚合等)的查询;
Confluo服务器实现,它封装数据结构并通过提供RPC接口,以及C ++,Java和Python中的客户端库。
我们针对几种不同的应用场景评估了Confluo,包括:
作为一个网络监控和诊断框架,Confluo能够在单个核心上以线速(10Gbps链路)执行数千个触发器和数十个过滤器。
作为一个时间序列数据库,与先进技术(CorfuDB,TimescaleDB和BTrDB)相比,Confluo的吞吐量提高了2-20倍,写入延迟降低了2-10倍,吞吐量提高了1.5倍-5倍,时间范围查询延迟降低了5-20倍。
作为一个pub-sub系统,Confluo在发布订阅吞吐量方面弊Apache Kafka快了 4-10倍。
Confluo 概览
许多现代应用程序(例如,基于终端主机的网络监控,LOT以及数据中心运营服务)每个服务器每秒捕获数千万个数据点。此数据被用于在线查询,可视化、监控以及用于离线故障分析或者系统分析等。实现这些应用程序需要实时监控和分析工具,这些工具要能够支持高吞吐量数据提取,低延迟在线查询和低消耗的离线查询。
虽然现在已经有支持高吞吐量数据摄取的数据结构,并且支持丰富的在线和离线查询,但到目前为止这两种结构依然是相互排斥的。在从多个数据流提取数据时,查询需要更新多个数据结构,包括原始数据、聚合统计信息和物化视图。
为了应对这一挑战,我们构建了Confluo,这是一个致力于同时实现高吞吐量数据提取和富有表现力的离线/在线查询的系统。
Confluo 数据流的基本存储抽象使用了一种新的数据结构:Atomic MultiLog,一组无锁并发日志,用于存储原始数据、聚合统计信息和物化视图,并使用新的技术将整个集合作为单个原子操作进行更新。Atomic MultiLog 利用上述的应用程序工作负载假设来实现高吞吐量数据摄取和丰富的在线和离线查询。
Atomic MultiLogs 与数据库表的接口有点类似。为了存储来自不同流的数据,应用程序可以创建具有预定义模式的 Atomic MultiLog,并编写符合模式的数据流。然后,为启动监视和诊断功能,应用程序会在 Atomic MultiLog 上创建索引、过滤器、聚合和触发器。
Confluo目前仅支持具有严格模式的流,为了使Confluo更具表现力和效率,我们正在开展多个有趣的项目,其中就包括使用草图对数据流进行近似查询,支持基于数据流上的SQL接口,以及通过文件合并和内存池提高性能等,让我们一起期待吧。
●编号491,输入编号直达本文
●输入m获取文章目录
领取专属 10元无门槛券
私享最新 技术干货