Isolation levels: Zero to hero!
The key for sql databases is concurrency, how RDBMS (do you remember that acronym?) handle concurrent transactions. This is both a classical subject and the reason behind some of the overhead of SQL databases compared with NoSQL databases.
What is really interesting about this subject is that, being at the core of databases, it is almost neglected and receives very few attention. The 2011 version of the SQL standard dedicates less than 0,001% of the documentation to this subject... this is remarkable as this is one of the key aspects of concurrency and performance.
Last, but not least, this is a subject that should be of special interest for you, developers as it is tightly bounded to the application behavior and is implemented in different ways by different database providers.
In the talk I will talk about:
- Quick review of items not related to this subject, but that must be present in any talk.
- Quick review of items related to this subject and that must be present in any talk: Transactions, Concurrency and Isolation.
- Phenomenon (I thought it was a Travolta movie)
- MVCC (We have one C more than Model-View-Controller)
- And Now for Something Completely Different: Redo and Undo (or why we do it three times, really? just three... I thought it was five)
- Isolation is the I in ACID
- About the Dirty Unrepeatable Phantoms
- Not everything is a transaction, but sometimes they are two.
- MySQL implementation: Repeatable read and autocommit or Why make one thing wrong when you make two?
- Read committed and select for update to the rescue.
- Recap and one thing your DBA ignores and you know.