Re: Allowing VACUUM to time out when waiting for locks?
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Philip Warner <pjw@rhyme.com.au>
Cc: pgsql-hackers@postgresql.org
Date: 2005-01-30T06:58:40Z
Lists: pgsql-hackers
Philip Warner <pjw@rhyme.com.au> writes: > Am I correct in saying that the FSM now tracks the entire table, and that > the FSM parameters just determine how much is stored in memory? No. Any free space that can't be remembered in FSM is lost to use. (Not completely --- an update of a row on the same page can reuse it --- but for the most part you want to make FSM large enough to remember all the useful free space.) > Is any type of opportunistic locking likely/planned for a future version > (ie. a has lock, b asks for conflicting lock, c asks for lock that is OK > with a but denied by b; so c's lock is allowed and b stays waiting). That's deliberately disallowed by the current logic because of the risk of starving b indefinitely. IIRC it would be a trivial code change to do the other, but I doubt it's a good idea. The typical situation is exactly a VACUUM that wants an exclusive lock, versus a fairly continuous stream of shared lock requests for select/insert/update/delete. regards, tom lane