Product
Bubbles and sparkles: refreshing our SQL shell
We’re giving CockroachDB’s interactive SQL shell a face lift in v23.1! The SQL shell is the interactive read-eval-print loop (REPL) bundled inside CockroachDB under the command cockroach sql. It is also available as the standalone and more modestly sized cockroach-sql downloadable program, as well as our development tool cockroach demo.
Raphael Kena Poss
May 22, 2023
Product
Contextual suggestions for SQL syntax
In CockroachDB v23.1, we are introducing a new feature which enables external SQL query editors to provide contextual suggestions on SQL syntax to developers. As a proof of concept, we have integrated this feature in CockroachDB’s own interactive SQL shell to provide a long and often requested UX enhancement: tab completion!
Raphael Kena Poss
May 22, 2023
Performance
Why CockroachDB and PostgreSQL are compatible
It’s been three years since this blog was originally published and we’re still feeling great about our decision to prioritize PostgreSQL compatibility. Customers of ours often reference our PostgreSQL compatibility as a reason why the CockroachDB learning curve is so swift. Check out the latest documentation to see the full scope of our compatibility. And then take a look at the original reasons for the decision.
Raphael Kena Poss
February 17, 2022
Engineering
Log and error redaction in CockroachDB v20.2
CockroachDB users trust us with their most sensitive data (see: healthcare, finance). And the best way for us to maintain that trust is for Cockroach Labs to never see this data at all. In CockroachDB v20.2, our tooling is able to automatically redact users' sensitive data out of log files, so that Cockroach Labs never even receives it. We also do this always for crash report telemetry.
Raphael Kena Poss
January 18, 2021
Engineering
Nested transactions in CockroachDB 20.1
CockroachDB 20.1 introduces support for nested transactions, a SQL feature which simplifies the work of programmers of certain client applications. In this post, we'll explore when and where to use nested transactions, when not to use them, and how they work in a distributed environment.
Raphael Kena Poss
June 15, 2020
Performance
Why are my Go executable files so large?
This blog post was originally published on the author's personal blog. Overview I built some tooling to extract details about the contents of a Go executable file, and a small D3 application to visualize this information interactively as zoomable tree maps. Here’s a static screenshot of how the app illustrates the size of the compiled code, in this example for a group modules in CockroachDB:
Raphael Kena Poss
April 18, 2019
System
Local and distributed query processing in CockroachDB
The pgwire module handles the communication with the client application, and receives the query from the client. The SQL text is analyzed and transformed into an Abstract Syntax Tree (AST). This is then further analyzed and transformed into a logical query plan which is a tree of relational operators like filter, render (project), join. Incidentally, the logical plan tree is the data reported by the EXPLAIN statement. The logical plan is then handed up to a back-end layer in charge of executing the query and producing result rows to be sent back to the client.
Raphael Kena Poss
June 8, 2017
System
On the way to better SQL joins in CockroachDB
Six months ago, we reported our first implementation of SQL joins in CockroachDB. At that point in development, we merely provided a functional proof of concept that was severely limited performance-wise. This is changing, gradually. We are preparing to launch CockroachDB 1.0 later this spring, and SQL joins in CockroachDB 1.0 will be usable, if underpowered.
Raphael Kena Poss
February 9, 2017
Performance
Memory usage in CockroachDB
In this blog post, we provide some details on how CockroachDB uses system memory on each node, and what you can do to keep memory usage in CockroachDB under control.
Raphael Kena Poss
November 10, 2016