Flink OLAP 助力 ByteHTAP 亮相数据库顶会 VLDB

article/2025/10/29 8:29:43

复杂查询 QPS 破百,字节跳动 Flink OLAP 助力 ByteHTAP 亮相数据库顶会 VLDB。

2022 年 9 月 5 日至 9 月 9 日,VLDB 2022 在澳大利亚悉尼举行。字节跳动基础架构研究成果《ByteHTAP: ByteDance’s HTAP System with High Data Freshness and Strong Data Consistency》被 VLDB 2022 接收,并受邀进行现场报告。

VLDB 会议全称 International Conference on Very Large Data Bases,是数据库领域历史悠久的三大顶级会议 (SIGMOD、VLDB、ICDE) 之一,同时也是数据库领域杰出研究和发展成果的实时传播场所,反映了当前数据库研究的前沿方向、工业界的最新技术和各国的研发水平。VLDB 自 1975 年成立,每年吸引全球顶级研究机构投稿,对系统创新性、完整性、实验设计等方面都要求极高。

 

论文核心贡献

ByteHTAP: ByteDance’s HTAP System with High Data Freshness and Strong Data Consistency》介绍了字节跳动为应对业务场景而构建的具有高数据新鲜度和强数据一致性的 HTAP 系统。

  • ByteHTAP 采用独立引擎和共享存储架构,它的模块化系统设计充分利用了字节跳动现有的 OLTP 系统和 OLAP 系统。

  • ByteHTAP 可以在不到 1 秒的延迟下提供高数据新鲜度,为客户带来许多新的商机,客户还可以根据业务需求配置不同的数据新鲜度阈值。

  • ByteHTAP 通过其 OLTP 和 OLAP 系统的全局时间戳提供强大的数据一致性,使研发人员不必处理系统中复杂的数据一致性问题。

  • ByteHTAP 使用 Flink 作为 OLAP 计算引擎,在计算和存储中引入了一些重要的性能优化,例如重构 Flink 作业调度流程以提升查询 QPS,将计算推到存储层,以及使用删除位图来有效地处理删除等。

  • 文章最后分享了字节跳动在生产中开发和运行 ByteHTAP 的经验教训与最佳实践,包括跨 OLAP 数据库查询能力、高效的数据导入、对 Flink 的开发增强等。

核心计算引擎 Flink OLAP

Flink 作为 ByteHTAP 系统的 OLAP 计算引擎,目前已经在公司内部多个业务上线使用。字节跳动 Flink 技术团队为 Flink 引擎支持 OLAP 计算做了大量深入优化,有效提升 Flink OLAP 计算性能。目前1600 核集群,小数据量下128并发简单查询调度 QPS 达到 1000 以上,复杂查询调度 QPS 达到 100 以上;1000 并发 WordCount 查询 Latency 在 100ms 左右。接下来我们会以 https://issues.apache.org/jira/browse/FLINK-25318 为主,陆续将内部优化贡献给社区。

  1. 查询优化器。支持 TopN,Aggregate 等算子下推;支持 Plan Cache 和 DAG 并行构建;支持 Cached Catalog。TPC-DS SF100 性能提升 20% 以上。
  2. 查询执行优化。支持 ClassLoader 复用和跨作业的 Codegen Cache,降低执行阶段 CPU 使用率和 Meta Space 占用;实现 Runtime Filter 优化 Join 计算性能;异步数据读取和并发度优化等。
  3. 资源管理和作业调度。简化查询资源申请和释放流程,优化 JobMaster 与 ResourceManager/TaskManager 节点交互,实现按照 TaskManager 粒度分配作业资源,提升资源申请性能;支持批量部署计算任务,优化部署结构和序列化/反序列化,提升计算任务部署性能。
  4. 查询结果管理。实现通过 Websocket 协议提交查询,计算结果返回从 Pull 模式优化为 Push 模式,避免 Pull 轮询等待耗时;通过 Dispatcher 连接复用,减少 JobMaster 和 TaskManager 在查询和计算任务初始化时创建不必要的连接和交互,降低查询 Latency。
  5. 内存管理优化。优化 MemoryManager 和 NetworkBufferPool 内存申请和释放管理,减少计算任务启动和停止时的内存交互次数和锁数量;通过减少不必要的 Metrics,增加并行 GC 等优化降低 JobManager/TaskManager 节点的 FGC/YGC,提升查询执行性能和生产集群稳定性。
  6. 网络管理优化。实现 TaskManager 多作业网络连接复用,优化上下游计算任务 Partition Request 交互流程,减少了网络层频繁初始化损耗和上下游计算任务消息数量,提升计算任务初始化性能。
  7. 资源隔离管理。支持按照 TaskManager 维度管理资源组,多租户间查询作业实现物理隔离;实现 TaskManager 内计算任务细粒度调度和执行,支持高负载情况下的小查询优先策略。

字节跳动最佳实践

在字节跳动内部,ByteHTAP 目前已支持 User Growth、电商、幸福里、飞书等业务,共 11 个集群 6000+ Core AP 资源,每天 Query 50w+。

作为 ByteHTAP 核心计算引擎的 Flink OLAP,目前相关能力正逐步上线火山引擎商业化产品-流式计算 Flink 版。作为将字节跳动内部云原生大数据方案整合优化后输出的企业级统一计算引擎,流式计算 Flink 版具备开箱即用、弹性部署、流批一体、OLAP 多模态计算等特性。

论文原文下载:https://www.vldb.org/pvldb/vol15/p3411-chen.pdf


http://chatgpt.dhexx.cn/article/mL1SI8Ny.shtml

相关文章

湖南大学计算机专业硕士研究导师,湖南大学研究生导师李睿科研论文被世界顶级数据库学术会议VLDB刊发...

李睿老师的论文被国际数据库顶级会议Very Large Data Bases接受并发表。 刊发的论文。 日前,以湖南大学信息科学与工程学院计算机科学系研究生导师李睿为第一作者,湖南大学为第一作者单位的科研论文“Fast Range Query Processing with Strong Privacy P…

PM-LSH: A Fast and Accurate LSH Framework for High-Dimensional Approximate NN Search(VLDB)

由于维数灾难的影响,高维空间中的最近邻(NN)搜索本质上是计算开销巨大的。局部敏感哈希(locality-sensitive hashing, LSH)是一种著名的近似神经网络搜索算法,能够以恒定概率在亚线性时间内回答c-近似神经网络(c-ANN)查询。现有的LSH方法主要基于哈希桶建…

Updatable Learned Index with Precise Positions(VLDB2022)

在现代数据库引擎中,索引在加速查询处理方面起着至关重要的作用。“学习索引”的新范式极大地改变了DBMS中索引结构的设计方式。关键的见解是,索引可以被视为预测数据集中查找键位置的学习模型。虽然这类研究在查找时间和索引大小方面都显示出良好的结果…

VLDB 2023 | 北大河图发布分布式训练神器Galvatron, 一键实现大模型高效自动并行...

关注公众号,发现CV技术之美 本文转自机器之心。 北大河图团队提出了一套面向大模型的自动并行分布式训练系统Galvatron,相比于现有工作在多样性、复杂性、实用性方面均具有显著优势,论文成果已经被 VLDB 2023 接收。 最近一段时间&#xff0c…

Benchmarking Learned Indexes(VLDB2021)

最近学习索引结构的进步建议用近似学习模型来替代现有的索引结构,比如b树。在这项工作中,我们提出了一个统一的基准,它将三种已经学习过的索引结构的优化实现与几种最先进的传统基准进行比较。通过使用四个真实的数据集,我们证明了…

阿里云数据库再获学术顶会认可,一文全览VLDB最新亮点

一年一度的数据库领域顶级会议VLDB 2019于当地时间8月26日-8月30日在洛杉矶圆满落幕。在本届大会上,阿里云数据库产品团队浓墨登场,不仅有多篇论文入选Research Track和Industrial Track,为了进一步加深产学研学术交流,阿里云还在…

2019计算机研究生暑期学校,2019年度VLDB暑期学校

由CCF数据库专业委员会、VLDB中国数据库学院主办,中国人民大学信息学院与数据工程与知识工程教育部重点实验室承办的2019年度VLDB暑期学校(VLDB Summer School 2019)于2019年7月22日在中国人民大学信息楼报告厅隆重举行开班仪式。出席开班仪式的嘉宾有:中…

13 种高维向量检索算法全解析!数据库顶会 VLDB 2021 论文作者干货分享

编者按: 以图搜图、商品推荐、社交推荐等社会场景中潜藏了大量非结构化数据,这些数据被工程师们表达为具有隐式语义的高维向量。为了更好应对高维向量检索这一关键问题,杭州电子科技大学计算机专业硕士王梦召等人探索并实现了「效率和精度最…

Deep Upsupervised Cardinality Estimation 解读(2019 VLDB)

Deep Upsupervised Cardinality Estimation 解读(2019 VLDB) Deep Upsupervised Cardinality Estimation选择度(基数)估计问题定义选择度和数据联合分布的关系深度自回归模型如何计算joint distribution编码解码策略具体执行属性的…

VLDB 2021 COCO 论文阅读

Epoch-based Commit and Replication in Distributed OLTP Databases 记录一篇之前读过的论文。。。 整篇论文的核心在于Epoch,将传统数据库以事务为粒度提交和恢复变成了以Epoch为粒度来提交和恢复,这样做的好处就是可以减少2PC和同步复制的时间开销。…

【区块链论文整理】VLDB篇

VLDB (Very Large Data Base)是数据库三大顶会之一,近几年也发表了不少水平很高的文章。本文主要针对VLDB 会议中区块链相关的论文进行简单整理。 2021 SlimChain: Scaling Blockchain Transactions through Off-Chain Storage and Parallel Processing…

入选数据库顶会 VLDB:如何有效降低产品级内存数据库快照尾延迟?

阿里云操作系统团队、阿里云数据库团队以及上海交通大学新兴并行计算研究中心一起合作的论文 “Async-fork: Mitigating Query Latency Spikes Incurred by the Fork-based Snapshot Mechanism from the OS Level” 被数据库系统领域顶会 Very Large Data Bases Conferences (V…

VLDB 2023 | 基于擦除的浮点无损压缩(附论文和源码)

大量浮点时间序列数据正以前所未有的高速率生成。一种高效、紧凑、无损的时间序列数据压缩方法对海量数据的应用场景至关重要。现有的大多数浮点无损压缩方法是基于异或操作,但它们没有充分利用尾随零,这通常会导致压缩率不尽如人意。本次为大家带来重庆…

运算符—逻辑运算符

目录 5.逻辑运算符 5.1逻辑运算符概述 5.2短路逻辑运算符 5.逻辑运算符 (学完之后要求能够使用逻辑运算符完成逻辑运算) 5.1逻辑运算符概述 在数学中,一个数据x,大于3,小于6,我们可以写为这样来表示&am…

C语言关系运算和逻辑运算

一、关系运算 1.关系运算符 每个关系运算符对它左侧值和右侧值进行比较大小的运算 2.关系表达式 用关系运算符连接起来的式子。 若关系为真,关系表达式的值为1; 若关系为假,关系表达式的值为0; 3.优先级 关系运算符优先级低于算术…

C语言复习--逻辑运算符|| 和,!

&& 只有两个条件都为真时,才为真。||只要一个为真,就为真。 逻辑运算符很重要的法则是短路法则。 逻辑运算符的运算顺序都是从左到右计算。 && 当左侧条件为假时,就不计算右侧。 || 都左侧条件为真时,就不计…

C语言:关系运算符逻辑运算符

本节的所讲解的符号,大家在生活中应该都有用过,像我们去商场买东西,都会比较一下价格,是不是相等啊,哪家的贵,哪家的便宜啊。 在C语言中程序中也存在这样的比较,这个时候就需要用到关系运算符了…

C语言逻辑运算符详解

情景模式&#xff1a;现在研发出了一款新的软件&#xff0c;要求使用者必须成年&#xff0c;并且成绩大于等于60&#xff0c;该怎么办呢&#xff1f; 或许你会想到使用嵌套的 if 语句&#xff0c;类似下面这样的代码&#xff1a; #include <stdio.h> int main() {int a…

C 语言 逻辑运算符

文章目录 介绍逻辑运算符一览案例演示 介绍 用于连接多个条件&#xff08;一般来讲就是关系表达式&#xff09;&#xff0c;最终的结果要么是真(非 0 表示)&#xff0c;要么是 假(0 表示) 。 逻辑运算符一览 下表显示了 C 语言支持的所有逻辑运算符。假设变量 A 的值为 1&am…

☀️光天化日学C语言☀️(11)- 逻辑运算符 | 我是一个有逻辑的人

&#x1f649;饭不食&#xff0c;水不饮&#xff0c;题必须刷&#x1f649; C语言免费动漫教程&#xff0c;和我一起打卡&#xff01; &#x1f31e;《光天化日学C语言》&#x1f31e; LeetCode 太难&#xff1f;先看简单题&#xff01; &#x1f9e1;《C语言入门100例》&#…