Re: Misuse of TimestampDifference() in the autoprewarm feature of pg_prewarm - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Misuse of TimestampDifference() in the autoprewarm feature of pg_prewarm
Date
Msg-id 1996862.1604953516@sss.pgh.pa.us
Whole thread Raw
In response to Re: Misuse of TimestampDifference() in the autoprewarm feature of pg_prewarm  (Alexey Kondratov <a.kondratov@postgrespro.ru>)
Responses Re: Misuse of TimestampDifference() in the autoprewarm feature of pg_prewarm  (Alexey Kondratov <a.kondratov@postgrespro.ru>)
List pgsql-hackers
Alexey Kondratov <a.kondratov@postgrespro.ru> writes:
> On 2020-11-09 21:53, Tom Lane wrote:
>> 0002 seems like a pretty clear bug fix, though I wonder if this is exactly
>> what we want to do going forward.  It seems like a very large fraction of
>> the callers of TimestampDifference would like to have the value in msec,
>> which means we're doing a whole lot of expensive and error-prone
>> arithmetic to break down the difference to sec/usec and then put it
>> back together again.  Let's get rid of that by inventing, say
>> TimestampDifferenceMilliseconds(...).

> Yeah, I get into this problem after a bug in another extension — 
> pg_wait_sampling. I have attached 0002, which implements 
> TimestampDifferenceMilliseconds(), so 0003 just uses this new function 
> to solve the initial issues. If it looks good to you, then we can switch 
> all similar callers to it.

Yeah, let's move forward with that --- in fact, I'm inclined to
back-patch it.  (Not till the current release cycle is done, though.
I don't find this important enough to justify a last-moment patch.)

BTW, I wonder if we shouldn't make TimestampDifferenceMilliseconds
round any fractional millisecond up rather than down.  Rounding down
seems to create a hazard of uselessly waking just before the delay is
completed.  Better to wake just after.

I still think your 0001 is fishy, but don't have time today to stare at
it more closely.

            regards, tom lane



pgsql-hackers by date:

Previous
From: Alexey Kondratov
Date:
Subject: Re: Misuse of TimestampDifference() in the autoprewarm feature of pg_prewarm
Next
From: Fabien COELHO
Date:
Subject: Re: Useless string ouput in error message