
Blog
Engineering
Increase query speed with Forward Indexes on JSON columns
During the Winter of 2023, I had the wonderful opportunity to work as a Software Engineering Intern on the SQL Queries team at Cockroach Labs. During the scope of this internship, I found myself working with indexes and specifically implementing forward indexes on columns storing JSONB, which resulted in speeding up query execution time by up to 98% in some cases! This blog post will go over the motivations for the implementation of these indexes, the main challenges that came up with the implementation, and some demonstrations of the staggering results.
Shivam Saraf
June 13, 2023
Engineering
What is a database hotspot, and how do you fix it?
In a distributed database, a hotspot is an overworked node – in other words, a part of the database that’s processing a greater share of the total workload than it is meant to handle.

Charlie Custer
June 7, 2023
Engineering
What is a foreign key? (with SQL examples)
A foreign key is a column or columns in a database that (e.g. table_1.column_a) that are linked to a column in a different table (table_2.column_b). The existence of a foreign key column establishes a foreign key constraint – a database rule that ensures that a value can be added or updated in column_a only if the same value already exists in column_b.

Charlie Custer
May 4, 2023
Engineering
An epic read on follower reads
In this post we’re going to talk about one of the techniques that can be used in CockroachDB for getting good performance from databases accessed from multiple geographical regions: follower reads. These are operations presenting a slightly stale view of data, which can be served with local latencies from different regions.
Andrei Matei
March 29, 2023
Engineering
A brief history of high availability
I once went to a website that had “hours of operation,” and was only “open” when its brick and mortar counterpart had its lights on. I felt perplexed and a little frustrated; computers are capable of running all day every day, so why shouldn’t they? I’d been habituated to the internet’s incredible availability guarantees. However, before the internet, 24/7 high availability wasn’t “a thing.” Availability was desirable, but not something to which we felt fundamentally entitled. We used computers only when we needed them; they weren’t waiting idly by on the off-chance a request came by. As the internet grew, those previously uncommon requests at 3am local time became prime business hours partway across the globe, and making sure that a computer could facilitate the request was important.

Jessica Edwards
March 23, 2023
Engineering
High-performance JSON parsing in Go
JSON is a ubiquitous data interchange format supported by many systems, including CockroachDB. Historically, at CockroachDB, the majority of our efforts around JSON focused on supporting various JSON functions, operators, and inverted indexes while our JSON parser did not receive much attention. And for a good reason. If you are reading this blog, then you probably already appreciate Golang. There are many aspects to like in Go, and one of them is an excellent collection of standard (and third party) libraries. Becase Go ships with a “jack-of-all-trades” JSON parser out of the box (encoding/json library), it made sense for CockroachDB to use a standard parser when converting strings to internal JSON representation. However, at some point, we began to wonder if the time had arrived for us to invest in finding a better, more performant alternative.
Yevgeniy Miretskiy
March 6, 2023
Engineering
Why CockroachDB runs managed services on Kubernetes
*Note: this post originally ran in 2020, at the very beginning of our managed service/multi-tenant engineering journey. If you want an update on what kind of deployment models CockroachDB offers and what our current capabilities are check out our latest release blog. There’s this really fun game I like to play. You get a bunch of SREs in a room and you see how quickly you can rile them up. Here are some things to say next time you’re in a room of SREs:

Josh Imhoff
October 20, 2022
Engineering
Product
Company
CockroachDB Serverless is generally available and more product updates
When we set out to build a better relational database seven years ago, we envisioned a solution that was scalable, highly available, and always consistent, because as we said then, “we’d rather spend time quickly building and iterating products, not engineering solutions to database shortcomings.” Today, after developing a database that delivers those capabilities and has been battle-tested by thousands of customers, we’re still following the same northstar. But we’ve extended that vision.

Nate Stewart
September 21, 2022
Engineering
VLDB 2022: CockroachDB engineers present "A Demonstration of Multi-Region CockroachDB"
The latest research paper from CockroachDB’s engineering team, “A Demonstration of Multi-Region CockroachDB”, will appear in the Demonstration Track of the VLDB 2022 conference in Sydney, Australia (as well as remotely), on September 5-9. This paper complements our recent full paper, Enabling the Next Generation of Multi-Region Applications with CockroachDB, which appeared earlier this year in SIGMOD 2022.

Rebecca Taft
August 26, 2022