tidb这类分布式关系型数据库,肯定是未来的方向。虽然看官网案例,国内有不少大公司正在使用,但不知道有多少应用在核心业务?所谓的强一致性,是有代价的,不是所有的业务都适合。
MYSQL主从、分表分库这类中间件可以了解下vitess。youtube出品,目前GitHub、Pinterest等大公司正在使用此方案,国内了解到的有京东。除了提供分表分库、读写分离等,还包含故障转移等运维功能,功能强大。
Q: 在Google内部既有Spanner(tidb是参考Spanner实现)又有Vitess,这两个从分布式数据库来说是两个不同的方向,是竞争对手,他们之间的区别是什么,分别有哪些优缺点,Google内部是怎么定义这两款产品的。
Toliver: 首先指出主持人的一个问题,Google内部并不只有这两款分布式数据库类型的产品,而是有20多种。Google Spanner和CockroachDB、国内的TiDB一样,是基于BigTable来实现的,就像TiDB是基于TiKV实现的,而Vitess是基于成熟稳定的目前最流行的开源数据库MySQL来实现的。Google Spanner专注于数据一致性,QPS要求没有那么高,Youtube之前也考虑过使用Spanner,但是受限于其性能的问题,没有迁移过去。
Vitess的成本比Google Spanner要低的多,又是基于MySQL来实现的,可以充分利用20多年MySQL成熟的各种数据库特性,性能也能线性扩展,能满足并发要求高、弹性扩展的各种场景。对于绝大部分的公司来说,要实现Google的这种超大规模的集群,代价和成本太高,收益和成本不成正比。所以对绝大部分公司来说vitess是更加现实和可落地的。