There are a few NewSQL engines exist, most of them Postgres-compatible, but there are MariaDB Xpand and others, MySQL-based. Plus Galera-based clusters. My question - is there production ready DBaaS service, which provide managed DB on AWS?
1 Answer
(The Title and the Text talk about different things.)
What would you be bringing to the table that AWS (or other Cloud) does not already provide?
Please define "geo-distributed". Meanwhile, let me define:
Sharding -- Where different subsets of the data are on different servers.
Galera -- Galera, InnoDB Cluster, and most other "cluster" solutions hold the same data on each server.
High Availability (HA) -- This involves having the same data copied to multiple servers, usually separated geographically. This is usually a feature for "clustering".
PARTITION -- (Not to be confused with 'sharding'.) Splitting one table into chunks (eg, by "day"). Such partitions live on the same server. There are very few use cases where any performance is gained by partitioning.
DBaaS sounds like you have independent datasets owned by different users.
- Sharding may be useful -- Put some users on each of several servers.
- Having servers scattered around the world is useful to decrease latency for most users.
- Galera / HA is useful to protect against lost data and/or provide access even when some datacenter is down.
- (Partitioning is probably not useful.)
- "is there production ready DBaaS service, which provides managed DB on AWS" -- Ask an AWS salesman.
NDB
MySQL's NDB Cluster can be effectively deployed globally. Unlike InnoDB's model of transactions, NDB implements "eventual consistency". In this model, the user talks to a nearby server and 'commits' the transaction. Later (probably within one second) the data is shipped to all other servers around the globe. If there are conflicts (which should not occur, according to your description) will be resolved via one of a small number of algorithms. A simple algorithm is "first one wins".
That provides low latency, yet global replication and HA.
-
Agree - "geo-distributed" is too wide term. I'm looking to decrease latency for users worldwide, using the same data. >"is there production ready DBaaS service, which provides managed DB on AWS" -- Ask an AWS salesman. There are many 3rd party DBaaSes (like aiven.io, Mongo Atlas, ...).Vitaly Karasik DevOps– Vitaly Karasik DevOps2021-10-05 03:29:04 +00:00Commented Oct 5, 2021 at 3:29
-
@Vitaly - Will one customer be located in a single region? (Give him a nearby instance.) Or will one customer's users be scattered around the globe? (This is a tougher problem to solve.)Rick James– Rick James2021-10-05 05:08:20 +00:00Commented Oct 5, 2021 at 5:08
-
@Vitaly - Also, will individual users not conflict with each other? (Hence, multi-Primary is not a problem.)Rick James– Rick James2021-10-05 05:10:48 +00:00Commented Oct 5, 2021 at 5:10
-
> Or will one customer's users be scattered around the globe? Yes >Also, will individual users not conflict with each other? No, they shouldn't conflictVitaly Karasik DevOps– Vitaly Karasik DevOps2021-10-05 09:11:16 +00:00Commented Oct 5, 2021 at 9:11
-
1Perhaps NDB is what you need; I added a brief description of such. I don't know about "managed by AWS".Rick James– Rick James2021-10-05 14:02:55 +00:00Commented Oct 5, 2021 at 14:02