Re: Use INT_MAX for wal size related gucs's max value

Поиск
Список
Период
Сортировка
От Junwang Zhao
Тема Re: Use INT_MAX for wal size related gucs's max value
Дата
Msg-id CAEG8a3JBT9gpH1hTJM742cgAKmPPPNrsU5xGsnChKPb8hMXLpg@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Use INT_MAX for wal size related gucs's max value  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
These gucs are always used with ConvertToXSegs, to calculate the count of
wal segments(see the following code snip), and wal_segment_size can be
configured by initdb as a value of a power of 2 between 1 and 1024 (megabytes),
so I think INT_MAX should be safe here.

/*
* Convert values of GUCs measured in megabytes to equiv. segment count.
* Rounds down.
*/
#define ConvertToXSegs(x, segsize) XLogMBVarToSegs((x), (segsize))

/*
* Convert values of GUCs measured in megabytes to equiv. segment count.
* Rounds down.
*/
#define XLogMBVarToSegs(mbvar, wal_segsz_bytes) \
((mbvar) / ((wal_segsz_bytes) / (1024 * 1024)))

On Wed, Apr 19, 2023 at 11:33 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> Junwang Zhao <zhjwpku@gmail.com> writes:
> > The wal size related gucs use the MB unit, so we should just use
> > INT_MAX instead of MAX_KILOBYTES as the max value.
>
> The point of MAX_KILOBYTES is to avoid overflow when the value
> is multiplied by 1kB.  It does seem like that might not be
> appropriate for these values, but that doesn't mean that we can
> blithely go to INT_MAX.  Have you chased down how they are used?
>
>                         regards, tom lane



--
Regards
Junwang Zhao



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Use INT_MAX for wal size related gucs's max value
Следующее
От: Peter Eisentraut
Дата:
Сообщение: Re: [PATCH] Allow Postgres to pick an unused port to listen