码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • XStream: Stream Processing Platform at Facebook


    这是Facebook在FlinkForward2021上的一个talk, 主题如下
    image.png
    在前面的论文中分析了Facebook的实时计算引擎的设计和选型的考量,里面提到了Facebook的实时计算引擎为了满足易用性和性能不同维度的需求,研发了多套实时计算系统如Puma``Stylus``Swift分别使用SQL,C++,Swift来进行研发。但是多套引擎也带来了很多问题,可选择的引擎太多,不同的引擎的功能重叠,对用户和对于引擎维度都有很大的成本。为了能让用户获得一致性的体验,其内部选择将多套引擎整合成一套也就是XStream。
    image.png
    XStream架构分层
    image.png
    他有以下的一些特点

    1. 基于Stylus的一个Native C++的执行引擎
    2. 基于统一的SQL语言,统一的流,批,交互式的查询语言
    3. 使用解释执行而不是编译执行的模式
    4. 和presto/spark 共享使用了向量化的SQL执行引擎

    image.png
    image.png
    SQL上使用标准的SQL2016的语法和Presto统一,并且做了Multi-tumble 和 Mulit-slide window的拓展工作
    image.png
    编译执行的方式就是根据SQL生成的AST tree进行codegen,然后进行编译执行。编译执行的坏处主要是

    • 每个pipeline都会生成一个binary文件
    • scale up down不友好
    • 依赖问题
    • 编译时间较长

    image.png
    最终他们采用的是解释执行的模式。由C++ worker解释执行,一个作业只有一个binary,但是解释执行的效率肯定没有编译执行的效率高,因此他们使用了以下手段来提速

    • 使用列式存储+向量化处理模式
    • 利用simd指令加速

    image.png
    向量化提速用到了最近新起的velox的项目,它是一个C++向量化的SQL执行引擎,由Facebook开源,并在其内部用于Presto和Spark以及XStream的统一的运行时向量化加速,velox相关的可以参看这篇文章 Velox: 现代化的向量化执行引擎
    image.png
    整体的XStream架构,提供CoreSQL和DataFrame两套api,编译成LogicalPlan和Physical Plan。然后分发到local worker进行处理。Local planner将其翻译成XStream operator, 然后利用Velox 来进行加速处理

    image.png
    Velox和XStream 编译型和解释型的对比数据

    参考

    https://www.youtube.com/watch?v=DNI54vc1ALQ&t=1158s&ab_channel=FlinkForward

  • 相关阅读:
    成都聚华祥科技:店铺优化怎么做
    顾客点餐系统-----操作菜品JDBC代码的编写(2)
    攻防世界碎纸机11
    gcc/g++的使用
    通过js操作元素样式属性
    【WPF】实现动态切换语言(国际化)以及动态换肤功能
    linux查看端口是否开放
    2022年全国最新消防设施操作员(高级消防设施操作员)真题题库及答案
    java基于ssm的汽车维修保养管理系统
    jar文件 反编译(IDEA环境)
  • 原文地址:https://www.cnblogs.com/Aitozi/p/15925571.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号