| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | rihad <rihad(at)mail(dot)ru> |
| Cc: | pgsql-general General <pgsql-general(at)postgresql(dot)org> |
| Subject: | Re: When do vacuumed pages/tuples become available for reuse? |
| Date: | 2019-04-11 13:48:06 |
| Message-ID: | 8560.1554990486@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
rihad <rihad(at)mail(dot)ru> writes:
> If an autovacuum job on a huge table runs for 5-6 hours, do its freed
> pages/tuples become available for reuse immediately when they are marked
> as free, or only at the end of the multi-hour vacuum operation?
They'll be freed in batches, where the size of a batch depends on the
autovacuum_work_mem or maintenance_work_mem setting. The basic
work cycle is
* scan table to find dead tuples, save their TIDs in working memory;
continue until end of table or working memory full
* scan indexes to find index entries matching those TIDs, remove 'em
* go back to table and remove the previously-found tuples
* if not end of table, repeat
So a larger work-mem setting means fewer passes over the indexes,
but a longer time until space is reclaimed.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | rihad | 2019-04-11 14:01:23 | Re: When do vacuumed pages/tuples become available for reuse? |
| Previous Message | Олег Самойлов | 2019-04-11 11:05:27 | Re: shared_buffers on Big RAM systems |