mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-31 00:03:57 -04:00 
			
		
		
		
	Documentation patch by Kevin L. McBride explaining GUC lock variables,
which are available if LOCK_DEBUG is defined.
This commit is contained in:
		
							parent
							
								
									009a6c9a1a
								
							
						
					
					
						commit
						1e797d29c3
					
				| @ -1,4 +1,4 @@ | |||||||
| <!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.181 2008/06/30 10:58:47 heikki Exp $ --> | <!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.182 2008/07/01 21:49:04 momjian Exp $ --> | ||||||
| 
 | 
 | ||||||
| <chapter Id="runtime-config"> | <chapter Id="runtime-config"> | ||||||
|   <title>Server Configuration</title> |   <title>Server Configuration</title> | ||||||
| @ -5104,15 +5104,161 @@ plruby.use_strict = true        # generates error: unknown class name | |||||||
| 
 | 
 | ||||||
|      <varlistentry> |      <varlistentry> | ||||||
|       <term><varname>trace_locks</varname> (<type>boolean</type>)</term> |       <term><varname>trace_locks</varname> (<type>boolean</type>)</term> | ||||||
|       <term><varname>trace_lwlocks</varname> (<type>boolean</type>)</term> |       <indexterm> | ||||||
|       <term><varname>trace_userlocks</varname> (<type>boolean</type>)</term> |        <primary><varname>trace_locks</> configuration parameter</primary> | ||||||
|       <term><varname>trace_lock_oidmin</varname> (<type>boolean</type>)</term> |       </indexterm> | ||||||
|       <term><varname>trace_lock_table</varname> (<type>boolean</type>)</term> |  | ||||||
|       <term><varname>debug_deadlocks</varname> (<type>boolean</type>)</term> |  | ||||||
|       <term><varname>log_btree_build_stats</varname> (<type>boolean</type>)</term> |  | ||||||
|       <listitem> |       <listitem> | ||||||
|        <para> |        <para> | ||||||
|         Various other code tracing and debugging options. |         If on, emit information about lock usage.  Information dumped | ||||||
|  |         includes the type of lock operation, the type of lock and the unique | ||||||
|  |         identifier of the object being locked or unlocked.  Also included | ||||||
|  |         are bitmasks for the lock types already granted on this object as | ||||||
|  |         well as for the lock types awaited on this object.  For each lock | ||||||
|  |         type a count of the number of granted locks and waiting locks is | ||||||
|  |         also dumped as well as the totals.  An example of the log file output | ||||||
|  |         is shown here: | ||||||
|  |        </para> | ||||||
|  |        <para> | ||||||
|  |         LOG:  LockAcquire: new: lock(0xb7acd844) id(24688,24696,0,0,0,1) | ||||||
|  |               grantMask(0) req(0,0,0,0,0,0,0)=0 grant(0,0,0,0,0,0,0)=0 | ||||||
|  |               wait(0) type(AccessShareLock) | ||||||
|  |        </para> | ||||||
|  |        <para> | ||||||
|  |         LOG:  GrantLock: lock(0xb7acd844) id(24688,24696,0,0,0,1) | ||||||
|  |               grantMask(2) req(1,0,0,0,0,0,0)=1 grant(1,0,0,0,0,0,0)=1 | ||||||
|  |               wait(0) type(AccessShareLock) | ||||||
|  | 
 | ||||||
|  |        </para> | ||||||
|  |        <para> | ||||||
|  |         LOG:  UnGrantLock: updated: lock(0xb7acd844) id(24688,24696,0,0,0,1) | ||||||
|  |               grantMask(0) req(0,0,0,0,0,0,0)=0 grant(0,0,0,0,0,0,0)=0 | ||||||
|  |               wait(0) type(AccessShareLock) | ||||||
|  |        </para> | ||||||
|  |        <para> | ||||||
|  |         LOG:  CleanUpLock: deleting: lock(0xb7acd844) id(24688,24696,0,0,0,1) | ||||||
|  |               grantMask(0) req(0,0,0,0,0,0,0)=0 grant(0,0,0,0,0,0,0)=0 | ||||||
|  |               wait(0) type(INVALID) | ||||||
|  |        </para> | ||||||
|  |        <para> | ||||||
|  |         Details of the structure being dumped may be found in | ||||||
|  |         src/include/storage/lock.h | ||||||
|  |        </para> | ||||||
|  |        <para> | ||||||
|  |         This parameter is only available if the <symbol>LOCK_DEBUG</symbol> | ||||||
|  |         macro was defined when <productname>PostgreSQL</productname> was | ||||||
|  |         compiled. | ||||||
|  |        </para> | ||||||
|  |       </listitem> | ||||||
|  |      </varlistentry> | ||||||
|  | 
 | ||||||
|  |      <varlistentry> | ||||||
|  |       <term><varname>trace_lwlocks</varname> (<type>boolean</type>)</term> | ||||||
|  |       <indexterm> | ||||||
|  |        <primary><varname>trace_lwlocks</> configuration parameter</primary> | ||||||
|  |       </indexterm> | ||||||
|  |       <listitem> | ||||||
|  |        <para> | ||||||
|  |         If on, emit information about lightweight lock usage.  Lightweight | ||||||
|  |         locks are intended primarily to provide mutual exclusion of access | ||||||
|  |         to shared-memory data structures. | ||||||
|  |        </para> | ||||||
|  |        <para> | ||||||
|  |         This parameter is only available if the <symbol>LOCK_DEBUG</symbol> | ||||||
|  |         macro was defined when <productname>PostgreSQL</productname> was | ||||||
|  |         compiled. | ||||||
|  |        </para> | ||||||
|  |       </listitem> | ||||||
|  |      </varlistentry> | ||||||
|  | 
 | ||||||
|  |      <varlistentry> | ||||||
|  |       <term><varname>trace_userlocks</varname> (<type>boolean</type>)</term> | ||||||
|  |       <indexterm> | ||||||
|  |        <primary><varname>trace_userlocks</> configuration parameter</primary> | ||||||
|  |       </indexterm> | ||||||
|  |       <listitem> | ||||||
|  |        <para> | ||||||
|  |         If on, emit information about user lock usage.  Output is the same | ||||||
|  |         as for <symbol>trace_locks</symbol>, only for user locks. | ||||||
|  |        </para> | ||||||
|  |        <para> | ||||||
|  |         User locks were removed as of PostgreSQL version 8.2.  This option | ||||||
|  |         currently has no effect. | ||||||
|  |        </para> | ||||||
|  |        <para> | ||||||
|  |         This parameter is only available if the <symbol>LOCK_DEBUG</symbol> | ||||||
|  |         macro was defined when <productname>PostgreSQL</productname> was | ||||||
|  |         compiled. | ||||||
|  |        </para> | ||||||
|  |       </listitem> | ||||||
|  |      </varlistentry> | ||||||
|  | 
 | ||||||
|  |      <varlistentry> | ||||||
|  |       <term><varname>trace_lock_oidmin</varname> (<type>integer</type>)</term> | ||||||
|  |       <indexterm> | ||||||
|  |        <primary><varname>trace_lock_oidmin</> configuration parameter</primary> | ||||||
|  |       </indexterm> | ||||||
|  |       <listitem> | ||||||
|  |        <para> | ||||||
|  |         If set, do not trace locks for tables below this OID. (use to avoid | ||||||
|  |         output on system tables) | ||||||
|  |        </para> | ||||||
|  |        <para> | ||||||
|  |         This parameter is only available if the <symbol>LOCK_DEBUG</symbol> | ||||||
|  |         macro was defined when <productname>PostgreSQL</productname> was | ||||||
|  |         compiled. | ||||||
|  |        </para> | ||||||
|  |       </listitem> | ||||||
|  |      </varlistentry> | ||||||
|  | 
 | ||||||
|  |      <varlistentry> | ||||||
|  |       <term><varname>trace_lock_table</varname> (<type>integer</type>)</term> | ||||||
|  |       <indexterm> | ||||||
|  |        <primary><varname>trace_lock_table</> configuration parameter</primary> | ||||||
|  |       </indexterm> | ||||||
|  |       <listitem> | ||||||
|  |        <para> | ||||||
|  |         Unconditionally trace locks on this table (OID). | ||||||
|  |        </para> | ||||||
|  |        <para> | ||||||
|  |         This parameter is only available if the <symbol>LOCK_DEBUG</symbol> | ||||||
|  |         macro was defined when <productname>PostgreSQL</productname> was | ||||||
|  |         compiled. | ||||||
|  |        </para> | ||||||
|  |       </listitem> | ||||||
|  |      </varlistentry> | ||||||
|  | 
 | ||||||
|  |      <varlistentry> | ||||||
|  |       <term><varname>debug_deadlocks</varname> (<type>boolean</type>)</term> | ||||||
|  |       <indexterm> | ||||||
|  |        <primary><varname>debug_deadlocks</> configuration parameter</primary> | ||||||
|  |       </indexterm> | ||||||
|  |       <listitem> | ||||||
|  |        <para> | ||||||
|  |         If set, dumps information about all current locks when a | ||||||
|  |         DeadLockTimeout occurs. | ||||||
|  |        </para> | ||||||
|  |        <para> | ||||||
|  |         This parameter is only available if the <symbol>LOCK_DEBUG</symbol> | ||||||
|  |         macro was defined when <productname>PostgreSQL</productname> was | ||||||
|  |         compiled. | ||||||
|  |        </para> | ||||||
|  |       </listitem> | ||||||
|  |      </varlistentry> | ||||||
|  | 
 | ||||||
|  |      <varlistentry> | ||||||
|  |       <term><varname>log_btree_build_stats</varname> (<type>boolean</type>)</term> | ||||||
|  |       <indexterm> | ||||||
|  |        <primary><varname>log_btree_build_stats</> configuration parameter</primary> | ||||||
|  |       </indexterm> | ||||||
|  |       <listitem> | ||||||
|  |        <para> | ||||||
|  |         If set, logs system resource usage statistics (memory and CPU) on | ||||||
|  |         various btree operations. | ||||||
|  |        </para> | ||||||
|  |        <para> | ||||||
|  |         This parameter is only available if the <symbol>BTREE_BUILD_STATS</symbol> | ||||||
|  |         macro was defined when <productname>PostgreSQL</productname> was | ||||||
|  |         compiled. | ||||||
|        </para> |        </para> | ||||||
|       </listitem> |       </listitem> | ||||||
|      </varlistentry> |      </varlistentry> | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user