When I reviewed CockroachDB early in 2018, I found that the distributed SQL database, built on top of a transactional and consistent key-value store, was designed to survive disk, machine, rack, and even data center failures with minimal latency disruption and no manual intervention. That is all still true.
At the time, CockroachDB had three large deficits, in my opinion: Limited optimization of SQL JOIN queries, no fully managed service, and no support for JSON or Protobuf data types. I’m happy to report that all of these lacks have since been remedied. JOINs now use a cost-based optimizer, the CockroachCloud is in beta, and a JSONB data type has been implemented.
What’s still missing in CockroachDB? Quite a bit, if you care about PostgreSQL compatibility:
- Stored procedures and functions
- User-defined functions
- Full-text functions and indexes
- Geospatial functions and indexes
- Drop primary key
- XML functions
- Column-level privileges
- CREATE TEMPORARY TABLE syntax
- XA syntax