Re: WAL replay bugs
От | Tom Lane |
---|---|
Тема | Re: WAL replay bugs |
Дата | |
Msg-id | 18450.1397756017@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: WAL replay bugs (Heikki Linnakangas <hlinnakangas@vmware.com>) |
Ответы |
Re: WAL replay bugs
|
Список | pgsql-hackers |
Heikki Linnakangas <hlinnakangas@vmware.com> writes: > Two things that are not bugs, but I'd like to change just to make this > tool easier to maintain, and to generally clean things up: > 1. When creating a sequence, we first use simple_heap_insert() to insert > the sequence tuple, which creates a WAL record. Then we write a new > sequence RM WAL record about the same thing. The reason is that the WAL > record written by regular heap_insert is bogus for a sequence tuple. > After replaying just the heap insertion, but not the other record, the > page doesn't have the magic value indicating that it's a sequence, i.e. > it's broken as a sequence page. That's OK because we only do this when > creating a new sequence, so if we crash between those two records, the > whole relation is not visible to anyone. Nevertheless, I'd like to fix > that by using PageAddItem directly to insert the tuple, instead of > simple_heap_insert. We have to override the xmin field of the tuple > anyway, and we don't need any of the other services like finding the > insert location, toasting, visibility map or freespace map updates, that > simple_heap_insert() provides. > 2. _bt_restore_page, when restoring a B-tree page split record. It adds > tuples to the page in reverse order compared to how it's done in master. > There is a comment noting that, and it asks "Is it worth changing just > on general principles?". Yes, I think it is. > Any objections to changing those two? Not here. I've always suspected #2 was going to bite us someday anyway. regards, tom lane
В списке pgsql-hackers по дате отправления: