Tom Lane <[EMAIL PROTECTED]> writes: > That one I can answer --- it's a bootstrapping issue: we can't use > LWLocks until we have a PGProc (*MyProc), and we can't set that up > without looking in the ShmemIndex for the related data structures. > So ShmemIndex needs to use a more primitive lock type.
Fair enough. My next question would have been to ask whether switching to a spinlock here will be a performance problem. In looking at the code, it seems we only hold the ShmemIndexLock for a long time (hundreds of instructions & multiple system calls) while bootstrapping the shmem index hash table itself. Otherwise, the lock is acquired and released quickly, and even then it is only done during backend initialization, so there shouldn't be much contention for it. Is this analysis correct? > I don't want to make these things public, because we don't really > want any other modules accessing them. I agree, both ways are non-optimal for different reasons. Can anyone else see a better way to do this? -Neil ---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match