PostgreSQL V9.6 LWLock实现分析(三)

时间:2020-12-02 05:56:15

X-XX

Wait Event Type

Wait Event Name

Description

Lock[1]

relation

Waiting to acquire a lock on a relation.

extend

Waiting to extend a relation.

page

Waiting to acquire a lock on page of a relation.

tuple

Waiting to acquire a lock on a tuple.

transactionid

Waiting for a transaction to finish.

virtualxid

Waiting to acquire a virtual xid lock.

speculative token

Waiting to acquire a speculative insertion lock.

object

Waiting to acquire a lock on a non-relation database object.

userlock

Waiting to acquire a userlock.

advisory

Waiting to acquire an advisory user lock.

BufferPin[2]

BufferPin

Waiting to acquire a pin on a buffer.



[1] The backend is waiting for a heavyweight lock. Heavyweight locks, also known as lock manager locks or simply locks, primarily protect SQL-visible objects such as tables. However, they are also used to ensure mutual exclusion for certain internal operations such as relation extension. wait_event will identify the type of lock awaited.

[2] The server process is waiting to access to a data buffer during a period when no other process can be examining that buffer. Buffer pin waits can be protracted if another process holds an open cursor which last read data from the buffer in question