1. A method for creating a wait for dependency in a multi-version concurrency control scheme of a main memory database, the method comprising: a first transaction placing a read marker on a version of a record in a database, the read marker indicating that the first transaction is reading the version of the record, but does not prevent another transaction from reading or updating the record concurrently; before the first transaction terminates, a second transaction acquiring a write lock on the version of the record, the write lock preventing another transaction from updating the version of the record; as part of acquiring the write lock, the second transaction creating a wait for dependency on the version; and the second transaction continuing processing, but waiting to begin commit until the first transaction terminates and removes the read marker on the version.