3 ms·
I did a talk about establishing criteria for differences between distributed SQL and NoSQL databases. https://www.youtube.com/watch?v=nJvnq8ZD_7Q https://www.y
by PeterCorless 4y ago
I did a talk about establishing criteria for differences between distributed SQL and NoSQL databases.
https://www.youtube.com/watch?v=nJvnq8ZD_7Q https://www.youtube.com/watch?v=nJvnq8ZD_7Q
There are a couple of different dimensions to consider. I didn't focus on this in the talk but firstly you should consider these elements...
• Speed (latency & throughputs)
• Scale (gigabytes? terabytes? petabytes? exabytes?)
• Workload types (OLAP, OLTP, HTAP, data warehouses/lakes/lakehouses)
• Consistency Models ("ACID vs. BASE", eventual vs. strong, etc.)
• Data Model - RDBMS, NoSQL (Key-Value, Wide Column, Document, Graph, Column Store, etc.)
• Query Language (SQL, streaming SQL [Flink], CQL [Cassandra, ScyllaDB, DataStax, CosmosDB, Keyspaces, Yugabyte, etc.], Gremlin/Tinkerpop [JanusGraph, DSE Graph, OrientDB, etc.], and so on.
What I did focus on was more the "distributed system" attributes...
• Clustering & distribution (local clustering, cross-clustering, multidatacenter clustering)
• Node roles, high availability & failover strategies (primary/replica, peer-to-peer leaderless/active-active, load balancing)
• Data replication/sharding strategies (replication factors, consistency levels, manual vs. auto-sharing, topology awareness [rack and datacenter awareness])
I only focused on a handful. There are literally hundreds of databases tracked on DB-engines:
https://db-engines.com/en/ranking https://db-engines.com/en/ranking
[Disclosure, I work for ScyllaDB]
- jeffbee 4y agoNone of Bigtable, Spanner, or DynamoDB made your shortlist?
- PeterCorless 4y agoFor the sake of that talk I focused only on open source you could self-host. SQL • PostgreSQL • CockroachDB NoSQL • MongoDB • Redis • ScyllaDB [Cassandra] There are a lot of points in the DBaaS world to also consider, but there's also issues of visibility — can these issues be known, perceived or understood from a user's POV? Are they documented? Or are some of these considerations obscured and trade secreted? So I had to pare down. I planned to do a whole different talk on DBaaS systems, and yes, I'd likely shortlist Bigtable, Spanner, DynamoDB, and a few others for that. Only so much to do in an hour! :)