Discussion:
max_locks_per_transaction and partitioned tables
(too old to reply)
Michael Holt
2012-09-19 18:28:16 UTC
Permalink
We've had a system in operation for a few years that makes use of a substantial amount of partitioning. The parent table now has over 4,000 children tables. Within the last couple of days the server started giving "out of shared memory" errors with the suggestion to increase the max_locks_per_transaction.

If the parent table is queried will it require a lock for each one of the child tables? I'm guessing it will.
--
Michael Holt | Manager, Data Services | Linkedin Profile<http://ca.linkedin.com/pub/michael-holt/48/a21/5ab>


***@terapeak.com<mailto:***@terapeak.com>

102-3962 Borden Street, Victoria, B.C., Canada V8P 3H8
Tom Lane
2012-09-19 21:03:39 UTC
Permalink
Post by Michael Holt
We've had a system in operation for a few years that makes use of a substantial amount of partitioning. The parent table now has over 4,000 children tables. Within the last couple of days the server started giving "out of shared memory" errors with the suggestion to increase the max_locks_per_transaction.
If the parent table is queried will it require a lock for each one of the child tables? I'm guessing it will.
Yup, it will. I'm a bit astonished that you've gotten this far without
horrid performance problems. The underlying mechanisms for inheritance
aren't really designed to scale past perhaps a hundred child tables.

regards, tom lane
--
Sent via pgsql-admin mailing list (pgsql-***@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin
Michael Holt
2012-09-19 21:17:45 UTC
Permalink
Thanks Tom. In the original plan a query of this sort was never supposed to happen, but it looks like some coding issues may have allowed it.


-----Original Message-----
From: Tom Lane [mailto:***@sss.pgh.pa.us]
Sent: September-19-12 2:04 PM
To: Michael Holt
Cc: pgsql-***@postgresql.org
Subject: Re: [ADMIN] max_locks_per_transaction and partitioned tables
Post by Michael Holt
We've had a system in operation for a few years that makes use of a substantial amount of partitioning. The parent table now has over 4,000 children tables. Within the last couple of days the server started giving "out of shared memory" errors with the suggestion to increase the max_locks_per_transaction.
If the parent table is queried will it require a lock for each one of the child tables? I'm guessing it will.
Yup, it will. I'm a bit astonished that you've gotten this far without horrid performance problems. The underlying mechanisms for inheritance aren't really designed to scale past perhaps a hundred child tables.

regards, tom lane
--
Sent via pgsql-admin mailing list (pgsql-***@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin
Continue reading on narkive:
Loading...