CockroachDB EC-1 Part 2: Technical design
CockroachDB was intended be a global database from the start. The founders of Cockroach Labs wanted to ensure that data written in one place would be immediately visible in another location 10,000 miles away. The use case was simple, but the work involved in getting there was Herculean.
The company is betting on the farm that it can solve one of the biggest application challenges on the web. The approach he takes is smart, but it’s a bit complicated, especially for the non-technical reader. Considering its history and engineering talents, the company is on track to be successful and have a big impact on the database market, making it a technology worth understanding. In short, it pays to dig into the details.
Using CockroachDB’s multi-region feature to segment data based on geographic proximity responds to Cockroach Labs main guideline: get data as close to the user as possible.
In Part 1 of this EC-1, I gave a general overview and insight into the origins of Cockroach Labs. In this article, I’ll cover the technical details of the technology with the non-technical reader in mind. I will describe CockroachDB technology through three questions:
- What makes reading and writing data about a global geography so difficult?
- How does CockroachDB solve the problem?
- What does all this mean for those who use CockroachDB?
What makes reading and writing data about a global geography so difficult?
Spencer Kimball, CEO and co-founder of Cockroach Labs, describes the situation as follows:
There are a lot of other things you need to consider when building global apps, especially around data management. Take, for example, the Quora question and answer site. Let’s say you live in Australia. You have an account and you store your Quora user identity details on a database partition in Australia.
But when you post a question, you don’t want that data just posted in Australia. You want this data displayed everywhere so that all answers to all questions are the same for everyone, anywhere. You don’t want to have a situation where you answer a question in Sydney and then you can see it in Hong Kong, but you can’t see it in the EU. When it does, you get different answers depending on where you are. It is a huge problem.
Reading and writing data about a global geography is a challenge for the same reason that it is faster to have a pizza delivered across the street than across town. The essential constraints of time and space apply. Whether it’s digital data or a pepperoni pizza, the further away you get from the source, the longer things take to get to you.