Re: Speedup of relation deletes during recovery

Поиск
Список
Период
Сортировка
От Thomas Munro
Тема Re: Speedup of relation deletes during recovery
Дата
Msg-id CAEepm=1+P+9YvU3FULUSzjRa-ZSKKDBgggKTOTQt88GC6F7oWg@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Speedup of relation deletes during recovery  (Andres Freund <andres@anarazel.de>)
Ответы Re: Speedup of relation deletes during recovery  (Thomas Munro <thomas.munro@enterprisedb.com>)
Список pgsql-hackers
On Fri, Jun 22, 2018 at 5:41 AM, Andres Freund <andres@anarazel.de> wrote:
> On 2018-06-21 14:40:58 +0900, Michael Paquier wrote:
>> On Wed, Jun 20, 2018 at 08:43:11PM -0700, Andres Freund wrote:
>> > On 2018-06-18 11:13:47 -0700, Andres Freund wrote:
>> >> We could do that - but add_to_unowned_list() is actually a bottleneck in
>> >> other places during recovery too. We pretty much never (outside of
>> >> dropping relations / databases) close opened relations during recovery -
>> >> which is obviously problematic since nearly all of the entries are
>> >> unowned.  I've come to the conclusion that we should have a global
>> >> variable that just disables adding anything to the global lists.
>> >
>> > On second thought: I think we should your approach in the back branches,
>> > and something like I'm suggesting in master once open.

I think we should take the hint in the comments and make it O(1)
anyway.  See attached draft patch.

+       SMgrRelation *srels = NULL;

There seems to be no reason to initialise the variable to NULL in the
three places where you do that.  It is always assigned a value before
use.

There is probably a way to share a bit more code among those three
places, but that sort of refactoring should be for later.

-- 
Thomas Munro
http://www.enterprisedb.com

Вложения

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

Предыдущее
От: "David G. Johnston"
Дата:
Сообщение: Re: Name of main process differs between servers (postmaster vs postgres)
Следующее
От: Thomas Munro
Дата:
Сообщение: Re: Speedup of relation deletes during recovery