Concurrency control questions 6.3.2 vs. 6.4
Steve Frampton <frampton@mail.flarc.edu.on.ca>
From: Steve Frampton <frampton@mail.flarc.edu.on.ca>
To: PostgreSQL-development <hackers@postgreSQL.org>
Date: 1998-11-15T23:04:10Z
Lists: pgsql-hackers
Hello: I noticed the locking code in the backend/storage/lmgr directory has had a lot of modifications between 6.3.2 vs. 6.4. I know that Vadim is working on changing the table-level locking scheme of 6.3.2 towards a multi-version concurrency control scheme. I'm wondering how much along these modifications are -- it looks like there were changes made to the existing locking scheme but no additional features were added. This is based on a very cursory look at the locking code in 6.4 (the locking code is a lot more complicated than I had initially thought it was going to be). I'm curious as to how the multi-version scheme will be implemented. Vadim said that Postgres has a non-overwriting storage manager which can be exploited for this concurrency control scheme. I'm not sure I understand him -- values that are updated in a table are written to the database in such a fashion that the old value remains accessible? This is accomplished without a recovery log? Also, there is some user-level locking code in the contrib directory by Massimo that (if I am correct in my understanding of it), seems to be providing row-level locking capabilities through query selects. Is this something that will be added to the Postgresql core at a future date? Thanks in advance for any information you can provide. --------------< LINUX: The choice of a GNU generation. >-------------- Steve Frampton <3srf@qlink.queensu.ca> http://qlink.queensu.ca/~3srf