CockroachDB was built to help teams scale their applications across the globe without sacrificing SQL’s convenience, power, and data-integrity guarantees. In CockroachDB 2.1, we’ve made it easier than ever to migrate from MySQL and Postgres, improved our scalability on transactional workloads by 5x, and launched a managed offering to help teams deploy low-latency, multi-region clusters with minimal operator overhead.
What we’ve learned from our last release
Building a database for an unpredictable world was a major goal for us in CockroachDB 2.0; that release provided the functionality required to run global systems that respond to changes in customer geography and data-sovereignty regulations while supporting just-in-time horizontal scaling to 10x the scale of Amazon Aurora.
Since our last release, we’ve helped Comcast provide its users with great customer support by enabling a hybrid deployment that spans the width of the United States. As a result, their customers’ data is always available, and always close to where it’s needed. Additionally, CockroachDB is now the foundation of Bose’s data strategy for their cloud-connected products initiative. In the last six months alone, we’ve helped a multi-billion dollar global retailer and a Fortune 500 financial institution modernize their stacks.
Developers we’ve met with have expressed their need for more support and tooling for moving data and workloads into CockroachDB from MySQL and other systems of record. Continuing to push beyond distributed, ultra-high-availability SQL, our customers have demanded ever higher levels of scalability. They’ve also helped us identify the areas in which they need guidance for running widely distributed systems, which may span cloud regions or even cloud providers.
In this release, we’ve continued to improve our support for the responsive global data architectures we’ve enabled with CockroachDB 2.0. Below, we’ll cover major performance updates, migration and data export improvements, and our new managed service offering.
Migrate to CockroachDB faster with new tooling
Native support for importing from MySQL and Postgres
Our collaboration with Baidu to replace their sharded MySQL instances with CockroachDB (which now serves 40TB of data at over 100k QPS) was the first of many major MySQL migrations we would support. While MySQL is the world’s most popular open-source database, as developers tire of working around its resilience and scalability issues, they increasingly look to CockroachDB to support their next-generation applications.
With this release, it’s never been easier to make the switch to CockroachDB. We’ve taken our learnings from supporting MySQL migrations and baked them into the product — developers can now import full mysqldump files with a single command. We’ve also enhanced our IMPORT feature to support Postgres’ dump file format.
Support for more Postgres tooling and ORMs out of the box
CockroachDB 2.1 is the next step in our journey toward implementing the SQL standard. We’ve paid close attention to the types of workloads our customers want to support and used that knowledge to prioritize the features that will make more apps and Postgres ORMs work out of the box. This release, we’ve also worked with partners to support more Postgres UIs; CockroachDB now works with DBeaver to give developers another fully functional administrative tool for managing their databases in a familiar way.
Stream changes from CockroachDB into your existing stack
CockroachDB is the system of record for some of the largest and fastest-growing businesses in the world. However, while CockroachDB is a general-purpose database that can run both transactional and analytical queries, OLAP-style workloads often require teams to offload data onto dedicated data warehouses.
To support these users, this release introduces beta support for Change Data Capture (CDC) for enterprise customers. This feature streams changes to Apache Kafka where they can be added to other systems in real time, allowing teams to minimize the time between when data is recorded and when it’s actionable. Support for Kafka also means teams can use CDC to trigger events in real time without having to rely on polling. Our CDC implementation is always transactionally consistent and allows teams to determine the proper ordering of events, even in distributed environments.
Note that unlike most major 2.1 features, we will continue to make incremental updates to CDC in minor releases as we collect feedback. We’d love to hear how you use streaming data in your own applications.
CockroachDB 2.1 is 5x more scalable than v2.0
5x scalability improvement for transactional workloads
CockroachDB gives developers NoSQL levels of scalability without requiring NoSQL concessions (i.e., lack of SQL and strong consistency). One way we track our progress here is with TPC-C, the industry-standard benchmark that uses a mix of concurrent transactions to model the operations of any business that must “manage, sell, or distribute a product or service.”
CockroachDB 2.1 achieves ~50x the throughput of Amazon Aurora’s best-reported TPC-C results and 5x the throughput of our 2.0 release. What this means for users is that they can trust that CockroachDB can handle growing and complex transactional workloads by adding more commodity machines rather than buying expensive, specialized hardware.
CockroachDB achieves these results without sacrificing consistency (CockroachDB runs exclusively at the highest isolation level guaranteed by the SQL standard), so teams don’t have to worry about complicated workarounds for managing eventual consistency and can avoid increasingly exploitable consistency-related security vulnerabilities.
Quickly diagnose and fix performance bottlenecks
While CockroachDB can rebalance and relocate data to improve performance problems behind the scenes, developers need deep visibility into what’s happening in their clusters in order to make manual tweaks.
With CockroachDB 2.1, we’ve introduced a statements page and hardware-metrics dashboards so developers and operators can see how their cluster is performing and drill down to identify the root cause for slow queries or performance bottlenecks quickly. You can watch a demo of the new statements page here.
We’ve also added debugging pages that allow teams to examine the internals of CockroachDB, like details on data distribution and replication, in order to make more sophisticated provisioning and configuration decisions.
Simplify deployment of multi-regional clusters with Managed CockroachDB
Finally, we are pleased to announce a faster way to deploy geo-distributed clusters: Managed CockroachDB. We’ve partnered with a handful of global businesses to run multi-region clusters in which Cockroach Labs handles the networking, provisioning, and load balancing, which allows our customers to focus on app development. This is a fast way to get up and running with an enterprise CockroachDB install and to leverage our expertise for deploying always-on mission-critical systems. Managed CockroachDB is currently in limited-availability, but it will be widely available in future releases.
CockroachDB 2.1 is an important step forward for teams that want to run mission-critical cloud-native data architectures. We’ve made huge performance improvements from our 5x scalability bump to new tools for visualizing bottlenecks. We’ve added more migration support from MySQL and Postgres so it’s easier to port existing apps, while CDC lets you use CockroachDB to power your data warehouses with realtime updates. Finally, with Managed CockroachDB, you can deploy clusters to the furthest reaches of the world with minimal operator overhead.
We’re hoping you use CockroachDB 2.1 to make your global data seem local to your users. This post is only a brief summary of what you can expect from our new release. For the full update, check out our release notes.