一、TiDB核心功能:
1.水平扩容或缩容
2.金融级高可用
3.实时级HTAP
4.云原生分布式数据库
5.兼容MySQL5.7协议
二、TiDB组件
2.1 、TiDB Server
TiDB Server提供的功能
1、处理客户端的请求
Protocol Layer 通过用户名和密码验证客户端的合法性
2、SQL语句的解析和编译
Parse 负责解析SQL
Compile 负责编译转化SQL
3、关系型数据与K/V的转化 (将关系型DB使用的表转化为键值对)
4、SQ语句的执行
Execute DistSQL KV 负责执行句
Transaction KV 事务处理
5、执行online DDL (create insert delete update)
Schema Load Worker Start Job
6、执行垃圾回收 (默认10min回收一次垃圾)
7、热点小表缓存 (6.0提供)
cache table内存模块提供
2.2、 TiKV
TiKV提供的功能
1、数据持久化 (rocksdb raft记录操作类似MySQL中binlog和rocksdb kv类似MySQL中的存储引擎)
2、副本的强一致性和高可用性 (通过raft协议的三副本和leader/follower机制实现)
3、MVCC
4、分布式事务支持
5、Coprocessor (算子下推 tikv节点资源利用合理化)
2.3、Placemnt Driver
PD提供的功能
1、整个集群TiKV的元数据存储 (regon在TiK或TiFlash分布情况,包括muti raft grop-->raft group-->peer[Leader\Follower]-->Region )
2、分配全局ID和事务ID
3、生产全局时间戳TSO
4、收集集群信息进行调度
5、提供TiDB Dashboard服务
6、提供label,支持高可用
2.4、TiFlash
TiFlash提供功能
1、异步复制 (复制tikv中的regon进行列式存储)
2、一致性
3、列式存储提高查询性能
4、业务隔离
5、智能选择