CockroachDB adds Kubernetes and geospatial data support

The new release is adding a key feature well-suited to a distributed transaction database and makes the platform cloud-native.


In its new 20.2 release now entering general availability, Cockroach Labs is adding support for a data type that's been at the top of the wish list for its clients: geospatial data. And to facilitate cloud-native deployment, the company is a new Kubernetes (K8s) operator. To recap, the platform, CockroachDB, was inspired by Google Cloud Spanner, delivering a SQL relational transaction processing platform designed for distributed deployment.

The highlight of the new release is the addition of geospatial data types, a feature that topped customer wish lists. Geospatial data makes a natural fit for a platform like CockroachDB that is designed for geographic distribution. The going notion is that, with support of distributed writes, geospatial data can be written in the node that is closest to the region. The obvious advantage is quicker writes. And so, for logistics customers like DoorDash, geospatial helps them more effectively manage food delivery data. It also fits well with CockroachDB's existing support for geographically partitioning data so that it only resides on specific nodes or within specific data centers – it allows geospatial data to remain local. That can prove useful for companies with multi-regional networks, whether that involves managing supply chains or IoT use cases.

Geospatial data joins JSON document data as an extended data type. We expect that at some point, the company will get around to adding support for time series data. The key challenge for Cockroach is that, since they run off their own open source engine, rather than a popular one like PostgreSQL, they cannot readily piggyback on extended data type support that already exists in the community – they have to bootstrap development of added data types themselves.

The 20.2 release also includes a new K8s operator that will simplify private or hybrid cloud deployment. It aligns on-premises editions of CockroachDB with the CockroachCloud that is currently offers on AWS and Google Cloud. Specifically, the K8s operator will make it easier for those customers running their own deployments to scale up or down. For now, the K8s operator runs within a geographic region; we expect that at some point, Cockroach Labs will add multi-region capability.

Another refinement is one that, if it's written properly, customers won't notice. With this release, CockroachDB changes its default storage engine from the open source RocksDB to its own internally-built engine, Pebble (which is also open source and available for download on GitHub). The purpose was for the company to get better control over its own destiny. As we recently reported, RocksDB has proven a popular engine as a log-based key-value store originally developed at Facebook that has served a wide variety of downstream use cases.

But Pebble is a far more compact engine, with a footprint that is only about 10% of the size of RocksDB. Cockroach has been phasing Pebble in over the last year, and by the next release, 21.1, will be the sole engine supported. With a more compact engine under its control, the company believes it will make the process of adding performance optimizations much more straightforward.

The company updates its platform twice a year, with the last release, 20.1 back in the spring, focusing on developer-specific features, such as enabling restructuring of database schema without taking it down along with expanded support of object-relational mapping (ORM) frameworks. Looking ahead, could a serverless cloud service be the next logical step for Cockroach to make life simpler for developers?