流量和延迟减半!挑战分布式数据库 TiDB 跨数据中心难题
众所周知,在对可用性要求极高的行业领域(比如金融、通信),分布式数据库需要跨地域的在多个数据中心之间建立容灾以及多活的系统架构,同时需要保持数据完整可用。但这种方式同时也带来了一些问题: 跨地域的网络延迟非常高,通常在几十毫秒左右,洲际间更能达到几百毫秒。 跨地域的网络专线带宽昂贵、有限,且难于扩展。 在今年 TiDB Hackathon 的比赛过程中,我们针对以上问题做了一些有趣的事情,并获得如下优化成果: 跨地域 SQL 查询,延迟下降 50%(图 1)。 跨节点消息数减半,即网络流量减半(图 2)。 <center>图 1 延迟对比</center> <center>图 2 网络流量对比</center> “Google Spanner 高性能事务和强一致特性(跨区域甚至跨洲),是每一个做多数据中心架构设计的工程师心中所向往的目标。虽然当前 TiDB 在多数据中心部署时的表现同 Google Spanner 还有明显的差距,但我们很高兴的看到“多数据中心读写优化”项目让 TiDB 向 Spanner 级别多数据中心能力迈出了坚实的一步。相信在社区小伙伴们的共同努力下,假以时日 TiDB 一定能够为大家带来 Google Spanner 级别的体验。” —— 孙晓光(知乎|技术平台负责人) “在官方推荐的具备同城多活能力的同城三中心五副本,以及两地三中心五副本的部署方案中