1:Tidb server负责解析sql,通过PD找到找到存储具体值的Tikv,然后返回。Tidb是无状态的,只进行传输,本身不存储数据
2:PD server:tikv存储集群的元信息,可以找到某一个键值所在的tikv,对tikv集群进行调度和负载均衡,分配全局唯一的递增ID。PD是一个集群会进行选举,集群必须是基数个。PD server是个指挥官,负责调度。
3.tikv server:存储数据,基本单元是region,就是k-v.多个region构成一个tikv节点,多个tikv节点构成一个group;
乐观锁,全局不有序。
tidb优点:
1:解析sql存的实际是nosql所以可以平滑过度
2:伸缩便捷,快速收缩。扩展只要提高tidb server计算能力和tikv存储的能力就可以。
3:分布式事务,数据强一致性。
一致性采用Raft,分布式事务实现采用和Percolator一样的模型,单点存储用RocksDB等,提供给用户的SI隔离级别也够用。同时协议与MySQL兼容,提供数据迁移工具,比较适合中国市场。
tidb缺点:
硬件要求高
为保证一个表数据放到一起,有一个全局的TAbleId表。所以实际数据存储是【tableId,value】
业务中遇到的问题,不能依赖主键递增,多个值排序需要指明排序规则:order by a desc,b desc默认按照asc。字段更改,表更改。平滑扩容。