I recently wrote about the potential use cases for distributed SQL databases as well as techniques being employed by vendors to accelerate adoption. Distributed SQL is a term that is used by several vendors to describe operational data platform products that combine the benefits of the relational database model and native support for distributed cloud architecture, including resilience that spans multiple data centers and/or cloud regions. I noted that compatibility with existing database tools and skills was a key factor for these vendors as they lower barriers to developer adoption. A prime example is Cockroach Labs, which highlighted the importance of compatibility and developer efficiency with the recent launch of CockroachDB 22.2.
Cockroach Labs was founded in 2015 by former Google engineers with a mission to make the advantages of distributed data processing enjoyed by hyperscalers available to the masses. The company’s founders recognized that traditional databases were not designed to provide the elastic scalability, global availability and resilience that cloud computing delivers at an infrastructure level. In comparison, CockroachDB was designed to provide a combination of transactional consistency and support for standard SQL, with elastic scalability, multi-region and multi-cloud deployment and high levels of fault tolerance and availability.
Cockroach Labs has attracted hundreds of customers for CockroachDB, including Bose, Comcast, Hard Rock Digital, Heroic Labs, Lush, Netflix and Nubank. Further adoption can be expected. I assert that by
The product is available as CockroachDB self-hosted for organizations to deploy and manage on cloud or on-premises infrastructure, while the company offers two managed service offerings: CockroachDB dedicated and CockroachDB serverless. The former provides reserved infrastructure resources with support for multi-region deployment and geo-partitioning, while the latter is more limited in terms of scalability and performance but is designed to automatically scale to meet processing demand. As I previously noted, serverless databases are proving attractive to facilitate evaluation, development and support of ephemeral workloads, but are less well-suited to high-performance and long-running applications. In addition to encouraging developer adoption through managed services, Cockroach Labs has enhanced its functionality to support compatibility with – and migrations from – existing databases.
There are multiple reasons why organizations might be interested in distributed SQL databases. Elastic scalability and active-active cross-region data replication are attractive to support disaster recovery
Distributed SQL databases could also potentially lower complexity, compared to the use of database sharding and in-memory caching layers that are used to scale existing relational databases. Compatibility with existing applications, frameworks, drivers, tools and skills are also vital, along with services and tooling to lower the complexity of application and database migration.
CockroachDB is designed to be compatible with PostgreSQL, enabling developers to use many of their familiar tools, drivers and frameworks from the PostgreSQL ecosystem. That compatibility was enhanced with the recent launch of CockroachDB 22.2, in which Cockroach Labs added support for user-defined functions for the first time. UDFs provide a mechanism for users to create custom functions that extend the capabilities of the database to meet their specific requirements. Support for PostgreSQL-compatible UDFs removes a potential barrier to the adoption of CockroachDB by enabling migration from PostgreSQL or PostgreSQL-compatible databases of applications that take advantage of UDFs. Additionally, PostgreSQL-compatible UDFs is the first step towards Cockroach Labs delivering a broader suite of “distributed functions” designed specifically to take advantage of its distributed database architecture. It also lays the foundation for other capabilities that utilize UDFs, such as triggers and stored procedures.
Also new in CockroachDB 22.2 was improved support for database migrations. Cockroach Labs introduced its CockroachDB MOLT database migration toolset in September 2022. CockroachDB MOLT’s schema conversion tool has been updated to support migration from Oracle, MySQL and SQL Server, in addition to PostgreSQL. The company has also added the ability to load data into CockroachDB using Amazon Web Services’ Database Migration Service. Movement of data from CockroachDB for analytic purposes has also been improved by support for change data capture transformations, which enables filtering and transformation of data in CockroachDB prior to extraction and loading into an analytic database. Other CockroachDB 22.2 enhancements include the Intelligent Insights monitoring environment, support for the GraphQL application programming interface via Hasura, support for the REST API via PostgREST, support for trigram indexes for text search and the ability to set timelines to automatically delete expired data.
Adoption of distributed SQL databases is still in the very early stages. The compatibility and migration tooling enhancements further lower barriers to adoption. In addition to educating the market in the potential advantages of a distributed relational database, Cockroach Labs could also invest in assets to help customers understand the costs and benefits of different consumption models as well as develop a business case to demonstrate return on investment. In the interim, I recommend that enterprises contemplating potential use cases for distributed SQL databases evaluate Cockroach Labs when assessing options.
Regards,
Matt Aslett