|
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>
|
|