Re: Lock conflict behavior?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Tatsuo Ishii <ishii(at)postgresql(dot)org>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Lock conflict behavior?
Date: 2008-12-22 13:12:18
Message-ID: 6798.1229951538@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Tatsuo Ishii <ishii(at)postgresql(dot)org> writes:
> I'm wondering if following behavior of PostgreSQL regarding lock
> conflict is an expected one. Here's a scenario:

> Session A:
> BEGIN;
> SELECT * FROM pg_class limit 1; -- acquires access share lock

> Session B:
> BEGIN;
> ALTER TABLE pg_class ....; -- waits for acquiring access
> exclusive lock(wil fail anyway though)
> Session C:
> SELECT * FROM pg_class...; -- whatever query which needs
> to acces pg_class will be
> blocked, too bad...

> I understand that B should wait for aquiring lock, but Should C wait
> for?

If we didn't do this, then a would-be acquirer of exclusive lock would
have a very serious problem with lock starvation: it might wait forever
in the face of a continuous stream of access-share lock requests.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bernd Helmle 2008-12-22 13:53:19 Re: WIP: Automatic view update rules
Previous Message Andrew Gierth 2008-12-22 12:21:01 Re: a small proposal for avoiding foot-shooting