Understanding how concurrency is achieved under the hood is pretty important for anyone using databases since it impacts things like isolation guarantees and performance. I had originally wanted to share a comparison of how CockroachDB and PostgreSQL use MVCC differently to handle concurrency. However, the CockroachDB implementation had too many additional bells and whistles, and it would have made this post too long. So for now, here’s a quick overview of PostgreSQL’s MVCC model. It’s a complicated topic, so let me know if you see anything I should fix on Twitter @Dianasaur323!