Greetings stalwart technical nuonians! I am back with a follow on to my previous MVCC post. Part 1 gave a high-level abstract overview of the problem that MVCC was meant to solve, and a basic sketch of how a database would use MVCC to maximize concurrency. Now, in part 2 I hope to make these concepts more concrete by giving specific examples.
Example 1: Reads and Updates
Consider a table with at least 3 live rows in it. Assume each row has some ID value. Given that, let’s examine the case where