您的位置:  首页 > 技术杂谈 > 正文

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

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

字节跳动最佳实践

在字节跳动内部,ByteHTAP 目前已支持 User Growth、电商、幸福里、飞书等业务,共 11 个集群 6000+ Core AP 资源,每天 Query 50w+。
作为 ByteHTAP 核心计算引擎的 Flink OLAP,目前相关能力正逐步上线火山引擎商业化产品- 流式计算 Flink 版。作为将字节跳动内部云原生大数据方案整合优化后输出的企业级统一计算引擎,流式计算 Flink 版具备开箱即用、弹性部署、流批一体、OLAP 多模态计算等特性。
 
点击下载 论文原文
展开阅读全文
  • 0
    感动
  • 0
    路过
  • 0
    高兴
  • 0
    难过
  • 0
    搞笑
  • 0
    无聊
  • 0
    愤怒
  • 0
    同情
热度排行
友情链接