Live data from Hacker News

Azure Cosmos DB, a globally distributed database

docs.microsoft.com

51–60 of 120 posts

Re: Azure Cosmos DB, a globally distributed database

#51

This feels like MS' version of Google's Cloud Spanner that's GA in a few days. Same kind of marketing too.

Having evaluated both, I'd say Cloud Spanner is quite a bit behind in some regards. It's not that Spanner itself can't do something but that Cloud Spanner hasn't productized some important features like multi-datacenter failovers. It's certainly coming but CosmosDB (aka. DocumentDB) does a lot of this today (and has been for awhile as this is not entirely new).

Re: Azure Cosmos DB, a globally distributed database

#52
Designed with TLA+! :D Small interview with Leslie Lamport:

https://techcrunch.com/2017/05/10/with-cosmos-db-microsoft-w...

Hope Cosmos team releases a whitepaper on their experiences with the language. I'd heard snatches of gossip here and there that TLA+ was used inside Cosmos, but no concrete details.

edit: apparently there's also a video of Lamport talking about this https://www.youtube.com/watch?v=L_PPKyAsR3w

Re: Azure Cosmos DB, a globally distributed database

#53
post #36

Earlier quoted context omitted.

relational model globally distributed ACID transactions 99.999 availability to name a few

Please post link where they talk about transactions - I can't find it in the docs anywhere. Availability SLA is clearly not 5 9's - https://azure.microsoft.com/en-us/support/legal/sla/cosmos-d...

random3 is replying to someone asking about Google's Spanner, which does have those transactions.

Re: Azure Cosmos DB, a globally distributed database

#54
From the intro page[1]... Many of the descriptions comparing to NoSQL are wrong. There are plenty of NoSQL options that have similar features, though it isn't universal, it can and often is there. Cassandra, for example, probably does just as well in multi-zone/dc concurrency. Consistency options are also similarly tunable. Cockroach 1.0 was announced earlier as well.

It's not that I don't appreciate the option. This seems far closer to what DocumentDB should have been earlier on. Though tbh, I think Storage Tables are already pretty useful.

[1] https://docs.microsoft.com/en-us/azure/cosmos-db/introductio...

Re: Azure Cosmos DB, a globally distributed database

#55
post #49

Hi, This is Dharma from Azure Cosmos DB team. We are super excited to make the service available today.We published the first of the series of technical blog posts here -> https://azure.microsoft.com/en-us/blog/a-technical-overview-... . Would love to answer any Cosmos DB questions.

Can you give an overview on how Cosmos differs from Spanner and CockroachDB?

There are many significant differences in capabilities, and design approaches between other systems and Cosmos DB. At a very high level. differences are at two levels - the design of the database engine and the larger distributed system. The database engine design is inspired on LLAMA http://db.disi.unitn.eu/pages/VLDBProgram/pdf/research/p853-..., Bwtree - > https://pdfs.semanticscholar.org/7655/9c6cc259c6ab5baf7bd19d... and schema-agnostic indexing techniques -> http://www.vldb.org/pvldb/vol8/p1668-shukla.pdf. Please note that these papers are significantly behind the current state of the implementation. The most crucial aspect that these papers dont cover is the integration of the database engine with the larger distributed system components of Cosmos DB including the resource governance, partition management, and the implementation of replication protocol /consistency models etc. Our goal is to publish all of the design specifications including TLA+ specs over time.

Re: Azure Cosmos DB, a globally distributed database

#56
post #52

Designed with TLA+! :D Small interview with Leslie Lamport: https://techcrunch.com/2017/05/10/with-cosmos-db-microsoft-w... Hope Cosmos team releases a whitepaper on their experiences with the language. I'd heard snatches of gossip here and there that TLA+ was used inside Cosmos, but no concrete details. edit: apparently there's also a video of Lamport talking about this https://www.youtube.com/watch?v=L_PPKyAsR3w

The effort to formalize the database was apparently led by:

> Leslie Lamport the Turing Award winner whose work underpins many of these concepts (and who also wrote the LaTeX document preparation system) and who joined Microsoft Research in 2001

Quote about TLA+:

> As Shukla noted, though, his idea here was to build a database system that could last decades. To do this, he also brought in Lamport to teach the team TLA+. Lamport has long had a special interest in how developers spec out their applications. TLA+ is essentially a formal language for doing just that. “When we started out in 2010, we wanted to build a system — a lasting system. This was the database of the future for Microsoft,” Shukla told me. “We try to apply as much rigor to our engineering as we possibly can. […] TLA+ has been wonderful in getting that level of rigor in a team of engineers to set the bar high for quality.” TLA+, Lamport noted, allows you to do the high-level design of a system in a completely formal way — and because it’s done formally, it can be checked for correctness, too (and to be fair, AWS and others also use TLA+ to spec out their distributed systems). “I don’t want to give the impression that TLA+ is great and I’m brilliant. It’s great because it’s almost entirely based on mathematics,” Lamport added.

Re: Azure Cosmos DB, a globally distributed database

#57
post #51

This feels like MS' version of Google's Cloud Spanner that's GA in a few days. Same kind of marketing too.

Having evaluated both, I'd say Cloud Spanner is quite a bit behind in some regards. It's not that Spanner itself can't do something but that Cloud Spanner hasn't productized some important features like multi-datacenter failovers. It's certainly coming but CosmosDB (aka. DocumentDB) does a lot of this today (and has been for awhile as this is not entirely new).

But from Cosmos DB's doc, cross-dc strong consistency seems not even supported.

https://docs.microsoft.com/en-us/azure/documentdb/documentdb...

"Azure Cosmos DB accounts that are configured to use strong consistency cannot associate more than one Azure region with their Azure Cosmos DB account."

Re: Azure Cosmos DB, a globally distributed database

#58
post #35

Is it open source? Why do I care? The same reason I don't use AWS or Google Cloud only datastores: I want to avoid vendor lockin.

Vendor lock in is a bad example, it's not like you're going to move your infrastructure from AWS to Google every 6months. And if you do you will have many more complicated problems than vendor lock in.

You could if you just used managed postgresql or iaas.

Re: Azure Cosmos DB, a globally distributed database

#59
post #52

Designed with TLA+! :D Small interview with Leslie Lamport: https://techcrunch.com/2017/05/10/with-cosmos-db-microsoft-w... Hope Cosmos team releases a whitepaper on their experiences with the language. I'd heard snatches of gossip here and there that TLA+ was used inside Cosmos, but no concrete details. edit: apparently there's also a video of Lamport talking about this https://www.youtube.com/watch?v=L_PPKyAsR3w

Here is a longer version with Dr. Lamport with more details https://www.youtube.com/watch?v=L_PPKyAsR3w&feature=youtu.be

Re: Azure Cosmos DB, a globally distributed database

#60
post #51

Earlier quoted context omitted.

Having evaluated both, I'd say Cloud Spanner is quite a bit behind in some regards. It's not that Spanner itself can't do something but that Cloud Spanner hasn't productized some important features like multi-datacenter failovers. It's certainly coming but CosmosDB (aka. DocumentDB) does a lot of this today (and has been for awhile as this is not entirely new).

But from Cosmos DB's doc, cross-dc strong consistency seems not even supported. https://docs.microsoft.com/en-us/azure/documentdb/documentdb... "Azure Cosmos DB accounts that are configured to use strong consistency cannot associate more than one Azure region with their Azure Cosmos DB account."

I didn't claim cross-dc consistency. I said failover, which is shockingly hard to make many competitors do. The key here is that only one DC can take writes but the failover works transparently with your client (also with clear SLAs).
Post reply on HN