TiDB 6.x基础

1.数据库架构

1.1TiKV

  • 数据持久化 rocksdb
  • 强一致 副本高可用 raft协议
  • MVCC 快照读
  • 分布式事务
  • Coprocessor

1.2 TiDB-server

  • 处理客户端连接
  • 解析与编译sql
  • 关系型数据与kv转化
  • 执行sql语句
  • 执行online ddl
  • 垃圾回收- GC
  • 热点小表缓存v6.0

1.3 PD

  • TiKV元数据存储
  • 分配全局ID、事务ID和TSO
  • 收集集群信息进行调度
  • 提供TiDB Dashboard 服务

1.4 TiFlash

  • 异步复制
  • 列存提高分析效率
  • 一致性
  • OLAP&OLTP 业务隔离
  • 智能选择

2.TiDB Server架构

2.1整体介绍

TiDB 6.x基础_第1张图片

  • parse 语法分析 词法分析
  • compile 解析编译 AST->验证->逻辑优化->物理优化->执行计划

转化为kv table_id_PK:value
TiDB 6.x基础_第2张图片

2.2 executor distsql transaction KV读写模块

TiDB 6.x基础_第3张图片

executor按照执行计划执行sql 包括点查询(走kv模块)和复杂查询 复杂查询经过distsql模块(只对单表操作)后和tikv client(向tikv发送请求)交互
进行事务操作 先向pd请求TSO 再和KV模块交互

2.3 online ddl模块

TiDB 6.x基础_第4张图片
start job接受到ddl job后 每个tidbserver会将其放到tikv的job queue中 同一时刻 只有一个tidbserver成为owner 可以执行job 执行完后 会将其放在历史队列中
schema load负载载入需要的表信息数据 缓存在tidb中

2.4 GC机制

默认lifetime 10min

2.5 TiDB server 缓存

缓存组成:

  • sql结果(多表join、大事务)
  • 线程缓存
  • 元数据、统计信息
    缓存管理:
  • tidb _mem_quota_query
  • oom-action

2.6 热点小表缓存

  • 表的数据量不大 64M以下
  • 只读表或很少修改的表
  • 表的访问很频繁
    TiDB 6.x基础_第5张图片
    alter table tablename cache;

tidb_table_cache_lease
租约时间内 只读 无法写入
TiDB 6.x基础_第6张图片

  • 租约到期 数据过期

  • 写操作不再阻塞

  • 读写直接到tikv上进行 读性能相对下降

  • 数据更新完毕 租约继续
    -不支持对缓存表做ddl

HTAP场景特点:

  • 支持高并发
  • 同时支持oltp olap
  • 一致性

MPP架构:

  • 中间结果保存在内存中
  • 不支持非等值join
  • 作用于tiflash
  • 可以对聚合 join操作加速

与事务相关的模块:kv和transaction
非聚簇表 定义主键 不使用主键作为rowid

3.tikv

3.1tikv持久化

TiDB 6.x基础_第7张图片
列簇 cf
TiDB 6.x基础_第8张图片
TiDB 6.x基础_第9张图片
TiDB 6.x基础_第10张图片

你可能感兴趣的:(tidb,java,大数据)