Re: Partial index locks

From: Thom Brown <thom(at)linux(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Partial index locks
Date: 2014-03-22 10:45:35
Message-ID: CAA-aLv6OLOxYo4V2FFjOtMecGopFcKJam2Jh-Jy+kphRU9DQJg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 22 March 2014 05:32, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Thom Brown <thom(at)linux(dot)com> writes:
>> Is it necessary for a partial index that doesn't include the row to be
>> involved in locking?
>
> Yes. You can't determine whether the index needs to get a new entry
> without examining its metadata, and that's what the lock is mainly about.

I see. Why does this apply to deletes too?

> The only possible alternative would be to take the minimum possible
> lock (AccessShareLock) on each index so its metadata would hold still,
> and then upgrade that to RowExclusiveLock on the one(s) we find need
> insertions. This is not better; it means *more* lock management traffic
> not less, and lock upgrades increase the potential for deadlocks.

Yes, I can see that wouldn't be an improvement.
--
Thom

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrzej Mazurkiewicz 2014-03-22 10:51:04 Re: Inheritance of foregn key constraints.
Previous Message Martijn van Oosterhout 2014-03-22 09:21:06 Re: [RFC] What should we do for reliable WAL archiving?