1.ByConity发展历程
字节在 ClickHouse 架构基础上进行了升级,于 2020 年在内部启动了 ByConity 项目,并于 2023 年 1 月发布 Beta 版本,5月底正式对外开源。
2.ByConity特性
ByConity 计算与存储分离的架构,将原本计算和存储分别在每个节点本地管理的架构,转换为在分布式存储上统一管理整个集群内所有数据的架构,使得每个计算节点成为一个无状态的单纯计算节点,并利用分布式存储的扩展能力和计算节点的无状态特性实现动态的扩缩容。
这种改进使得 ByConity 具有以下重要特性:
(1)资源隔离:对不同的租户进行资源的隔离,租户之间不会受到相互影响;
(2)读写分离:计算资源和存储资源解耦,确保读操作和写操作不会相互影响;
(3)弹性扩缩容:支持弹性的扩缩容,能够实时、按需的对计算资源进行扩缩容,保证资源的高效利用;
(4)数据强一致:数据读写的强一致性,确保数据始终是最新的,读写之间没有不一致;
(5)高性能:采用了主流的 OLAP 引擎优化,例如列存、向量化执行、MPP 执行、查询优化等提供优异的读写性能。
3.ByConity架构体系
ByConity 的架构分为三层。
(1)服务接入层:负责客户端数据和服务的接入,也就是 ByConity Server。
(2)计算层:ByConity 的计算资源层,由一个或者多个计算组构成,每个 Virtual Warehouse(VW)是一个计算组。
(3)数据存储层:由分布式文件系统,如 HDFS、S3 等构成。
体系架构如下图所示: