Re: Promise index tuples for UPSERT
От | Peter Geoghegan |
---|---|
Тема | Re: Promise index tuples for UPSERT |
Дата | |
Msg-id | CAM3SWZRxdnjVMpjQW7Amomo-85Ewi_s-gsKMaBZLdOnZ+LwTBQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Promise index tuples for UPSERT (Peter Geoghegan <pg@heroku.com>) |
Список | pgsql-hackers |
On Wed, Oct 1, 2014 at 12:59 PM, Peter Geoghegan <pg@heroku.com> wrote: > On Wed, Oct 1, 2014 at 12:54 PM, Heikki Linnakangas > <hlinnakangas@vmware.com> wrote: >> XactLockTableWait() waits until the end of transaction, that's not you want >> here. If the backend that inserted the promise tuple decides to not proceed >> with the insertion, and removes the promise tuple, the backend waiting on it >> needs to be woken up more or less immediately, not when the transaction >> completes. > > Simon has not been inconsistent here: he has said that deadlocks may > be possible. I happen to think that allowing them would be a major > mistake on our part, but that's another story. Don't forget that not waiting on XactLockTableWait(), but rather waiting on a "speculative insertion token" wasn't just the thing that made your prototype not deadlock - it was also the thing that made its performance more or less comparable to that of my original value locking design. Your prototype performed only a fraction as well as my design before that last revision. So that's two *excellent* reasons to not use XactLockTableWait() here. -- Peter Geoghegan
В списке pgsql-hackers по дате отправления: