From: | David Rowley <dgrowleyml(at)gmail(dot)com> |
---|---|
To: | Ahmed Yarub Hani Al Nuaimi <ahmedyarubhani(at)gmail(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>, Robert Haas <robertmhaas(at)gmail(dot)com>, Tomas Vondra <tomas(dot)vondra(at)enterprisedb(dot)com> |
Subject: | Re: Lock-free compaction. Why not? |
Date: | 2024-07-21 01:52:24 |
Message-ID: | CAApHDvpuuHhrY8+5m4K6nXyTarEVaD44kRJg3tZ4XpMawqfijA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Sun, 21 Jul 2024 at 04:00, Ahmed Yarub Hani Al Nuaimi
<ahmedyarubhani(at)gmail(dot)com> wrote:
> 2- Can you point me to a resource explaining why this might lead to index bloating?
No resource links, but if you move a tuple to another page then you
must also adjust the index. If you have no exclusive lock on the
table, then you must assume older transactions still need the old
tuple version, so you need to create another index entry rather than
re-pointing the existing index entry's ctid to the new tuple version.
It's not hard to imagine that would cause the index to become larger
if you had to move some decent portion of the tuples to other pages.
FWIW, I think it would be good if we had some easier way to compact
tables without blocking concurrent users. My primary interest in TID
Range Scans was to allow easier identification of tuples near the end
of the heap that could be manually UPDATEd after a vacuum to allow the
heap to be shrunk during the next vacuum.
David
From | Date | Subject | |
---|---|---|---|
Next Message | Nathan Bossart | 2024-07-21 02:03:07 | Re: pg_upgrade and logical replication |
Previous Message | David Rowley | 2024-07-21 01:43:35 | Re: Add mention of execution time memory for enable_partitionwise_* GUCs |