Re: Unlogged tables cleanup

Поиск
Список
Период
Сортировка
От Robert Haas
Тема Re: Unlogged tables cleanup
Дата
Msg-id CA+TgmobVUc5hWmaBiZR9m-hE2QvnWKt6b7qy0v5cng19XB2K_w@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Unlogged tables cleanup  (Michael Paquier <michael.paquier@gmail.com>)
Ответы Re: [HACKERS] Unlogged tables cleanup  (Michael Paquier <michael.paquier@gmail.com>)
Список pgsql-hackers
On Wed, Dec 7, 2016 at 11:20 PM, Michael Paquier
<michael.paquier@gmail.com> wrote:
> OK, I rewrote a bit the patch as attached. What do you think?

Committed and back-patched all the way back to 9.2.

>> Right (I think).  If we set and clear delayChkpt around this work, we
>> don't need the immediate sync.
>
> My point is a bit different than what you mean I think: the
> transaction creating an unlogged relfilenode would not need to even
> set delayChkpt in the empty() routines because other transactions
> would not refer to it until this transaction has committed. So I am
> arguing about just removing the sync phase.

That doesn't sound right; see the comment for heap_create_init_fork.
Suppose the transaction creating the unlogged table commits, a
checkpoint happens, and then the operating system crashes.  Without
the immediate sync, the operating system crash can cause the un-sync'd
file to crash, and because of the checkpoint the WAL record that
creates it isn't replayed either.  So the file's just gone.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



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

Предыдущее
От: Josh Berkus
Дата:
Сообщение: Re: Proposal for changes to recovery.conf API
Следующее
От: Robert Haas
Дата:
Сообщение: Re: [COMMITTERS] pgsql: Implement table partitioning.