Engineering
Disk spilling in a vectorized execution engine
Late last year, we shipped v1 of our vectorized execution engine. It enables column-based query execution and speeds up complex joins and aggregations, improving analytical capabilities in CockroachDB (which is first and foremost optimized for OLTP workloads). v1 of the engine didn’t support disk spilling, which meant it couldn’t execute certain memory-intensive queries if there was not enough memory available. Starting in CockroachDB v20.1, these queries fall back to disk (also known as “spilling” to disk).
Alfonso Subiotto Marques
June 30, 2020
Product
How we built a vectorized execution engine
CockroachDB is an OLTP database, specialized for serving high-throughput queries that read or write a small number of rows. As we gained more usage, we found that customers weren’t getting the performance they expected from analytic queries that read a lot of rows, like large scans, joins, or aggregations. In April 2018, we started to seriously investigate how to improve the performance of these types of queries in CockroachDB, and began working on a new SQL execution engine. In this blog post, we use example code to discuss how we built the new engine and why it results in up to a 4x speed improvement on an industry-standard benchmark.
Alfonso Subiotto Marques
October 31, 2019
Culture
Learning is good: Our 3 favorite talks at GopherCon 2019
Learning is Good is a program at Cockroach Labs that provides a stipend for employees to take advantage of resources for their professional development. Employees are encouraged to take courses, participate in workshops, attend conferences or obtain relevant certifications.
Alfonso Subiotto Marques
August 14, 2019