The mailing list discussion, while long, is informative–many links to papers.
If nothing else, I learned I could set a connection’s application name in Postgres, which I did not know.
Fascinating reading, thanks for pointing that out.
I find it curious that all the examples in the post involve one of the transactions performing blind updates.
I don’t think these kind of transactions are very common in normal OLTP usage, and many papers describing new consistency models explicitly point out “we assume no transactions perform blind updates”, or automatically insert “invisible reads” in transactions if they try to update a key without reading it first. Maybe that’s why these bugs went unpatched for so long?
In my experience (webapps, HTTP APIs, streaming systems, search, monitoring), blind-write workloads are extremely common. It doesn’t matter though–we find just as many cycles even when reads precede every write.