Обсуждение: BUG #18384: It's not bug just question about documentation

Поиск
Список
Период
Сортировка

BUG #18384: It's not bug just question about documentation

От
PG Bug reporting form
Дата:
The following bug has been logged on the website:

Bug reference:      18384
Logged by:          Jun Kang
Email address:      junhkang91@gmail.com
PostgreSQL version: 16.2
Operating system:   Linux
Description:

I am a big PostgreSQL lover and keep reading documents and implying to
postgresql with bigdata service.

while I am reading
https://www.postgresql.org/docs/16/transaction-id.html
and 
https://www.postgresql.org/docs/16/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND,
i have a question.
"The internal transaction ID type xid is 32 bits wide and wraps around every
4 billion transactions."
"it is necessary to vacuum every table in every database at least once every
two billion transactions."

why Postgresql needs to vacuum in every 2B transactions even though txid
wraps on every 4 billion transactions (double time)?
as the freezing issue, isnt it better to reduce vacuum count?


Re: BUG #18384: It's not bug just question about documentation

От
Tom Lane
Дата:
PG Bug reporting form <noreply@postgresql.org> writes:
> "The internal transaction ID type xid is 32 bits wide and wraps around every
> 4 billion transactions."
> "it is necessary to vacuum every table in every database at least once every
> two billion transactions."

> why Postgresql needs to vacuum in every 2B transactions even though txid
> wraps on every 4 billion transactions (double time)?

Because an XID that's more than 2B transactions in the past will wrap
around and be seen as a bit less than 2B transactions in the future,
causing any rows bearing that XID to become invisible to current
transactions.

            regards, tom lane