Re: beta1 & beta2 & Windows & heavy load

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: beta1 & beta2 & Windows & heavy load
Дата
Msg-id 24301.1095029846@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: beta1 & beta2 & Windows & heavy load  (Bruce Momjian <pgman@candle.pha.pa.us>)
Ответы Re: beta1 & beta2 & Windows & heavy load  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Bruce Momjian <pgman@candle.pha.pa.us> writes:
>> Well, yes, it has to take a lock on the subtransaction XID, which will
>> be held until main transaction commit.  I'm not sure we have much of a
>> choice about this --- although it does seem annoying to have a
>> shared-memory-size constraint on how many subtransactions you can have.

> You mean 64 (the number of object locks)?

No, max_locks_per_transaction * max_connections.  In practice it seems
to get unhappy at about 10000 locks given default shared-memory sizing.
This is because we leave some overhead slop that the locks table can
expand into before failing altogether.

> Can you clarify why the
> subtransaction is locked in this case and not others?

It's locked in all cases.  A *failed* subtransaction will release its
lock, but a non-failed one will hold the lock till main commit.

We could revert to Alvaro's initial design in which subxacts didn't take
out separate locks on their XIDs; this would make XactLockTableWait a
lot slower though, and probably subject to unwanted deadlocks.  You
really want to release waiters for a subxact as soon as the subxact
fails, rather than making them wait around for the parent.

Right now I'm not seeing a cure that's not worse than the disease.
        regards, tom lane


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: pgindent vs try/catch
Следующее
От: Tom Lane
Дата:
Сообщение: Re: beta1 & beta2 & Windows & heavy load