From: | Dimitrios Apostolou <jimis(at)gmx(dot)net> |
---|---|
To: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: [PATCH v2] parallel pg_restore: move offset-building phase to before forking |
Date: | 2025-06-16 01:47:57 |
Message-ID: | 16ec80a6-ad6a-c628-ff62-55bba35c4cd0@gmx.net |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Rebased and attached v3, which fixes compilation on mingw32.
On Tue, 10 Jun 2025, Dimitrios Apostolou wrote:
> Rebased and attached new patch. Should I add it to July's commitfest?
>
>
> On Fri, 4 Apr 2025, Dimitrios Apostolou wrote:
>
>> Hello list,
>>
>> based on the delays I experienced in pg_restore, as described at:
>>
>> https://www.postgresql.org/message-id/flat/6bd16bdb-aa5e-0512-739d-b84100596035(at)gmx(dot)net
>>
>> I noticed that the seeking-reading behaviour was manifested by every one
>> of the pg_restore worker processes, in parallel, making the situation even
>> worse. With this patch I moved this phase to the parent process before
>> fork(), so that the children have the necessary information from birth.
>>
>> Copying the commit message:
>>
>> A pg_dump custom format archive without offsets in the table of
>> contents, is usually generated when pg_dump writes to stdout instead of
>> a file. When doing parallel pg_restore (-j) from such a file, every
>> worker process was scanning the full archive sequentially, in order to
>> build the offset table and find the parts assigned to restore. This led
>> to the worker processes competing for I/O.
>>
>> This patch moves this offset-table building phase to the parent process,
>> before forking the worker processes.
>>
>> The upside is that we now have only one extra scan of the file.
>> And this scan happens without other competing I/O, so it completes
>> faster.
>>
>> The downside is that there is a delay before spawning the children and
>> starting assigning jobs to them.
>>
>>
>> What do you think?
>>
>> Thanks,
>> Dimitris
>>
>
Attachment | Content-Type | Size |
---|---|---|
v3-0001-parallel-pg_restore-move-offset-building-phase-to.patch | text/x-patch | 5.8 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Alexander Korotkov | 2025-06-16 01:58:51 | Re: Slot's restart_lsn may point to removed WAL segment after hard restart unexpectedly |
Previous Message | Dimitrios Apostolou | 2025-06-16 01:09:10 | Re: [WIP PATCH v3] Implement "pg_restore --data-only --clean" as a way to skip WAL |