Live data from Hacker News

Ex-Googlers CockroachDB: A Scalable, Geo-Replicated, Transactional Datastore

github.com

61–70 of 70 posts

Re: Ex-Googlers CockroachDB: A Scalable, Geo-Replicated, Transactional Datastore

#61
post #16

Earlier quoted context omitted.

The design doc https://docs.google.com/document/d/11k2EmhLGSbViBvi6_zFEiKzu... says, "TBD: how to avoid partitions? Need to work out a simulation of the protocol to tune the behavior and see empirically how well it works" .. so they've gone for CA and forgotten about P.

You're taking a sentence out of context and giving it the most uncharitable possible interpretation. They certainly haven't "forgotten" about network partitions because if you actually read the design document, instead of ctrl-F'ing for the word "partition", they talk about the mechanisms they use to ensure sequential consistency. The software is not yet at the point of being testable AFAIK, but clearly the intent is…

Here's how I understand it: if you claim that your database cannot be taken down by component failure, you have to necessarily consider network partitions as well as individual node failure. If you are node A talking to node B, and node B stops responding you cannot distinguish between a node failure and a network failure. In order to claim high availability you must build an AP system.

Let's reduce this case to a multi-master setup where a client can connect to any node and write to it. If a node fails outright and a client tries to connect, no big deal: the client chooses a different node, the failed node eventually comes back online later, catches up, then says "OK, write to me!" opening a listening socket.

However, if a partition happens, and client X writes to node A, client Y writes to node B, and then the two nodes cannot agree on the correct data, then you lose consistency. You can of course say that no node can be written to if other nodes are offline, which means the system is not highly available.

So their stated goal: "The primary design goal is global consistency and survivability..." either implies that high availability is not something they are going for, or that they are shooting for something that is not theoretically possible.

Of course all of the above is just my understanding, not necessarily fact, so please correct me if I'm wrong.

Re: Ex-Googlers CockroachDB: A Scalable, Geo-Replicated, Transactional Datastore

#62
post #36

Earlier quoted context omitted.

As a Go developer I was happy as well. On the other hand this question immediately popped into my mind: What kind of overhead does the GC incur, and how does it affect processes like a database where low latency is desired?

If I had to guess, I would say network and disk I/O will be the bottlenecks. Disk I/O less so because distributed system, and SSD. I imagine if anyone can solve GC issues, though, I would bet on Google :)

Their chosen solutions to the GC issues are in this roadmap. [0]

[0]: https://docs.google.com/document/d/16Y4IsnNRCN43Mx0NZc5YXZLo...

Re: Ex-Googlers CockroachDB: A Scalable, Geo-Replicated, Transactional Datastore

#63
post #2

Why the 'Ex-Googlers' in the title. Is it like a seal of approval or something?

I don't think it matters how you try to promote an open source project. The code will ultimately be the determining factor whether the project can support a following. And everyone has access to the code to make that determination independently.

That seems rather naive to me. No one is scouring GitHub looking for quality code and bringing unrecognized projects to light.

Re: Ex-Googlers CockroachDB: A Scalable, Geo-Replicated, Transactional Datastore

#64
post #48
post #22

awful name!

I think the sentiment was "hard to kill" and/or become extinct due to its resiliency. But I agree, they should have picked something else.

Good point about the likely reason.

Hydra could have been another good choice :)

http://en.wikipedia.org/wiki/Hydra

See first entry at above Wikipedia page, about the many-header serpent.

Re: Ex-Googlers CockroachDB: A Scalable, Geo-Replicated, Transactional Datastore

#65

Earlier quoted context omitted.

You're taking a sentence out of context and giving it the most uncharitable possible interpretation. They certainly haven't "forgotten" about network partitions because if you actually read the design document, instead of ctrl-F'ing for the word "partition", they talk about the mechanisms they use to ensure sequential consistency. The software is not yet at the point of being testable AFAIK, but clearly the intent is…

Here's how I understand it: if you claim that your database cannot be taken down by component failure, you have to necessarily consider network partitions as well as individual node failure. If you are node A talking to node B, and node B stops responding you cannot distinguish between a node failure and a network failure. In order to claim high availability you must build an AP system. Let's reduce this case to a mu…

> In order to claim high availability you must build an AP system.

I strongly disagree. The "A" in CAP describes a system such that any single non-failing node can always make progress. That would be a nice property to have, but it's much stricter than is required for a real system.

If a distributed database is resilient to failure of a minority of nodes, it still makes sense to describe it as high-availability. And that is exactly what a consensus algorithm like Paxos or Raft gives you.

Re: Ex-Googlers CockroachDB: A Scalable, Geo-Replicated, Transactional Datastore

#66
post #53
post #18

Are there distributed data stores like this that are also resilient to intentional sabotage? I've been looking recently at long-term digital preservation systems -- tools designed to archive large amounts of data for decades. This is the Library of Alexandria problem -- how do we preserve all this data we're generating against once-in-a-century disasters? So this 2005 paper lists thirteen different threats to long-te…

Any idea how well LOCKSS would handle this? http://www.lockss.org http://blog.dshr.org/2014/07/trac-certification-of-clockss-a...

LOCKSS is definitely a giant in this field, and David Rosenthal (who wrote the paper I linked as well) is great.

But LOCKSS occupies a small niche. My hope is really that at some point a commercially-focused project with a ton of engineering effort and battle testing behind it will displace a lot of what LOCKSS has had to do manually. Seems like that might happen as web services get more and more distributed and fault-tolerant.

Re: Ex-Googlers CockroachDB: A Scalable, Geo-Replicated, Transactional Datastore

#67
post #29

Earlier quoted context omitted.

It indicates that the project is worth a closer look rather than waiting or dismissing it outright.

> It indicates that the project is worth a closer look rather than waiting or dismissing it outright. reply I'm curious, could you explain why? Google is an incredibly large company with many developers who never even touch their data systems so to me saying ex-Googler really doesn't mean anything beyond that they're probably a senior developer considering how rigorous (and honestly some old hat) their interview proc…

You can take a look at the project author profiles.

Re: Ex-Googlers CockroachDB: A Scalable, Geo-Replicated, Transactional Datastore

#68
post #45
post #18

Are there distributed data stores like this that are also resilient to intentional sabotage? I've been looking recently at long-term digital preservation systems -- tools designed to archive large amounts of data for decades. This is the Library of Alexandria problem -- how do we preserve all this data we're generating against once-in-a-century disasters? So this 2005 paper lists thirteen different threats to long-te…

The problem with internal/external attacks is that we (the society) don't really want to prevent it. The reason is simple: child porn. To date, Bitcoin block chain (and related ideas) is the only data-storage that is 100% resistant to attacks (i.e. changing history), but luckily it cannot handle amounts of data large enough to be viable for child porn (or most other forms of media). Tor, on the other hand, gets a bad…

You're conflating the archival properties of the medium with the decision about what to save. Oil paint on canvas is durable. It doesn't mean that a museum needs to retain every piece of crap that anyone paints.

Re: Ex-Googlers CockroachDB: A Scalable, Geo-Replicated, Transactional Datastore

#69

Earlier quoted context omitted.

I don't think it matters how you try to promote an open source project. The code will ultimately be the determining factor whether the project can support a following. And everyone has access to the code to make that determination independently.

That seems rather naive to me. No one is scouring GitHub looking for quality code and bringing unrecognized projects to light.

My point is not that unfound projects will necessarily become found. No matter how good they are. Instead the idea is that no matter how a project is promoted, ultimately they only have their code-base to back their claims.

Re: Ex-Googlers CockroachDB: A Scalable, Geo-Replicated, Transactional Datastore

#70
post #68
post #45

Earlier quoted context omitted.

The problem with internal/external attacks is that we (the society) don't really want to prevent it. The reason is simple: child porn. To date, Bitcoin block chain (and related ideas) is the only data-storage that is 100% resistant to attacks (i.e. changing history), but luckily it cannot handle amounts of data large enough to be viable for child porn (or most other forms of media). Tor, on the other hand, gets a bad…

You're conflating the archival properties of the medium with the decision about what to save. Oil paint on canvas is durable. It doesn't mean that a museum needs to retain every piece of crap that anyone paints.

The problem is that removal of content because it's crap/immoral versus operator destruction is not a meaningful distinction, from a software perspective.

So it would probably need to be write-only to prevent people from burning it down, which would necessarily mean that, once content is included, it cannot be modified or removed.

Post reply on HN