写点什么

伯克利开源 Confluo:吞吐量比 Kafka 高 4 到 10 倍

  • 2018-12-14
  • 本文字数:2890 字

    阅读完需:约 9 分钟

伯克利开源Confluo:吞吐量比Kafka高4到10倍

AI 前线导读:


伯克利 RISE 实验室又有新动作,最近开源了一个多数据流实时分布式分析系统 Confluo。它可以作为网络监控和诊断框架,也可以作为时序数据库和发布订阅消息系统。作为时序数据库,它的性能比其他时序数据库高出数倍,而作为发布消息订阅系统,它的吞吐量比 Kafka 高出 4 到 10 倍。具体请见下文。


更多干货内容请关注微信公众号“AI 前线”(ID:ai-front)


Confluo 是一个多数据流分析系统,可实现实时的分布式数据分析。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 概览

很多现代应用程序,例如基于终端主机的网络监控、物联网和数字家庭一体化以及数据中心运营服务,它们的每台服务器每秒种都会捕获到数千万个数据点。这些数据被用于在线查询,实现可视化和监控,或者用于离线查询,进行故障分析和系统优化。要实现这些应用程序,需要一个实时监控和分析工具,能够支持高吞吐量数据摄取、低延迟的在线查询和低开销的离线查询。



虽然现在已有的数据结构可以支持高吞吐量数据摄取和丰富的在线和离线查询,但到目前为止,这两种数据结构仍然是互斥的。在从多个数据流摄取数据时,上述的查询需要更新多个数据结构——原始数据、聚合统计信息和物化视图。遗憾的是,用于支持这些查询的数据结构往往具有较高的更新开销,而且无法维持大多数应用程序所需的数据摄取速率。另一方面,可以维持高数据摄取速率的数据结构往往只支持非常简单的查询。


为了应对这一挑战,我们构建了 Confluo,一个同时实现了高吞吐量数据摄取和丰富的离线和在线查询的系统。

假设

Confluo 通过利用其目标应用程序语义来简化底层系统的假设,从而实现上述的目标。Confluo 的主要简化假设是:



  • 应用程序数据流表现出一次性写入语义(即数据是追加写入的);



  • 监控和诊断应用程序使用固定大小的属性(例如,网络数据包中固定宽度的标头,分布式传感器网络中的 64 位时间戳和温度读数,数据中心操作指标中的浮点精度 CPU 和内存统计信息等);



  • 应用程序不需要事务性语义来进行并发操作,原子性语义就足够了。


Confluo API

Confluo 操作数据流,数据流由记录组成,记录使用了包含强类型属性集合的预定义模式(schema)。如上所述,Confluo 目前只支持固定大小的属性,包括原始数据类型,如二进制、整数或浮点数,或特定于域的类型,如 IP 地址、端口、传感器读数等。


Confluo 的模式是强类型属性的集合,语义类似于 JSON,例如,下面是一个带有五个属性的简单模式示例:


{    timestamp: LONG,    op_latency_ms: DOUBLE,    cpu_util: DOUBLE,    mem_avail: DOUBLE,    log_msg: STRING(100)}
复制代码


目前,Confluo 只支持具有固定模式的数据流,即数据流中的记录必须符合给定的模式。


为了加速即时离线查询,可以为模式中的属性添加索引。为了支持在线查询,Confluo 还采用一种匹配操作语言,其中包含三个主要元素:过滤器、聚合和触发器。


Confluo 过滤器是一种表达式,由任意有界宽度属性和关系运算符及布尔运算符组成(参见下表),用于标识与表达式匹配的记录。



Confluo 聚合(参见下表)用于计算与特定过滤器表达式相匹配的所有记录的属性的可计算函数。



Confluo 触发器是基于 Confluo 聚合计算得到的布尔条件(例如<、>、=等)。



Confluo 只支持为模式中具有固定大小的属性创建索引、过滤器、聚合和触发器。在添加好这些东西后,在新的数据记录到达时,它们都会被计算和更新。Confluo 目前不支持连接操作,因为在大多数监控和诊断应用程序中,这个操作并不常见。

实现

Confluo 使用了一种新的数据结构作为数据流的基本存储抽象:Atomic MultiLog,一组无锁并发日志,可用于存储原始数据、聚合统计信息和物化视图,并使用新的技术将整个集合作为单个原子操作进行更新。Atomic MultiLog 利用上述的应用程序工作负载假设来实现高吞吐量数据摄取和丰富的在线和离线查询。



Atomic MultiLogs 与数据库表的接口有点类似。为了存储来自不同流的数据,应用程序可以创建具有预定义模式的 Atomic MultiLog,并写入符合模式的数据流。然后,应用程序在 Atomic MultiLog 上创建索引、过滤器、聚合和触发器,为各种监控和诊断功能提供支持。


有关如何实现和使用 Confluo 的更多信息,请查看相关文档(https://ucbrise.github.io/confluo/)。

性能


我们针对各种应用程序对 Confluo 进行了评估,包括网络监控和诊断、时间序列数据库和 pub-sub 消息系统。上图显示了 Confluo 在时间序列数据库应用程序中的性能表现,并将其与运行在配备了 18 个 CPU 内核和 60GB RAM 的 EC2 c4.8xlarge 实例上的 BTrDB、CorfuDB 和 TimescaleDB 进行了比较。我们使用了开放式uPMU数据集的 5 亿个记录子集,这个数据集包含了安装在电网中的多个μPMU 的电压、电流和相位的读数,为期三个月。


我们发现,像 CorfuDB 和 TimescaleDB 这样的系统的性能比 BTrDB 和 Confluo 低 10 倍。但请注意,这不算是个缺点:CorfuDB 和 TimescaleDB 支持比 BTrDB 和 Confluo 更强的(事务性)语义。因此,根据所需语义的不同,任何一类系统对底层应用程序来说都可能是有用的。总而言之,与最先进的时间序列数据库相比,Confluo 的写入速度提高了 2 至 20 倍,写入延迟降低了 2 至 10 倍,时间区间过滤器的吞吐量提高了 1.5 至 5 倍,延迟降低了 5 至 20 倍。


网络监控和诊断工具的比较结果可以在我们即将发布的NSDI论文中找到,而 pub-sub 系统的比较结果可以在这里找到。

限制

如前所述,Confluo 做了一些简化的假设,从而能够有效地实现各种在线和离线查询,同时支持每台服务器摄取数千万个数据点。因此,Confluo 只支持具有固定宽度的数据属性。此外,Confluo 目前只支持具有严格模式的流,不过我们也正在努力支持更灵活的模式。

展望未来

我们正在开发另外几个有趣的项目,以便让 Confluo 更具表现力并进一步提升效率。包括支持使用草图对数据流进行近似查询,支持基于数据流的 SQL 接口,以及通过文件合并和内存池来提高性能。要了解有关 Confluo 的更多信息,请访问我们的项目网站和 GitHub 存储库。


原文链接:


https://rise.cs.berkeley.edu/blog/confluo-millisecond-level-queries-on-large-scale-streaming-data/


2018-12-14 09:005214
用户头像

发布了 322 篇内容, 共 154.0 次阅读, 收获喜欢 148 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

共铸国云智领未来| 以数字林草之“笔” 绘就塞上江南新图景

天翼云开发者社区

优秀的录屏软件:Record It Pro 直装激活版

真大的脸盆

Mac Mac 软件 录屏 屏幕录制 录屏软件

Stepn跑鞋GMT系统开发(NFT链游)

薇電13242772558

NFT链游

移动云发布操作系统迁移工具,助力全场景业务一站式迁移

openEuler

Linux centos 操作系统 虚拟化 openEuler

Dubbo + ZooKeeper|如何解决线上故障排查链路长的难题

云布道师

dubbo

大语言模型(LLMs)和新兴机器学习技术栈

Baihai IDP

人工智能 自然语言处理 NLP 大模型 大模型 白海科技

ChatGPT4 高分通过数据库系统工程师(DBA)认证

NineData

数据库 dba GPT ChatGPT4 数据库系统工程师

HTML5智慧农业大棚Web3D可视化系统

2D3D前端可视化开发

智慧大棚 智慧农业 数字农业 大棚三维可视化 数字孪生智慧大棚

全球掀起AI热,天翼云智算能力已就绪!

天翼云开发者社区

AAA级认证!索信达综合信用水平获高度认可

索信达控股

稳定高效数据库管理:Valentina Studio Pro激活版

真大的脸盆

数据库 Mac 数据库管理工具 Mac 软件 管理数据库

PostgreSQL:psql 介绍

天翼云开发者社区

Linux进程学习【进程地址】

Yohifo

Linux 学习 运维 后端 进程

听说火山引擎推出的DataLeap,已经可以支持万级表的数据血缘图谱了!

字节跳动数据平台

大数据 数据治理 数据研发 企业号 3 月 PK 榜

盘活存储资源,天翼云HBlock助力企业绿色高效发展!

天翼云开发者社区

Ascend CL两种数据预处理的方式:AIPP和DVPP

华为云开发者联盟

人工智能 华为云 昇腾CANN 华为云开发者联盟 企业号 3 月 PK 榜

大语言模型必将取代一切?暂时不会!

深数

人工智能 科技 AGI GPT LLM

开启一个A/B实验到底有多简单?

字节跳动数据平台

云服务 AB testing实战 ab测试 企业号 3 月 PK 榜

使用K8S进行蓝绿部署的简明实操指南

SEAL安全

k8s 企业号 3 月 PK 榜 蓝绿部署

第四朵“云”!全托管的时序数据云平台 TDengine Cloud 正式支持阿里云

TDengine

大数据 tdengine 阿里云 时序数据库 云服务

AntDB-M数据库锁分析,不要错过!

亚信AntDB数据库

数据库 AntDB 国产数据库 AntDB数据库 企业号 3 月 PK 榜

云计算搭上“双碳”,天翼云在绿色算力赛道加速跑

天翼云开发者社区

专场直播预约 | 邀您探讨KaiwuDB 离散制造业场景解决方案

墨天轮

数据库 解决方案 制造业 国产数据库 KaiwuDB

通通透透看无服务器计算:由来、场景和问题

天翼云开发者社区

追踪 Kubernetes 中的数据包

张晓辉

Kubernetes 网络

学完阿里P8面试官推荐的Java高并发核心编程文档后终拿蚂蚁offer

程序知音

Java 并发编程 编程语言 高并发 java架构

伯克利开源Confluo:吞吐量比Kafka高4到10倍_大数据_ANURAG KHANDELWAL_InfoQ精选文章