Re: LOCK for non-tables

Поиск
Список
Период
Сортировка
От Robert Haas
Тема Re: LOCK for non-tables
Дата
Msg-id AANLkTi=4Yz66cKnQ+dpcgR9QwTqrQ_ZTwUBS_QDtQiWO@mail.gmail.com
обсуждение исходный текст
Ответ на Re: LOCK for non-tables  (Florian Pflug <fgp@phlo.org>)
Ответы Re: LOCK for non-tables  (Tatsuo Ishii <ishii@postgresql.org>)
Список pgsql-hackers
On Fri, Jan 7, 2011 at 6:28 PM, Florian Pflug <fgp@phlo.org> wrote:
> I forgot about sequences earlier. If we dump while someone deletes all
> rows and resets the sequence the dump might contain rows and still
> reset the sequence. This could cause duplicate key errors on restore.
> I haven't checked if this is really possible though - I guess it would
> depend on the exact order of these events...

To fix this, you'd need a lock that allowed getting values from the
sequence but prevented resetting it, and...

> I wonder how such locks would work. Would such locks prevent accessing
> these objects? Or just modifications? For example, if I locked a function,
> could someone else execute it while I held the lock?

...in fact we do very little locking of objects other than tables.
DROP takes an AccessExclusiveLock on whatever it's dropping, and
COMMENT and SECURITY LABEL take ShareUpdateExclusiveLocks to avoid
orphaning pg_{sh,}description or pg_seclabel entries in the face of a
concurrent drop, but most operations on non-table objects don't AFAIK
take any lock at all.  We probably don't want to make too many changes
in this area, because there are already workloads where the
heavyweight lock manager can become a bottleneck, and one can easily
imagine that locking operators or namespaces could make that problem
much worse.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: More pg_upgrade clarifications
Следующее
От: Joel Jacobson
Дата:
Сообщение: Re: obj_unique_identifier(oid)