| TIL the horror that is the existence of non-serializable isolation. I'm a gamedev. I've worked alongside webdevs (frontend and backend) that build our websites and forums. Alongside coworkers who handle networking stuff while I port things on the same project. Spotted SQLIs for people and pointed them on a better path [1]. I've dabbled in my own share of SQL-adjacent queries... which is to say databases have always been on my list of things I should probably take the time to put properly into my toolkit, for increased reliability and data durability. After all, rotating file snapshots by hand, and fuzzing formats to create recoverability from corruption (if only by detecting it and reverting to previous snapshots instead of crashing or corrupting further) is clearly the work of uncultured barbarians, bereft the wonders of proper fsync-aware ACID storage technologies. And then I read this: --------------------------------------------- However, many database vendors use weaker isolation levels by default, in particular: • “Read committed” in PostgreSQL and Oracle. • “Repeatable read” in MySQL/InnoDB (there is a subtlety, see below) in YugabyteDB. --------------------------------------------- I regret the clearly undue respect and regard I've given to database technology. I knew some of this kind of nonsense had intruded with the NoSQL and sharding crowd, but I thought you at least had to ask for such ruination for most of the SQLs used in production, at least in the context of a singular database. Euhg. 1. https://blog.codinghorror.com/give-me-parameterized-sql-or-g... |