百度已经在生产环境使用 CockroachDB

阅读数:4922 2017 年 10 月 29 日

话题:百度语言 & 开发架构

云原生分布式数据库CockroachDB在推出之日起就受到了广泛关注。近日,包括百度在内的一些公司纷纷投入 CockroachDB 的怀抱。百度的 DBA 团队原先使用的是 MySQL,现在开始使用 CockroachDB,那么 CockroachDB 究竟帮助百度解决了哪些 MySQL 无法解决的痛点?

百度 DBA 团队在生产环境需要支持十亿用户对应用程序的访问,所以他们必须提供大规模且性能稳定的基础设施。他们最开始使用的是 MySQL,并通过分片和中间件为关键应用提供支持。但 DBA 团队希望在有新应用加入时,不仅能够提供大数据量存储,还能保持高并发的实时访问。为了加快查询速度,还需要支持二级索引,同时还能支持基于已有数据执行一些实时的数据分析。如果继续使用 MySQL,开发人员就必须在应用程序端做很多开发工作,才能实现这些需求。而如果改用 NoSQL 数据库,就要放弃二级索引、聚合功能和事务特性,这样也会给应用程序增加很大的复杂性。

百度 DBA 团队作为 CockroachDB 项目的贡献者之一,他们发现 CockroachDB 不仅可以满足他们的需求,而且不需要使用中间件,也不会给应用程序带来任何复杂性。该团队一边参与该项目,一边使用真实的流量负载来测试 CockroachDB。最后,他们认为 CockroachDB 的架构非常适合他们的场景。

开发人员可以继续使用 SQL,而 DBA 团队不仅能够更快地作出运维响应,还能满足开发团队不断增长的需求。如果要扩展容量,只要加入新的服务器,在上面安装 CockroachDB,然后重新配置负载均衡器就可以了。负载均衡器自动对数据库流量进行路由、均衡和复制。

现在,百度在生产环境已经有两个应用在使用 CockroachDB。他们在 10 台裸机上安装 CockroachDB,再加上一个负载均衡器来分配流量。每天访问 2TB 数据,执行 5000 万次写入操作。不仅可以使用二级索引,还支持分布式 SQL 查询。

在 CockroachDB 的帮助下,百度 DBA 团队现在对原先的一些手动执行工作进行了自动化,包括数据库复制、均衡管理和失效备援。

百度表示会继续为 CockroachDB 项目作出贡献,不断增加新的特性,提升产品的可用性。百度还与 Cockroach Labs 合作,在中国举办了 CockroachDB 开发者见面会。


感谢郭蕾对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。