目錄
1 引言
2 Doris 架構全景圖
2 核心組件技術解析
2.1 Frontend 層(FE)
2.2 Backend 層(BE)
3 數據存儲與復制機制
3.1 存儲架構演進
3.2 副本復制策略
4 查詢處理全流程解析
4.1 查詢生命周期
5 高可用設計
5.1 FE高可用架構
5.2 BE故障恢復
6 總結
1 引言
Apache Doris作為一款基于MPP架構的高性能實時分析數據庫,憑借其極速的OLAP查詢能力和簡單易用的特性,在大數據領域獲得了廣泛應用。
2 Doris 架構全景圖

- 三層服務架構:由Frontend(FE) 集群和Backend(BE) 集群構成計算存儲分離架構,通過Broker實現外部數據源訪問
- 元數據雙環路:FE Master主導元數據變更,Follower通過Paxos協議保證強一致性,Observer提供只讀擴展
- 數據分片機制:采用動態分片(Tablet)設計,每個分片包含多個Rowset實現增量更新
- 存儲引擎:采用列式存儲格式,支持多種索引結構(Zone Map、Bloom Filter)
- 計算引擎:基于LLVM的向量化執行引擎,支持Pipeline執行模式
2 核心組件技術解析
2.1 Frontend 層(FE)
角色定位:作為系統的"大腦",承擔元數據管理、查詢計劃生成、用戶訪問控制等核心職責,采用 Shared-Nothing 架構實現水平擴展關鍵模塊:
- Catalog Manager:存儲表結構、分區信息、分片位置等元數據,通過多版本控制(MVCC)保證事務一致性,采用兩階段提交協議管理Schema變更
- Query Planner:將SQL解析為邏輯計劃,通過CBO(基于成本的優化器)生成物理執行計劃,優化策略包括:
- 謂詞下推(Predicate Pushdown)
- 分區剪枝(Partition Pruning)
- 動態分區裁剪(Dynamic Partition Pruning)
- Coordinator:負責將物理計劃拆分為多個Fragment,通過Pipeline調度機制分配給BE執行,支持自適應執行,可根據集群負載動態調整并行度
2.2 Backend 層(BE)
角色定位:作為數據存儲和計算的核心載體,采用混合架構設計:
- 存儲層:基于LSM-Tree思想實現的高效列存引擎
- 計算層:支持Pipeline執行模式的向量化引擎
關鍵特性:
- 數據分片(Tablet):物理存儲的最小單元,每個Tablet包含多個Rowset(不可變數據塊),支持自動數據均衡和副本遷移
- 智能索引:
- Zone Map:記錄每個數據塊的最大/最小值,實現快速范圍查詢過濾
- Bloom Filter:加速點查性能,減少不必要的IO
- 倒排索引:對高基數列建立索引,支持快速存在性判斷
- 向量化執行:通過SIMD指令集優化,將單條記錄處理升級為批量處理,典型場景性能提升3-5倍
3 數據存儲與復制機制
3.1 存儲架構演進

存儲流程:
- 寫入數據首先進入內存MemTable
- 達到閾值后轉為Immutable Rowset
- 通過BaseCompaction生成不可變的Base Rowset
- 增量數據寫入Delta Rowset
- 定期執行Cumulative Compaction合并增量數據
3.2 副本復制策略
- 多副本存儲:默認3副本,支持自定義副本數
- Paxos協議:FE層通過Multi-Paxos保證元數據一致性
- Quorum機制:數據寫入需要多數派副本確認,確保強一致性
- 副本修復:通過異步復制和 Checksum 校驗自動修復損壞副本
4 查詢處理全流程解析
4.1 查詢生命周期

查詢解析階段:
- 語法解析生成AST
- 語義檢查驗證表/列存在性
- 生成邏輯執行計劃
優化階段:
- 統計信息收集(行數、Distinct值等)
- 代價模型選擇最優執行路徑
- 生成物理執行計劃(包含Scan、Shuffle、Aggregate等Operator)
執行階段:
- BE執行Pipeline計算
- 通過網絡交換中間結果(Shuffle)
- FE進行最終結果聚合
5 高可用設計
5.1 FE高可用架構
- 三節點部署:1個Master + 2個Follower
- 腦裂防護:通過租約機制防止雙Master
- 元數據備份:支持定期快照到遠程存儲
5.2 BE故障恢復
- 副本遷移:自動檢測故障節點,觸發副本復制
- 負載均衡:通過均衡器自動遷移熱點分片
- 隔離機制:支持按照機房、機架維度部署副本
6 總結
Apache Doris通過創新的MPP架構設計,在存儲層實現了高效的列式存儲與智能索引,在計算層構建了高性能的向量化執行引擎,配合完善的副本機制和高可用設計,形成了完整的現代數據倉庫解決方案。其架構設計充分體現了"極致性能"與"簡單易用"的平衡哲學,為大數據分析場景提供了強有力的技術支撐。