Re: INSERT...ON DUPLICATE KEY LOCK FOR UPDATE
От | Peter Geoghegan |
---|---|
Тема | Re: INSERT...ON DUPLICATE KEY LOCK FOR UPDATE |
Дата | |
Msg-id | CAM3SWZS3c511sH-Net5Gs8i+2i-ehxV63dYe-ax4tN68U9B8Hg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: INSERT...ON DUPLICATE KEY LOCK FOR UPDATE (Heikki Linnakangas <hlinnakangas@vmware.com>) |
Ответы |
Re: INSERT...ON DUPLICATE KEY LOCK FOR UPDATE
|
Список | pgsql-hackers |
On Tue, Dec 31, 2013 at 12:52 AM, Heikki Linnakangas <hlinnakangas@vmware.com> wrote: > 1. PromiseTupleInsertionLockAcquire(<my xid>) > 2. Insert heap tuple > 3. Insert index tuples > 4. Check if conflict happened. Kill the already-inserted tuple on conflict. > 5. PromiseTupleInsertionLockRelease(<my xid>) > > IOW, the only change to the current patch is that you acquire the new kind > of lock before starting the insertion, and you release it after you've > killed the tuple, or you know you're not going to kill it. Where does row locking fit in there? - you may need to retry when that part is incorporated, of course. What if you have multiple promise tuples from a contended attempt to insert a single slot, or multiple broken promise tuples across multiple slots or even multiple commands in the same xact? -- Peter Geoghegan
В списке pgsql-hackers по дате отправления: