Re: Vacuum Full does not release the disk size space after delete from table

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Haozhou Wang <hawang(at)pivotal(dot)io>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Vacuum Full does not release the disk size space after delete from table
Date: 2018-11-02 14:35:12
Message-ID: 17999.1541169312@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Haozhou Wang <hawang(at)pivotal(dot)io> writes:
> We meet a corner case that related to the behavior of Vacuum Full.
> ...
> If we run both sql scripts on same database in parallel, the "VACUUM FULL
> a;" will not release the disk space.

I think what's happening is that the delete in script 1 happens after the
"pg_sleep" in script 2 starts. Then the pg_sleep has an open snapshot
that could potentially see the deleted rows, so they can't be removed yet.

You could check this theory by changing the vacuum to use VERBOSE, and
seeing what it says about rows that can't be removed yet.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2018-11-02 14:38:45 Re: WIP: Avoid creation of the free space map for small tables
Previous Message Robert Haas 2018-11-02 14:34:04 Re: Hash Joins vs. Bloom Filters / take 2