友链
导航
These are the good times in your life,
so put on a smile and it'll be alright
友链
导航
TiDB 是一种新型分布式数据库,结合了传统的 RDBMS 和 NoSQL 的最佳特性。TiDB 兼容 MySQL,支持无限的水平扩展,具备强一致性和高可用性。TiDB 的设计目标是 100% 的 OLTP 场景和 80% 的 OLAP 场景,对业务没有任何侵入性,能优雅的替换传统的数据库中间件、数据库分库分表等 Sharding 方案。
详细介绍参考官方网址:https://pingcap.com/docs-cn/overview/
TiDB 集群主要分为三个组件:
TiDB 服务器收到 SQL 语句后,根据索引的编号将语句转换为一个或多个键值对(KV),这些键值对被发送到相关联的 TiKV 服务器,这些服务器以 Raft 日志的形式复制保存。最后,Raf 日志被提交,这些键值对会被写入指定的存储引擎。
Region: 表示一个连续的、左闭右开的键值范围 [start_key,end_key]。每个 Region 有多个副本,并且每个副本称为一个peer 。每个 Region 也归属于单独的 Raft 组,以确保所有 peer 之间的数据一致性,Region超过96M时自动分割成两个邻近的2份Region,每份3个副本, 由于TiDB数据最终是以储键值对形式存储,保证其水平扩展能力和高可用性。
Raft log: 多节点之间使用Raft实现强一致性。在将一个键值对写入数据库之前,这个键值对首先要被复制成Raft log格式,同时还要被写入各个节点硬盘中保存。在Raft log被提交后,相关的键值对才能被写入数据库