Subject: Regarding vacuum freeze locking mechanism

From: Durgamahesh Manne <[email-masked]>
Date: Thu, 18 Jul 2024 10:57:10 +0530

Hi

Do new inserts block while performing vacuum freeze operations ?

when autovacuum runs , it will freeze the transaction ID (TXID) of the
table it's working on. This means that any transactions that started before
autovacuum began will be allowed to complete.but new transactions will be
blocked until the autovacuum finishes.

Could you please provide more clarity on this? Which lock triggers on the
tables are being used by freeze?

Your response is highly appreciated

Regards,
Durga Mahesh

---

From: Kashif Zeeshan <[email-masked]>
Date: Thu, 18 Jul 2024 10:28:03 +0500

Hi

> Do new inserts block while performing vacuum freeze operations ?
Generally, VACUUM FREEZE does not block inserts as PG uses Multi-Version
Concurrency Control (MVCC) which allows multiple transactions to operate on
the same table without interfering with each other.

---

From: "David G. Johnston" <[email-masked]>
Date: Wed, 17 Jul 2024 22:53:21 -0700

On Wednesday, July 17, 2024, Durgamahesh Manne <[email-masked]>
wrote:

> table it's working on.

This statement is incorrect.  A table as a whole does not have a txid.
Freezing makes it so individual tuples get assigned an always-in-the-past
txid.  Then, the table can recompute how far away its furthest back txid is
from being considered in-the-future.  That gap should increase since the
furthest away txids were the ones being frozen.

Inserts might get delayed a brief moment if it just happens the page they
want to insert onto is presently being worked on.  But the odds there seem
low.

David J.