Surprised to see Amazon RDS doesn't pass such simple test. Nicely done!
This is not a single RDS or the single instance in another AZ. Its a more specific and advanced cluster setup.
Jepsen: Amazon RDS for PostgreSQL 17.4
101–110 of 153 posts
Re: Jepsen: Amazon RDS for PostgreSQL 17.4
#102"Amazon RDS for PostgreSQL is an Amazon Web Services (AWS) service which provides managed instances of the PostgreSQL database. We show that Amazon RDS for PostgreSQL multi-AZ clusters violate Snapshot Isolation, the strongest consistency model supported across all endpoints. Healthy clusters occasionally allow..."
Direct, to-the-point, unembellished and analogous to how other STEM disciplines share findings. There was a time I liked reading cleverly written blog posts that use memes to explain things, but now I long for the plain and simple.
Re: Jepsen: Amazon RDS for PostgreSQL 17.4
#103Earlier quoted context omitted.
The state of the art is always advancing, which greatly increases the burden of starting from first principles. I somewhat feel that there was a generation that had it easier, because they were pioneers in a new field, allowing them to become experts quickly, while improving year-on-year, being paid well in the process, and having great network and exposure. Of course, it can be done, but we should at least acknowled…
> I somewhat feel that there was a generation that had it easier I don't think so. I've been doing this for nearly 35 years now, and there's always been a lot to learn. Each layer of abstraction developed makes it easier to quickly iterate towards a new outcome faster or with more confidence, but hides away complexity that you might eventually need to know. In a lot of ways it's easier these days, because there's so…
The kids might not know this means "IBM mainframe" rather than "role playing game" :)
Re: Jepsen: Amazon RDS for PostgreSQL 17.4
#104It's not mentioned in the headline and not made super clear in the article: This is specific to multi-AZ clusters, which is a relatively new feature of RDS, and differ from multi-AZ instance that most will be familiar with. (Clear as mud.) Multi-AZ instances is a long-standing feature of RDS where the primary DB is synchronously replicated to a secondary DB in another AZ. On failure of the primary, RDS fails over to…
Re: Jepsen: Amazon RDS for PostgreSQL 17.4
#105I wish more writing in the software world was done this way: "Amazon RDS for PostgreSQL is an Amazon Web Services (AWS) service which provides managed instances of the PostgreSQL database. We show that Amazon RDS for PostgreSQL multi-AZ clusters violate Snapshot Isolation, the strongest consistency model supported across all endpoints. Healthy clusters occasionally allow..." Direct, to-the-point, unembellished and an…
Re: Jepsen: Amazon RDS for PostgreSQL 17.4
#106Re: Jepsen: Amazon RDS for PostgreSQL 17.4
#107Software developers nowadays barely know about transactions, and definitely not about different transaction models (in my experience). I have even encountered "senior developers" (who are actually so called "CRUD developers"), who are clueless about database transactions.. In reality, transactions and transaction models matter a lot to performance and error free code (at least when you have volumes of traffic and your software solves something non-trivial).
For example: After a lot of analysis, I switched from SQL Server standard Read Committed to Read Committed Snapshot Isolation in a large project - the users could not be happier -> a lot of locking contention has disappeared. No software engineer in that project had any clue of transaction models or locks before I taught them some basics (even though they had used transactions extensively in that project)..
Re: Jepsen: Amazon RDS for PostgreSQL 17.4
#108Re: Jepsen: Amazon RDS for PostgreSQL 17.4
#109Good investigation! Software developers nowadays barely know about transactions, and definitely not about different transaction models (in my experience). I have even encountered "senior developers" (who are actually so called "CRUD developers"), who are clueless about database transactions.. In reality, transactions and transaction models matter a lot to performance and error free code (at least when you have volume…
I’ve seen this work out terribly at certain points in my career.
Re: Jepsen: Amazon RDS for PostgreSQL 17.4
#110It's not entirely clear but this isn't an issue in multi instance upstream Postgres clusters? Am I correct in understanding either AWS is doing something with the cluster configuration or has added some patches that introduce this behavior?
What are multi instance upstream Postgres clusters for you? PostgreSQL has no official support for failover of a master instance, the only mechanism is Postgres replication which you can make synchronous. Then you can build your own tooling around this to build a Postgres cluster (Patroni is one such tool). AWS patched Postgres to replicate to two instances and to call it good if one of the two acknowledges the chang…
That's basically what their Aurora variant does. It uses clustered/shared storage then uses traditional replication only for cache invalidation (so replicas know when data loaded into memory/cache has changed on the shared storage)