OceanBase 系统架构

1. 核心架构特点

  • Shared Nothing架构:分布式部署,无中心节点
  • 硬件要求:通用服务器+本地存储,无特殊硬件依赖
  • 进程模型:单进程observer运行实例
  • 数据存储
    • 本地文件存储数据及Redo日志
    • 多副本存储(跨可用区)
    • 副本间通过共识协议保持一致性

2. 集群部署架构

graph TD Cluster[集群] --> Zone1[可用区1] Cluster --> Zone2[可用区2] Cluster --> ZoneN[可用区N] Zone1 --> Server1[服务器] Zone1 --> Server2[服务器] Zone2 --> Server3[服务器] ZoneN --> ServerN[服务器] Server1 --> Observer[observer进程] Server2 --> Observer Server3 --> Observer ServerN --> Observer

3. 核心组件分层

层级 功能 关键技术
存储层 数据存储与访问 Tablet/SSTable分层存储
复制层 多副本一致性 自研Paxos协议
事务层 ACID保证 两阶段提交/GTS时钟
SQL层 SQL处理 分布式执行计划
接入层 请求路由 obproxy智能路由

4. 存储层结构

graph LR Tablet --> MemTable[内存表] MemTable --转储--> L0[L0 SSTable] L0 --合并--> L1[L1 SSTable] L1 --每日合并--> Major[Major SSTable] Major --编码压缩--> Column[列式编码] Column --> Dict[字典编码] Column --> RLE[游程编码] Column --> Delta[差值编码] Column --> General[通用压缩算法]

5. 复制层机制

sequenceDiagram participant Client participant Leader participant Follower1 participant Follower2 Client->>Leader: DML操作 Leader->>Leader: 持久化Redo日志 Leader->>Follower1: 同步日志 Leader->>Follower2: 同步日志 Follower1-->>Leader: ACK Follower2-->>Leader: ACK Leader->>Client: 确认提交

6. 事务处理流程

graph TD Start[事务开始] --> 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 LR SQL[SQL请求] --> Parser[词法/语法解析] Parser --> Resolver[语义解析] Resolver --> Transformer[逻辑改写] Transformer --> Optimizer[优化器] Optimizer --> CodeGen[代码生成] CodeGen --> Executor[执行器] Executor -->|缓存| PlanCache[执行计划缓存] Executor -->|并行| Parallel[并行执行]

8. 关键特性

  • 多租户

    • 独立数据库实例
    • 资源隔离(CPU/Memory/IO)
    • 独立部署策略配置
  • 高可用

    • 自动故障转移(租约机制)
    • 多数派持久化保证
    • 无缝扩容/缩容
  • 扩展性

    • 自动负载均衡
    • 在线水平扩展
    • 智能分区管理

这个图表系统展示了:

  1. 分布式架构设计
  2. 分层组件协作
  3. 核心处理流程
  4. 关键技术创新点
  5. 高可用保障机制
posted @ 2025-03-13 17:06  程煕  阅读(177)  评论(0)    收藏  举报