新闻详情

新闻详情

首页 / 资讯中心 / 详情

StarRocks 架构解析:从 FE/BE 共享无共享架构到 FE/CN 存算分离与多级缓存

发布时间:2026/9/16 22:14:40来源:尧图网络
StarRocks 架构解析:从 FE/BE 共享无共享架构到 FE/CN 存算分离与多级缓存
StarRocks 架构解析从 FE/BE 共享无共享架构到 FE/CN 存算分离与多级缓存【免费下载链接】starrocksThe worlds fastest open query engine for sub-second analytics both on and off the data lakehouse. With the flexibility to support nearly any scenario, StarRocks provides best-in-class performance for multi-dimensional analytics, real-time analytics, and ad-hoc queries. A Linux Foundation project.项目地址: https://gitcode.com/GitHub_Trending/st/starrocksStarRocks 以简单架构著称整个系统仅由前端FrontendFE与后端两类组件构成不依赖任何外部组件即可在共享无共享shared-nothing与存算分离shared-data两种部署形态之间按需选择。读完本文你将理解 FE/BE/CN 三类节点的职责划分与元数据一致性机制掌握两种架构的适用场景、存储后端与缓存设计并能在实际集群规划中做出正确的选型决策。架构总览只有两类组件StarRocks 的系统架构十分简洁全部组件仅有两种类型前端节点FE负责元数据管理、客户端连接管理、查询规划与查询调度。后端节点分为两类——BEBackend当数据存储于本地存储时部署同时承担数据存储与计算CNCompute Node当数据存储于对象存储或 HDFS 时部署仅负责计算与热点数据缓存。StarRocks 不依赖 ZooKeeper 等任何外部组件从而简化了部署与运维。节点可在不中断服务的前提下水平扩缩容。同时元数据与数据均具备多副本机制既提升了数据可靠性也有效避免了单点故障SPOF。此外StarRocks 兼容 MySQL 协议并支持标准 SQL用户可直接使用 MySQL 客户端连接 StarRocks即时获取分析洞察。架构选型按数据存储位置决策StarRocks 同时支持两种架构二者的根本区别在于数据存储在哪里架构形态数据存放位置后端节点典型场景共享无共享shared-nothing每个 BE 的本地存储BE追求极致查询性能、实时查询存算分离shared-data对象存储或 HDFSCN 仅保留本地缓存CN追求低成本、弹性伸缩、资源隔离用户可以根据自身业务对成本、性能与弹性的不同需求决定数据的存储位置。共享无共享架构Shared-nothing作为典型的 MPPMassively Parallel Processing数据库StarRocks 支持共享无共享架构。在该架构中BE 同时负责数据存储与计算数据本地化计算避免了数据传输与复制从而提供超快的查询与分析性能。该架构支持多副本数据存储增强了集群应对高并发查询的能力并保障了数据可靠性非常适合追求最优查询性能的场景。在共享无共享架构中StarRocks 由 FE 与 BE 两类节点组成FE负责元数据管理与构建执行计划BE执行查询计划并存储数据利用本地存储加速查询并通过多副本机制保障数据高可用。FE元数据与查询调度的中枢FE 承担元数据管理、客户端连接管理、查询规划与查询调度四大职责。每个 FE 使用 BDB JEBerkeley DB Java Edition在内存中保存并维护一份完整的元数据副本从而保证所有 FE 对外提供一致的服务。FE 可分为Leader、Follower与Observer三种角色Leader 宕机后Follower 依据 Raft 协议选举产生新的 Leader。FE 角色元数据管理Leader 选举LeaderLeader FE 可读写元数据Follower 与 Observer 只能读取元数据并将元数据写请求路由给 Leader。Leader 更新元数据后通过 Raft 协议将变更同步给 Follower 与 Observer。只有当元数据变更同步到超过半数的 Follower 后数据写入才被视为成功。Leader 从技术上来说也是 Follower 节点由 Follower 选举产生。执行 Leader 选举需要集群中超过半数的 Follower 处于活跃状态。当 Leader 故障时Follower 会发起新一轮选举。Follower只能读取元数据通过从 Leader 同步并重放日志来更新元数据。参与 Leader 选举选举同样要求集群中超过半数的 Follower 活跃。Observer从 Leader 同步并重放日志以更新元数据。主要用于提升集群的查询并发能力不参与 Leader 选举因此不会增加集群的选举压力。从源码实现看Follower/Observer 的区分与是否对外提供读服务直接相关在 GlobalStateMgr.java 中代码注释明确指出副本与 Observer 节点使用该标志位来决定是否提供读服务同时该值也用于 checkpoint 与 Observer 内存重放进度的标记。元数据的日志存储与重放则由 fe/fe-core/src/main/java/com/starrocks/journal/bdbje/ 目录下的 BDBEnvironment、BDBJEJournal、BDBJournalCursor 等类实现印证了文档所述使用 BDB JE 存储元数据日志的设计。BE存储与计算一体化的执行节点BE 负责数据存储与 SQL 执行两大职责数据存储各 BE 具备对等的数据存储能力。FE 依据预定义规则将数据分发到各 BEBE 对摄入的数据进行转换、按所需格式落盘并为数据生成索引。SQL 执行FE 按查询语义将每条 SQL 解析为逻辑执行计划再转化为可在 BE 上执行的物理执行计划。存储目标数据的 BE 直接在本地执行查询省去了数据传输与复制从而获得高性能。存算分离架构Shared-data对象存储与 HDFS 在成本、可靠性与可扩展性上具备优势。由于存储与计算分离CN 节点的增删无需重新平衡数据这是存算分离架构在弹性方面的重要红利。在存算分离架构中BE 被替换为计算节点CNCN 仅负责数据计算任务与热点数据缓存数据存放在低成本、高可靠的远端存储系统中例如 Amazon S3、Google Cloud Storage、Azure Blob Storage、MinIO 等。缓存命中时查询性能可与共享无共享架构相媲美。CN 节点可按需在秒级完成扩容与缩容从而降低存储成本、实现更好的资源隔离与高弹性。存算分离架构与共享无共享架构同样简洁只包含 FE 与 CN 两类节点唯一区别在于用户需要自行准备后端的对象存储。节点职责存算分离架构中的 FE 功能与共享无共享架构完全一致。BE 被 CN 取代存储功能下沉到对象存储或 HDFS。CN 是无状态计算节点执行 BE 除数据存储外的全部功能。存储方案StarRocks 存算分离集群支持两种存储方案对象存储如 AWS S3、Google GCS、Azure Blob Storage、MinIOHDFS。值得说明的是存算分离集群中的数据文件格式与共享无共享集群存储与计算耦合保持一致数据按 segment 文件组织云原生表shared-data 集群专用表复用了各类索引技术。这意味着用户从本地存储迁移到对象存储时数据格式与索引能力不需要推倒重来。多级缓存弥合远端存储的性能差距存算分离架构解耦了数据存储与计算使两者可独立伸缩从而降低成本、增强弹性但远端访问不可避免会影响查询性能。为消除这一影响StarRocks 构建了覆盖内存、本地磁盘、远端存储的多级数据访问体系以满足不同业务需求针对热数据的查询直接扫描缓存再落到本地磁盘针对冷数据的查询则需从对象存储加载到本地缓存以加速后续查询冷数据访问还通过数据预取prefetch策略进行了优化有效消除查询性能瓶颈。将热数据保持在计算单元附近使 StarRocks 实现了高性能计算 低成本存储的兼顾。缓存的启用时机在建表时决定若建表时启用了缓存数据会同时写入本地磁盘与后端对象存储查询时 CN 节点优先从本地磁盘读取数据未命中时再从后端对象存储拉取并同步写入本地磁盘缓存。两种架构的选型建议决策维度共享无共享FE BE存算分离FE CN 对象存储/HDFS数据本地性数据本地存储本地计算数据存于远端CN 仅缓存查询性能最优尤其实时查询缓存命中时与前者相当存储成本较高依赖本地盘容量更低按量使用对象存储弹性扩缩容需要数据重分布CN 秒级增删无需重平衡数据资源隔离计算与存储耦合存储与计算独立伸缩隔离更清晰适用场景追求最优查询性能、高并发实时分析成本敏感、负载波动大、需要弹性伸缩的场景核心要点可以概括为追求极致性能选共享无共享追求弹性与低成本选存算分离两种架构都只需 FE 加一类后端节点都通过 FE 副本Leader/Follower/Observer BDB JE Raft保障元数据一致性与高可用。本文所依据的官方架构文档位于 docs/en/introduction/Architecture.md三张架构示意图分别对应 architecture_choices.png、shared-nothing.png 与 shared-data.pngFE 角色判定与元数据日志实现可进一步阅读 GlobalStateMgr.java 与 bdbje 目录下的源码进行验证。【免费下载链接】starrocksThe worlds fastest open query engine for sub-second analytics both on and off the data lakehouse. With the flexibility to support nearly any scenario, StarRocks provides best-in-class performance for multi-dimensional analytics, real-time analytics, and ad-hoc queries. A Linux Foundation project.项目地址: https://gitcode.com/GitHub_Trending/st/starrocks创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

斜齿轮刚度计算:MATLAB实现与工程应用 2026/9/16 22:59:56

斜齿轮刚度计算:MATLAB实现与工程应用

1. 斜齿轮刚度计算背景与工程意义齿轮传动系统作为机械装备的核心部件,其动态性能直接影响设备寿命和运行稳定性。在风电齿轮箱、航空发动机等高精度传动领域,斜齿轮凭借承载能力强、传动平稳等优势成为首选方案。但斜齿轮接触线呈空间螺旋分布&#xff…

阅读更多 →
基于PHP+MySQL的校园失物招领系统设计与部署全解析 2026/9/16 22:59:56

基于PHP+MySQL的校园失物招领系统设计与部署全解析

简介:这是一份面向高校计算机相关专业毕业设计的完整项目——基于PHPMySQL的校园失物招领系统,旨在解决校园失物信息发布分散、查询困难、认领效率低等实际痛点。资源共632个文件,其中包含约189个PHP后端源码、34个TPL模板、35个JS脚本、7个C…

阅读更多 →
Vue+SpringBoot+MySQL高校学生管理系统:表结构、并发控制与状态机实战 2026/9/16 22:59:56

Vue+SpringBoot+MySQL高校学生管理系统:表结构、并发控制与状态机实战

简介:一套面向高校学生课程设计与毕业设计场景的完整管理系统源码,基于Vue、SpringBoot与MySQL实现,覆盖学院课程管理、学生选课、课程补考等核心模块,适合计算机及相关专业同学进行项目参考或二次开发。资源包共383个文件&#x…

阅读更多 →
不用装鲁大师,Windows自带这3个入口轻松查看显卡配置 2026/9/16 22:59:56

不用装鲁大师,Windows自带这3个入口轻松查看显卡配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
VS Code中Git完整操作指南:从环境配置到解决冲突 2026/9/16 22:59:56

VS Code中Git完整操作指南:从环境配置到解决冲突

不知道你有没有过这种经历:打开 VS Code 准备提交代码,侧边栏的“源代码管理”图标上亮着一个数字,点进去全是一堆 M/U 标识,却不知道该按哪个按钮;或者好不容易把代码 push 上去了,第二天同事告诉你他拉下…

阅读更多 →
NVIDIA旧驱动版本选择与兼容性实战指南 2026/9/16 22:56:55

NVIDIA旧驱动版本选择与兼容性实战指南

1. 这不是“找驱动”的搬运工活儿,而是NVIDIA显卡用户必须掌握的生存技能你有没有遇到过这种情况:新装的Windows系统,一进游戏就蓝屏;刚升级完Win11,HDR画面突然发灰、色域崩塌;或者用着RTX 3060打《赛博朋…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞