
Blog
Engineering
When and why to use SELECT FOR UPDATE in CockroachDB
We didn’t implement SELECT FOR UPDATE to ensure consistency. Unlike Amazon Aurora, CockroachDB already guarantees serializable isolation, the highest isolation level provided by the ANSI SQL standard. Contention happens. And application developers shouldn’t need to risk the integrity of their data when transactions contend. To combat this, CockroachDB must occasionally return errors prompting applications to retry transactions that would risk anomalies, such as write skews. This means that just like with PostgreSQL in serializable isolation, developers need to implement retry-loops for contended transactions. For developers accustomed to relational databases with lower isolation levels, this can be an unfamiliar pattern.

John Kendall
June 22, 2020
Product
Build an app with Active Record + CockroachDB
To make CockroachDB as accessible as possible, we’ve worked hard over the past six months to add compatibility with various Object Relational Mapping tools (ORMs). We started with ORMs for Python, Java, and Go. Now, we’re excited to announce full CockroachDB compatibility with Active Record, our first ORM for Ruby developers.

Meagan Goldman
June 17, 2020
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
Product
How to get zero-downtime scaling from single-region to multi-region applications
CockroachDB offers a number of features aimed at making it easy to support your application in multiple regions. In CockroachDB 20.1, we introduced a new feature Online Primary Key Changes that allows you to upgrade your application from a single-region to multi-region with zero downtime. We wrote a bit recently about the technical challenges involved in building online primary key changes and in this blog post, we'll walk through some of the use cases and benefits the feature can lead to.

Andy Woods
June 11, 2020
Engineering
SIGMOD 2020: Cockroach Labs publishes research paper on CockroachDB
Over the past few months, a team of our engineers, technical writers, product managers, and sales engineers codified the research and learnings of CockroachDB and are now contributing this knowledge back into the very system from which we have benefited with the hope of further advancing distributed systems research and design. The research paper, "CockroachDB: The Resilient Geo-Distributed SQL Database", is a labor of love that we are honored to have published by SIGMOD, the Association for Computing Machinery's (ACM) Special Interest Group on Management of Data, which specializes in large-scale data management problems.

Jessica Edwards
June 10, 2020
Company
Louder than words: How to create positive change
Many of our employees, customers, partners, and the communities where we work and live are hurting. The Black community in America has already suffered disproportionately from COVID-19 through illness and unemployment. Exacerbating this, we are extremely saddened by the killings of Ahmaud Arbery, Breonna Taylor, George Floyd, and countless others across the United States. The murder of George Floyd has, again, highlighted the desperate need for police reform and racial justice in this country.

Spencer Kimball
June 4, 2020
Product
Cockroach University: Free, engaging online curriculum on modern database technology
Around 6 months ago, we launched Cockroach University to provide a way for people to learn CockroachDB in a structured environment with opportunities for hands-on experience. Since then, we have learned that it’s actually much more than that.
Will Cross
May 28, 2020
Engineering
How online primary key changes work in CockroachDB
As of our 20.1 release, CockroachDB supports online primary key changes. This means that it is now possible to change the primary key of a table while performing read and write operations on the table. Online primary key changes make it easier to transition an application from being single-region to multi-region, or to iterate on the schema of an application with no down time. Let’s dive into the technical challenges behind this feature, and our approach to solving them. As part of the deep dive, let’s review how data is stored in CockroachDB, and how online schema changes work in CockroachDB.
Rohan Yadav
May 21, 2020
Company
3 programs to support developers and COVID-19 frontline workers
The global pandemic has changed the way we live and work. Work-from-home has become the new normal. Web and application traffic patterns have been turned upside-down. These abrupt transitions have added stress not only to our daily lives but also to our infrastructure and business applications. In response to these dramatic shifts, Cockroach Labs is launching new programs to better support our fellow developers and the greater community of those affected by COVID-19.

Jessica Edwards
May 14, 2020
