Baidu replaced sharded MySQL with CockroachDB to support nearly 1 Billion Users
Baidu is a $90B+ internet company serving hundreds of millions of users with web products ranging from search to shopping to cloud storage. Their DBA team faces the unique challenge of needing to support massive amounts of data while also delivering a good experience for internal application developers. The case study details how CockroachDB is replacing sharded MySQL within Baidu, giving their DBA team a distributed database that scales horizontally while providing the SQL interface application developers are familiar with.
Baidu’s Database Challenge
It’s difficult to deliver reliable performance at scale while supporting one billion active users accessing applications in production with a sharded MySQL database. The level of operational complexity is prohibitively high. This is why Baidu wanted to try a different database strategy to support a new application.
The new application needs to store increasing amounts of data and support continuous inserts with highly concurrent and real-time access. This application also needs secondary indexes to speed up queries, as well as support for basic real-time analytics to gather insights from existing data. If Baidu used MySQL for this application it would require developers to modify data at the application layer which adds complexity that prevents developers from focusing exclusively on application development.
CockroachDB Reduces Operational Complexity for Baidu
Unlike MySQL, CockroachDB can handle Baidu’s new application without requiring the use of middleware for operators and no manual sharding. With CockroachDB it’s easy for the DBA’s to add capacity by spinning up new servers, installing CockroachDB, re-configuring a load balancer, and pointing the node at an existing cluster.
Baidu is currently running CockroachDB in production to support applications that access 40TB of data with 100,000 QPS on 20 clusters. Read the full case study to learn more about how Baidu is leveraging CockroachDB.