Re: Speedup of relation deletes during recovery
От | Kyotaro HORIGUCHI |
---|---|
Тема | Re: Speedup of relation deletes during recovery |
Дата | |
Msg-id | 20180330.111958.152181145.horiguchi.kyotaro@lab.ntt.co.jp обсуждение исходный текст |
Ответ на | Speedup of relation deletes during recovery (Fujii Masao <masao.fujii@gmail.com>) |
Ответы |
Re: Speedup of relation deletes during recovery
|
Список | pgsql-hackers |
Hello. At Fri, 30 Mar 2018 08:31:29 +0900, Fujii Masao <masao.fujii@gmail.com> wrote in <CAHGQGwHVQkdfDqtvGVkty+19cQakAydXn1etGND3X0PHbZ3+6w@mail.gmail.com> > Hi, > > When multiple relations are deleted at the same transaction, > the files of those relations are deleted by one call to smgrdounlinkall(), > which leads to scan whole shared_buffers only one time. OTOH, > during recovery, smgrdounlink() (not smgrdounlinkall()) is called > for each file to delete, which leads to scan shared_buffers multiple times. > Obviously this can cause to increase the WAL replay time very much > especially when shared_buffers is huge. > > To alleviate this situation, I'd like to propose to change the recovery > so that it also calls smgrdounlinkall() only one time to delete multiple > relation files. Patch attached. Thought? It is obviously a left-over of 279628a0a7. This patch applies the same change with the patch and looks fine for me. Note that FinishPreparedTransaction has the same loop over smgrdounlink. regards, -- Kyotaro Horiguchi NTT Open Source Software Center
В списке pgsql-hackers по дате отправления: