A comparison of advanced, modern cloud databases
brandur.org
brandur.org
I ask because there are things that would appear to be errors on the comparison matrix, and Amazon Aurora is listed as receiving full marks in every category, as if it was the greatest of all the solutions!
Some issues I see:
Amazon Aurora has checkboxes for horizontally scalable (none) and automatic data sharding (none), and for latency, this is simply assumed. But Aurora is backed by disks (or provisioned IO SSDs) and it's not at all comparable to memcached in terms of latency. (See: >5ms writes in [1], which places Amazon Aurora about what I'd expect any SQL database to be at, 1-10ms for read and writes.)
CosmosDB has no checkbox for ACID or Automatic Data Sharding. "All JavaScript logic is executed within an ambient ACID transaction with snapshot isolation. During the course of its execution, if the JavaScript throws an exception, then the entire transaction is aborted." [2], and "Partition management is fully managed by Azure Cosmos DB, and you do not have to write complex code or manage your partitions. Cosmos DB containers are unlimited in terms of storage and throughput." [3]. The "partition key" might be something of a misnomer. For a multi-tenant service, the partition key can be used to limit the performance of a tenant by assigning them one partition key, but if there is no desire to restrict performance, the partition key can be a randomly generated identifier.
MongoDB has no checkbox for automatic data sharding, but practically speaking the hash-based sharding is fine. It's really curious that the author gives Aurora a checkbox here, but not MongoDB. Is it not normal for `distributed` tables to be used in MongoDB deployments? I would guess it is.
Lastly, I just don't think Aurora is the same type of database as Google's Cloud Spanner and Microsoft's Cosmos DB. The latter are, really, a new kind of database, and Aurora is a managed MySQL or Postgres instance.
[1] https://pagely.com/blog/2015/08/we-benchmarked-amazons-new-a...
[2] https://docs.microsoft.com/en-us/azure/documentdb/documentdb...
[3] https://docs.microsoft.com/en-us/azure/cosmos-db/partition-d...
How about some numbers to back you up?
I think the authors main gripe with MongoDB was the lack of ACID transactions
If you want something that's portable, pretty scalable, and fast, go with Postgres. If you need something that's really scalable, there are plenty of other good databases on that list.
This was posted 12 hours ago and mentions 'Aurora' except that that it uses MySQL as a backing and is currently in Beta with PostgreSQL.
It also mentions that PostgreSQL is on Azure, but says 'hopefully soon' for GCE, even tho... it's in Beta, just like Azure.
https://cloud.google.com/sql/docs/features#postgres
Unless it's only referring to High Availability which it's hard to tell from whats written.
------
As a side note, the author needs to update the font used on his site, it's rather hard to read on Chrome / Windows 10.