Re: SLRU statistics

From: Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com>
To: Fujii Masao <masao(dot)fujii(at)oss(dot)nttdata(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, Masahiko Sawada <masahiko(dot)sawada(at)2ndquadrant(dot)com>, "tsunakawa(dot)takay(at)fujitsu(dot)com" <tsunakawa(dot)takay(at)fujitsu(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: SLRU statistics
Date: 2020-05-13 15:28:46
Message-ID: 20200513152846.goee2c5xrly52ga2@development
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, May 13, 2020 at 11:46:30PM +0900, Fujii Masao wrote:
>
>
>On 2020/05/13 23:26, Tom Lane wrote:
>>Fujii Masao <masao(dot)fujii(at)oss(dot)nttdata(dot)com> writes:
>>>On 2020/05/13 17:21, Tomas Vondra wrote:
>>>>On Wed, May 13, 2020 at 04:10:30PM +0900, Fujii Masao wrote:
>>>>>Also I found another minor issue; SLRUStats has not been initialized to 0
>>>>>and which could update the counters unexpectedly. Attached patch fixes
>>>>>this issue.
>>
>>>Pushed both. Thanks!
>>
>>Why is that necessary? A static variable is defined by C to start off
>>as zeroes.
>
>Because SLRUStats is not a static variable. No?
>

I think it counts as a variable with "static storage duration" per 6.7.8
(para 10), see [1]. I wasn't aware of this either, but it probably means
the memset is unnecessary.

Also, it seems a bit strange/confusing to handle this differently from
BgWriterStats. And that worked fine without the init for years ...

[1] http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf

--
Tomas Vondra http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Jehan-Guillaume de Rorthais 2020-05-13 15:29:18 Re: Is it possible to find out write_lsn on standby?
Previous Message Alvaro Herrera 2020-05-13 15:28:40 Re: Do I understand commit timestamps correctly?