Serializable isolation -- are predicate locks still held across all databases?

From: "Karl O(dot) Pinc" <kop(at)meme(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Serializable isolation -- are predicate locks still held across all databases?
Date: 2017-05-18 16:07:12
Message-ID: 20170518110712.31caaf3b@slate.meme.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,

I forget all the details, but some time ago I found
that I had to increase max_pred_locs_per_transaction.
What I recall about the reason for this is that I'm
using the serializable transaction isolation, and that
I've a test database which occasionally has extremely
long running transactions. The PG serializable
snapshot isolation implementation at the time (9.1?)
was holding predicate locks across all databases
during transactions. This even though databases
are independent of each other. The long transaction
times in the test database lead to predicate lock
exhaustion in production databases -- only a single
transaction would be executing in the test database
but many would occur in the production databases.
(I don't know if there was potential for other bad effects
due to the production transactions "hanging around" until the
transaction in the test db finished.)

My question is whether this has changed. Does PG
now pay attention to database in it's SSI implementation?

Thanks for the help and apologies if I'm not framing
the question perfectly. It's not often I think about
this.

Regards,

Karl <kop(at)meme(dot)com>
Free Software: "You don't pay back, you pay forward."
-- Robert A. Heinlein

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Kevin Grittner 2017-05-18 17:04:42 Re: Serializable isolation -- are predicate locks still held across all databases?
Previous Message Martin Goodson 2017-05-18 15:49:39 Re: EnterpriseDB installed PostgreSQL 9.6 vs. REPMGR. Round 4 - compilation issues on RHEL 7.2