TiDB 的架构设计借鉴了 Google Spanner 和 F1 论文的思路,但做了大量简化和优化。比如 Raft 协议只用于复制,不用于全局事务协调;PD 的调度策略是启发式而非一致性算法。理解这些设计取舍对用好 TiDB 很有帮助。
若报错如 “table doesn’t exist” 但元数据存在,可能是 TiFlash 内部元数据不一致,此时需结合 TiFlash 日志(/data/log/tiflash/ )定位具体 region 或 partition 错误
TiDB 的架构设计借鉴了 Google Spanner 和 F1 论文的思路,但做了大量简化和优化。比如 Raft 协议只用于复制,不用于全局事务协调;PD 的调度策略是启发式而非一致性算法。理解这些设计取舍对用好 TiDB 很有帮助。
若报错如 “table doesn’t exist” 但元数据存在,可能是 TiFlash 内部元数据不一致,此时需结合 TiFlash 日志(/data/log/tiflash/ )定位具体 region 或 partition 错误