One design decision any database needs to make is how to handle the situation where multiple clients might be interacting with the same data. PostgreSQL uses a popular approach called Multi-Version Concurrency Control (MVCC) to handle this job. MVCC is also used in BerkeleyDB, Sybase SQL Anywhere, Oracle, and many other database products; it's a general technique and not something specific to PostgreSQL. The introduction to MVCC in the documentation at http://www.postgresql.org/docs/current/static/mvcc-intro.html makes the concept sound more complicated than it is. It's easier to understand with some simple examples, which we'll go through shortly.





















































