[DOCS] Comment on max_locks_per_transaction

2012-06-15 Thread Josh Berkus
Folks,

Way it is now:

===

max_locks_per_transaction (integer)

The shared lock table tracks locks on max_locks_per_transaction *
(max_connections + max_prepared_transactions) objects (e.g., tables);
hence, no more than this many distinct objects can be locked at any one
time. This parameter controls the average number of object locks
allocated for each transaction; individual transactions can lock more
objects as long as the locks of all transactions fit in the lock table.
This is not the number of rows that can be locked; that value is
unlimited. The default, 64, has historically proven sufficient, but you
might need to raise this value if you have clients that touch many
different tables in a single transaction. This parameter can only be set
at server start.

Increasing this parameter might cause PostgreSQL to request more
System V shared memory than your operating system's default
configuration allows. See Section 17.4.1 for information on how to
adjust those parameters, if necessary.

When running a standby server, you must set this parameter to the
same or higher value than on the master server. Otherwise, queries will
not be allowed in the standby server.



The way it should be:

max_locks_per_transaction (integer)

The shared lock table tracks locks on max_locks_per_transaction *
(max_connections + max_prepared_transactions) objects (e.g., tables);
hence, no more than this many distinct objects can be locked at any one
time. This parameter controls the average number of object locks
allocated for each transaction; individual transactions can lock more
objects as long as the locks of all transactions fit in the lock table.
This is not the number of rows that can be locked; that value is
unlimited. This parameter can only be set at server start.

The default, 64, has historically proven sufficient for most databases,
but you might need to raise this value if you have clients that touch
many different tables in a single transaction.  Databases with several
tables with many partitions each can require raising this setting.  The
PostgreSQL activity log will contain a fairly clear error message
suggesting raising max_locks_per_transaction if needed.

Increasing this parameter might cause PostgreSQL to request more
System V shared memory than your operating system's default
configuration allows. See Section 17.4.1 for information on how to
adjust those parameters, if necessary.

When running a standby server, you must set this parameter to the
same or higher value than on the master server. Otherwise, queries will
not be allowed in the standby server.


-- 
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com

-- 
Sent via pgsql-docs mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-docs


Re: [DOCS] Comment on max_locks_per_transaction

2012-06-15 Thread Jeff Davis
On Fri, 2012-06-15 at 11:05 -0700, Josh Berkus wrote:
> The default, 64, has historically proven sufficient for most databases,
> but you might need to raise this value if you have clients that touch
> many different tables in a single transaction.  Databases with several
> tables with many partitions each can require raising this setting.

Is "partition" defined somewhere else in the docs?

Maybe it should say something like: "Extensive use of table inheritance
is the most common reason to increase this value from the default",
assuming that's what you meant.

Regards,
Jeff Davis


-- 
Sent via pgsql-docs mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-docs


Re: [DOCS] Comment on max_locks_per_transaction

2012-06-15 Thread Josh Berkus
On 6/15/12 12:25 PM, Jeff Davis wrote:
> On Fri, 2012-06-15 at 11:05 -0700, Josh Berkus wrote:
>> The default, 64, has historically proven sufficient for most databases,
>> but you might need to raise this value if you have clients that touch
>> many different tables in a single transaction.  Databases with several
>> tables with many partitions each can require raising this setting.
> 
> Is "partition" defined somewhere else in the docs?
> 
> Maybe it should say something like: "Extensive use of table inheritance
> is the most common reason to increase this value from the default",
> assuming that's what you meant.

Hmmm.  I think we should also say "partitioning", as well as
"inheritance".  Maybe:

"Extensive use of table inheritance, such as for tables with many
partitions, may require raising this setting."

Works?

-- 
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com

-- 
Sent via pgsql-docs mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-docs


Re: [DOCS] Comment on max_locks_per_transaction

2012-06-15 Thread Jeff Davis
On Fri, 2012-06-15 at 12:37 -0700, Josh Berkus wrote:
> Hmmm.  I think we should also say "partitioning", as well as
> "inheritance".  Maybe:
> 
> "Extensive use of table inheritance, such as for tables with many
> partitions, may require raising this setting."

http://www.postgresql.org/docs/9.2/static/ddl-partitioning.html#DDL-PARTITIONING-CONSTRAINT-EXCLUSION

Looks like we do define it, so that's fine with me.

Regards,
Jeff Davis


-- 
Sent via pgsql-docs mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-docs