> Exerpt from http://www3.us.postgresql.org/features.html > > Multi-Version Concurrency Control (MVCC) for highly scalable > concurrent applications: > * Readers do not block writers and writers do not block readers. > * "Better than row-level locking." > * Various row and table level locks are available as well. > > Detail found at > http://www3.us.postgresql.org/users-lounge/docs/7.1/user/mvcc.html "Better than row-level locking" sounds like marketing spin to me. Just in case it's not already known to everyone reading, MVCC nor row-level-locking are the best in all cases. Both add overhead above and beyond standard multi-reader/one-writer page level locking. If your app doesn't make up for this by gaining more concurrency, then it will run slower and/or take up more disk space. For example, a single user application will certainly not gain anything from using any kind of concurrency control mechanism. Additionally, MVCC is geared toward applications with more readers than writers. Each write requires the data to be copied and thus writes take a long time. If you have more writers than readers, then you are likely to not be served well by MVCC. However, it is cool that PostgreSQL provides the MVCC option. (Trivia niblit: Object Design's ObjectStore also offers MVCC.) Mike Bresnahan