程序员必备!关系型数据库架构的超强总结
TiDB主要是参考Google的Spanner和F1的设计,架构上有很多相似的地方。 ![]() ![]() 架构说明: 1. TiDB server负责处理SQL并做路由。无状态,可以部署多个节点,结合负载均衡设计对外提供统一的接入地址。 2. PD Server 是集群的管理模块,存储元数据和对TiKV做任务调度和负载均衡,以及分配全局唯一递增的事务ID。 3. TiKV Server 是存储节点,外部看是Key-Value存储引擎,表数据自动按固定大小(如20M,可配置)切分为多个Region分散在多台TiKV Server上。Region是数据迁移和高可用的最小单位,Region的内容有三副本,分布在三个区域,由Raft协议做数据同步和保证强一致。 4. 支持分布式事务,最早实现全局一致性快照。支持全局一致性备份。 5. 兼容MySQL主要语法。 功能: 1. 可用性:计算节点无状态部署,结合负载均衡设计保证高可用和负载均衡。存储节点是三副本部署,使用Raft协议维持三副本数据一致性和同步,有故障时自动选举(高可用)。 2. 扩展性:计算和存储分离,可以单独扩展。存储节点扩展后,数据会重新分布,应该是后台异步任务完成,不影响业务读写,可以在线扩容。可以用于做异地容灾,两地三中心异地多活(三机房之间网络延时很小) 3. 数据一致性:计算节点故障不会导致数据丢失,存储节点故障会自动选举,新的leader跟老的leader数据是强一致的。 C. Alipay的OceanBase OceanBase的设计思路跟Spanner类似,但在SQL、存储、事务方面都有自己的创新。 ![]() 架构说明: 1. 目前版本计算和存储都集中在一个节点上(PC,OBServer)上,单进程程序,进程包括SQL引擎和存储引擎功能。 2. 表数据存在一个或多个分区(使用分区表),需要业务指定分区规则。分区是数据迁移和高可用的最小单位。分区之间的一致性是通过MultiPaxos保证。 3. 支持分布式事务、2.x版本支持全局一致性快照。支持全局一致性备份。 4. 兼容MySQL主要用法和Oracle标准SQL用法,目前正在逐步兼容Oracle更多功能。如存储过程、游标和Package等。目标是兼容Oracle常用功能以实现去IOE时应用不修改代码的目标。 5. 有多租户管理能力,租户弹性扩容,租户之间有一定资源隔离机制。 6. 应用可以通过一个反向代理obproxy或者ob提供的connector-java访问OceanBase集群。 跟Spanner的关系和区别: (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |