Introduction If you've ever dealt with ANY database system you probably encountered the ACID acronym. Let's briefly go over each of the principles it describes: A for Atomicity The concept of treating something (a block of data operations in our context) as a single, indivisible unit of work. C...
Multi-version histories In conventional histories, at any point in time, there exists only one version of a data item. That means that the write operations always replace current version and the read operations always read the latest written version as it is defined by the schedule semantics:...
Once upon a time, I was interviewed for a database engineering position. I was asked about what deadlock prevention algorithms do I know. I could not name a few (besides detection and randomization) and I was rejected. It was an unsatisfying experience because the ideas behind those algorithms...
Recently, I came across an excellent exercise of testing a scheduling history for belonging to different serializability classes and had a lot of fun drawing a polygraph and finding out a cycle in it. When I finally managed to draw the correct version of the polygraph, I thought that it could be...
This document contains simple examples and explanations of transaction isolation anomalies well known since the late ’90s. The work based on papers [1], [2], [3]. I hope it will be helpful for someone as a quick reference. List of covered anomalies include: G0: Dirty writes G1: Dirty...