Re: [BUGS] Bug #613: Sequence values fall back to previously chec

Поиск
Список
Период
Сортировка
От Mikheev, Vadim
Тема Re: [BUGS] Bug #613: Sequence values fall back to previously chec
Дата
Msg-id 3705826352029646A3E91C53F7189E325184D6@sectorbase2.sectorbase.com
обсуждение исходный текст
Список pgsql-hackers
> > It seems safe to do NOT write WAL record if sequence
> > LSN > system RedoRecPtr because of checkpoint started after our
> > check would finish only after writing to disk sequence buffer with
> > proper last_value and log_cnt (nextval keeps lock on 
> > sequence buffer).
> 
> Mmm ... maybe.  Is this safe if a checkpoint is currently in
> progress? Seems like you could look at RedoRecPtr and decide
> you are okay, but you really are not if checkpointer has already
> dumped sequence' disk buffer and will later set RedoRecPtr to a
> value beyond the old LSN.

CheckPointer updates system RedoRecPtr before doing anything else.
System RedoRecPtr was introduced to force data buffers backup
by future XLogInsert-s once CheckPointer started and it *must* be
updated *before* buffer flushing.

> In that case you should have emitted a WAL record ... but you didn't.
> 
> Considering that we've found two separate bugs in this stuff
> in the past week, I think that we ought to move in the direction
> of making it simpler and more reliable, not even-more-complicated.

Isn't it too late, considering we have fixes for both bugs already? -:)
(And it's not very-more-complicated - just simple check.)

> Is it really worth all this trouble to avoid making a WAL record
> for each nextval() call?

It's doable... why not do this?
(Though I have no strong objection.)

Vadim


В списке pgsql-hackers по дате отправления:

Предыдущее
От: mlw
Дата:
Сообщение: Re: Transaction on start of session ?
Следующее
От: Greg Copeland
Дата:
Сообщение: Bitmap indexes?