Re: GIN fast insert
От | Teodor Sigaev |
---|---|
Тема | Re: GIN fast insert |
Дата | |
Msg-id | 49C8FEA9.7090506@sigaev.ru обсуждение исходный текст |
Ответ на | Re: GIN fast insert (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: GIN fast insert
|
Список | pgsql-hackers |
> ginInsertCleanup(); is it accurate? (If it isn't, I think Exactly, that is right. > > > * This can be called concurrently by multiple backends, so it must cope. > * On first glance it looks completely not concurrent-safe and not crash-safe > * either. The reason it's okay is that multiple insertion of the same entry > * is detected and treated as a no-op by gininsert.c. If we crash after > * posting entries to the main index and before removing them from the > * pending list, it's okay because when we redo the posting later on, nothing > * bad will happen. Likewise, if two backends simultaneously try to post > * a pending entry into the main index, one will succeed and one will do > * nothing. We try to notice when someone else is a little bit ahead of > * us in the process, but that's just to avoid wasting cycles. Only the > * action of removing a page from the pending list really needs exclusive > * lock. > > > regards, tom lane > -- Teodor Sigaev E-mail: teodor@sigaev.ru WWW: http://www.sigaev.ru/
В списке pgsql-hackers по дате отправления: