Re: GIN data corruption bug(s) in 9.6devel
От | Teodor Sigaev |
---|---|
Тема | Re: GIN data corruption bug(s) in 9.6devel |
Дата | |
Msg-id | 571FA3BB.8000508@sigaev.ru обсуждение исходный текст |
Ответ на | Re: GIN data corruption bug(s) in 9.6devel (Jeff Janes <jeff.janes@gmail.com>) |
Ответы |
Re: GIN data corruption bug(s) in 9.6devel
|
Список | pgsql-hackers |
>> Check my reasoning: In version 4 I added a remebering of tail of pending >> list into blknoFinish variable. And when we read page which was a tail on >> cleanup start then we sets cleanupFinish variable and after cleaning that >> page we will stop further cleanup. Any insert caused during cleanup will be >> placed after blknoFinish (corner case: in that page), so, vacuum should not >> miss tuples marked as deleted. > > Yes, I agree with the correctness of v4. But I do wonder if we should > use that early stopping for vacuum and gin_clean_pending_list, rather Interesting, I've missed this possible option > than just using it for user backends. While I think correctness > allows it to stop early, since these routines are explicitly about > cleaning things up it seems like they should volunteer to clean the > whole thing. I believe that autovacuum should not require guaranteed full clean up, only vacuum and gin_clean_pending_list() should do that. In all other cases it should stop early to prevent possible infinite cleanup. Patch attached. -- Teodor Sigaev E-mail: teodor@sigaev.ru WWW: http://www.sigaev.ru/
Вложения
В списке pgsql-hackers по дате отправления: