On Sun, Feb 2, 2025 at 5:13 PM Dmitry Koterov <dmitry.kote...@gmail.com> wrote:
>
> Trying to monitor perf during the initial tablesync phase (COPY) right after 
> CREATE SUBSCRIPTION. I noticed that the size of 17/main/base/pgsql_tmp on the 
> destination node grows (tens of gigabytes) as the COPY command (running 
> internally on the publisher) progresses. Then in the end (when its "EXPLAIN 
> SELECT 1 FROM tbl" on the destination shows the approximate number of rows 
> equals to the number of rows on the source node) it hangs for several 
> minutes, and then 17/main/base/pgsql_tmp empties, and the subscription 
> progresses.
>
> It seems like if I increase work_mem to several GB, then the growth of 
> 17/main/base/pgsql_tmp becomes less significant.
>
> Questions:
>
> 1. Are there some diagnostics commands that would allow me to figure out what 
> is in those tmp files? Why does the subscriber create those tmp files and not 
> just write directly to the data files and WAL? (The table has 2 bytea 
> columns, i.e. it's TOASTed for sure.)
>

We do write spill files (ending with '.spill') if the changes are
large. Can you please share the name of tmp files to avoid any
assumptions?

-- 
With Regards,
Amit Kapila.


Reply via email to