Обсуждение: max_locks_per_transaction and partitioned tables

Поиск
Список
Период
Сортировка

max_locks_per_transaction and partitioned tables

От
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.

-- 
Michael Holt   |   Manager, Data Services   |   Linkedin Profile

michael@terapeak.com

102-3962 Borden Street, Victoria, B.C., Canada V8P 3H8

 

 

 

Re: max_locks_per_transaction and partitioned tables

От
Tom Lane
Дата:
Michael Holt <MHolt@terapeak.com> writes:
> We've had a system in operation for a few years that makes use of a substantial amount of partitioning. The parent
tablenow 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


Re: max_locks_per_transaction and partitioned tables

От
Michael Holt
Дата:
Thanks Tom. In the original plan a query of this sort was never supposed to happen, but it looks like some coding
issuesmay have allowed it. 


-----Original Message-----
From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
Sent: September-19-12 2:04 PM
To: Michael Holt
Cc: pgsql-admin@postgresql.org
Subject: Re: [ADMIN] max_locks_per_transaction and partitioned tables

Michael Holt <MHolt@terapeak.com> writes:
> We've had a system in operation for a few years that makes use of a substantial amount of partitioning. The parent
tablenow 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
mechanismsfor inheritance aren't really designed to scale past perhaps a hundred child tables. 

            regards, tom lane