|
7085 | 7085 | </para> |
7086 | 7086 |
|
7087 | 7087 | <para> |
7088 | | - When the <structname>pg_locks</structname> view is accessed, the |
7089 | | - internal lock manager data structures are momentarily locked, and |
7090 | | - a copy is made for the view to display. This ensures that the |
7091 | | - view produces a consistent set of results, while not blocking |
7092 | | - normal lock manager operations longer than necessary. Nonetheless |
7093 | | - there could be some impact on database performance if this view is |
7094 | | - frequently accessed. |
| 7088 | + The <structname>pg_locks</structname> view displays data from both the |
| 7089 | + regular lock manager and the predicate lock manager, which are |
| 7090 | + separate systems. When this view is accessed, the internal data |
| 7091 | + structures of each lock manager are momentarily locked, and copies are |
| 7092 | + made for the view to display. Each lock manager will therefore |
| 7093 | + produce a consistent set of results, but as we do not lock both lock |
| 7094 | + managers simultaneously, it is possible for locks to be taken or |
| 7095 | + released after we interrogate the regular lock manager and before we |
| 7096 | + interrogate the predicate lock manager. Each lock manager is only |
| 7097 | + locked for the minimum possible time so as to reduce the performance |
| 7098 | + impact of querying this view, but there could nevertheless be some |
| 7099 | + impact on database performance if it is frequently accessed. |
7095 | 7100 | </para> |
7096 | 7101 |
|
7097 | 7102 | <para> |
|