What is XStream, the stream processing platform used by Facebook?
- 内容介绍
- 文章标签
- 相关推荐
本文共计566个文字,预计阅读时间需要3分钟。
Facebook在FlinkForward 2021上的talk,主要分析了Facebook的实时计算引擎的设计和选型考量。提出为了满足易用性和性能需求,不同维度上的考量。
这是Facebook在FlinkForward2021上的一个talk, 主题如下
在前面的论文中分析了Facebook的实时计算引擎的设计和选型的考量,里面提到了Facebook的实时计算引擎为了满足易用性和性能不同维度的需求,研发了多套实时计算系统如Puma``Stylus``Swift分别使用SQL,C++,Swift来进行研发。但是多套引擎也带来了很多问题,可选择的引擎太多,不同的引擎的功能重叠,对用户和对于引擎维度都有很大的成本。为了能让用户获得一致性的体验,其内部选择将多套引擎整合成一套也就是XStream。
XStream架构分层
他有以下的一些特点
- 基于
Stylus的一个Native C++的执行引擎 - 基于统一的SQL语言,统一的流,批,交互式的查询语言
- 使用解释执行而不是编译执行的模式
- 和presto/spark 共享使用了向量化的SQL执行引擎
SQL上使用标准的SQL2016的语法和Presto统一,并且做了Multi-tumble 和 Mulit-slide window的拓展工作
编译执行的方式就是根据SQL生成的AST tree进行codegen,然后进行编译执行。
本文共计566个文字,预计阅读时间需要3分钟。
Facebook在FlinkForward 2021上的talk,主要分析了Facebook的实时计算引擎的设计和选型考量。提出为了满足易用性和性能需求,不同维度上的考量。
这是Facebook在FlinkForward2021上的一个talk, 主题如下
在前面的论文中分析了Facebook的实时计算引擎的设计和选型的考量,里面提到了Facebook的实时计算引擎为了满足易用性和性能不同维度的需求,研发了多套实时计算系统如Puma``Stylus``Swift分别使用SQL,C++,Swift来进行研发。但是多套引擎也带来了很多问题,可选择的引擎太多,不同的引擎的功能重叠,对用户和对于引擎维度都有很大的成本。为了能让用户获得一致性的体验,其内部选择将多套引擎整合成一套也就是XStream。
XStream架构分层
他有以下的一些特点
- 基于
Stylus的一个Native C++的执行引擎 - 基于统一的SQL语言,统一的流,批,交互式的查询语言
- 使用解释执行而不是编译执行的模式
- 和presto/spark 共享使用了向量化的SQL执行引擎
SQL上使用标准的SQL2016的语法和Presto统一,并且做了Multi-tumble 和 Mulit-slide window的拓展工作
编译执行的方式就是根据SQL生成的AST tree进行codegen,然后进行编译执行。

