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
|
Список | 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 по дате отправления: