Confluo,吞吐量是 Kafka的4到10 倍

近日伯克利 RISE Lab 开源了一个多数据流实时分布式分析系统 Confluo,它即是一个网络监控和诊断框架,也可以作为时序数据库和发布订阅消息系统

源码地址:https://github.com/ucbrise/confluo

当下,类似基于终端主机的网络监控系统、IoT 设备传感器程序等应用,其后端的服务器每秒都可以捕获数千万个数据点。这些数据被用于在线查询,实现可视化与监控,或者用于离线查询,进行故障分析和系统优化。这样的使用场景下,就需要实时监控和分析工具支持,这些工具通常支持高吞吐量数据提取、低延迟在线查询和低开销的离线查询。

虽然目前已经存在一些用于高吞吐量数据提取的数据结构,它们可以支持丰富的在线和离线查询,但是高吞吐量与查询能力目前来看还是互斥的。在从多个数据流提取数据时,查询需要更新多个数据结构,包括原始数据、聚合统计信息和物化视图。但是用于支持这些查询的数据结构往往具有较高的更新开销,而且无法维持大多数应用程序所需的数据提取速率。而另一方面,可以维持高数据提取速率的数据结构往往只支持非常简单的查询。

Confluo 正是为了应对这种情况而产生的,它是一个致力于同时实现高吞吐量数据提取和富有表现力的离线/在线查询的系统。

Confluo 性能强悍,支持:

来自多个数据流的数百万个数据点的高吞吐量并发写入

毫秒级的在线查询

使用最少 CPU 资源的 ad-hoc 查询

不同场景下对 Confluo 进行性能测试,结果显示:

作为一个网络监控和诊断框架,Confluo 能够在单核上以线路速率(10Gbps 链路)执行数千个触发器和数十个过滤器。

作为一个时序数据库,与其它诸如 CorfuDB、TimescaleDB 和 BTrDB 等先进的时序数据库相比,Confluo 的吞吐量提高了 2 到 20 倍,写入延迟降低了 2 至 10 倍,时间区间查询延迟降低了 5 至 20 倍。

作为一个发布订阅消息系统,Confluo 的吐量是 Kafka 的 4 到 10 倍。

更详细的分析:https://rise.cs.berkeley.edu/blog/confluo-millisecond-level-queries-on-large-scale-streaming-data

概述

Confluo是一个用于实时监控和分析数据的系统,支持:

来自多个数据流的数百万个数据点的高吞吐量并发写入;

毫秒级的在线查询;和

使用最少CPU资源的即席查询。

操作模式

Confluo可以在两种模式下使用 - 嵌入式和独立式。

嵌入模式

在嵌入模式下,Confluo在C ++中用作仅限标头的库,允许Confluo使用与应用程序进程相同的地址空间。这样可以实现超低延迟的写入和查询,但只支持用C ++编写的应用程序。

独立模式

Confluo还支持独立模式,其中Confluo作为守护程序服务器进程运行,并允许客户端使用Apache Thrift协议与其通信。操作现在会产生更高的延迟(由于序列化/反序列化开销),但现在可以在网络上运行,并允许Confluo存储来自使用不同语言编写的应用程序的数据。

详细可以查看 https://ucbrise.github.io/confluo/

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181220G0B3SF00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券