Lock on ShmemVariableCache fields?
От | Japin Li |
---|---|
Тема | Lock on ShmemVariableCache fields? |
Дата | |
Msg-id | MEYP282MB16698F2B4CA6127A8D6E4085B6379@MEYP282MB1669.AUSP282.PROD.OUTLOOK.COM обсуждение исходный текст |
Ответы |
Re: Lock on ShmemVariableCache fields?
|
Список | pgsql-hackers |
Hi, hackers The VariableCacheData says nextOid and oidCount are protected by OidGenLock. However, we update them without holding the lock on OidGenLock in BootStrapXLOG(). Same as nextXid, for other fields that are protected by XidGenLock, it holds the lock, see SetTransactionIdLimit(). void BootStrapXLOG(void) { [...] ShmemVariableCache->nextXid = checkPoint.nextXid; ShmemVariableCache->nextOid = checkPoint.nextOid; ShmemVariableCache->oidCount = 0; [...] SetTransactionIdLimit(checkPoint.oldestXid, checkPoint.oldestXidDB); [...] } I also find a similar code in StartupXLOG(). Why we don't hold the lock on OidGenLock when updating ShmemVariableCache->nextOid and ShmemVariableCache->oidCount? If the lock is unnecessary, I think adding some comments is better. -- Regrads, Japin Li. ChengDu WenWu Information Technology Co.,Ltd.
В списке pgsql-hackers по дате отправления: