1. 核心架构特点
- Shared Nothing架构:分布式部署,无中心节点
- 硬件要求:通用服务器+本地存储,无特殊硬件依赖
- 进程模型:单进程
observer
运行实例 - 数据存储:
- 本地文件存储数据及Redo日志
- 多副本存储(跨可用区)
- 副本间通过共识协议保持一致性
2. 集群部署架构
graph TDCluster[集群] --> Zone1[可用区1]Cluster --> Zone2[可用区2]Cluster --> ZoneN[可用区N]Zone1 --> Server1[服务器]Zone1 --> Server2[服务器]Zone2 --> Server3[服务器]ZoneN --> ServerN[服务器]Server1 --> Observer[observer进程]Server2 --> ObserverServer3 --> ObserverServerN --> Observer
3. 核心组件分层
层级 | 功能 | 关键技术 |
---|---|---|
存储层 | 数据存储与访问 | Tablet/SSTable分层存储 |
复制层 | 多副本一致性 | 自研Paxos协议 |
事务层 | ACID保证 | 两阶段提交/GTS时钟 |
SQL层 | SQL处理 | 分布式执行计划 |
接入层 | 请求路由 | obproxy智能路由 |
4. 存储层结构
graph LRTablet --> MemTable[内存表]MemTable --转储--> L0[L0 SSTable]L0 --合并--> L1[L1 SSTable]L1 --每日合并--> Major[Major SSTable]Major --编码压缩--> Column[列式编码]Column --> Dict[字典编码]Column --> RLE[游程编码]Column --> Delta[差值编码]Column --> General[通用压缩算法]
5. 复制层机制
sequenceDiagramparticipant Clientparticipant Leaderparticipant Follower1participant Follower2Client->>Leader: DML操作Leader->>Leader: 持久化Redo日志Leader->>Follower1: 同步日志Leader->>Follower2: 同步日志Follower1-->>Leader: ACKFollower2-->>Leader: ACKLeader->>Client: 确认提交
6. 事务处理流程
graph TDStart[事务开始] --> DML[DML操作]DML -->|单分区| WAL[Write-Ahead Log]DML -->|多分区| 2PC[两阶段提交]2PC --> Coordinator[协调者选举]Coordinator --> Prepare[Prepare阶段]Prepare --> Commit[Commit阶段]Commit --> GTS[获取GTS时间戳]GTS --> MVCC[多版本控制]
7. SQL处理流程
graph LRSQL[SQL请求] --> Parser[词法/语法解析]Parser --> Resolver[语义解析]Resolver --> Transformer[逻辑改写]Transformer --> Optimizer[优化器]Optimizer --> CodeGen[代码生成]CodeGen --> Executor[执行器]Executor -->|缓存| PlanCache[执行计划缓存]Executor -->|并行| Parallel[并行执行]
8. 关键特性
-
多租户:
- 独立数据库实例
- 资源隔离(CPU/Memory/IO)
- 独立部署策略配置
-
高可用:
- 自动故障转移(租约机制)
- 多数派持久化保证
- 无缝扩容/缩容
-
扩展性:
- 自动负载均衡
- 在线水平扩展
- 智能分区管理
这个图表系统展示了:
- 分布式架构设计
- 分层组件协作
- 核心处理流程
- 关键技术创新点
- 高可用保障机制