Re: pgbench logging broken by time logic changes
Fabien COELHO <coelho@cri.ensmp.fr>
From: Fabien COELHO <coelho@cri.ensmp.fr>
To: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Cc: nagata@sraoss.co.jp, gregsmithpgsql@gmail.com,
pgsql-hackers@postgresql.org, david.christensen@crunchydata.com
Date: 2021-06-17T07:15:37Z
Lists: pgsql-hackers
Attachments
- pgbench-epoch-4.patch (text/x-diff) patch
Hello, >>> I cannot say that I'm thrilled by having multiple tv stuff back in several >>> place. I can be okay with one, though. What about the attached? Does it >>> make sense? > > +1 The patch rounds down sd->start_time from ms to s but it seems to > me a degradation. Yes, please we should not use time. >> At first, I also thought of fixing pg_time_now() to use gettimeofday() instead >> of INSTR_TIME_SET_CURRENT, but I noticed that using INSTR_TIME_SET_CURRENT is >> proper to measure time interval. I mean, this macro uses >> lock_gettime(CLOCK_MONOTONIC, ) if avilable, which give reliable interval >> timing even in the face of changes to the system clock due to NTP. > > If I understand the op correctly, the problem here is the time values > in pgbench log file are based on a bogus epoch. It is not "bogus", but is not necessary epoch depending on the underlying function called behind by INSTR_TIME macros, and people are entitled to expect epoch for log correlations. > If it's the only issue > here and and if we just want to show the time based on the unix epoch > time, just recording the difference would work as I scketched in the > attached. (Precisely theepoch would move if we set the system clock > but I don't think that matters:p) I do like the approach. I'm hesitant to promote it for fixing the beta, but the code impact is small enough, so I'd say yes. Maybe there is a similar issue with progress which should probably use the same approach. I think that aligning the implementations can wait for pg15. The patch as white space issues. Attached an updated version which fixes that, adds comments and simplify the code a little bit. > I'm not sure we have transaction lasts for very short time that > nanoseconds matters. Indeed. -- Fabien.
Commits
-
Fix pgbench timestamp bugs.
- 5614a0f78eaa 14.0 landed
- 0e39a608ed55 15.0 landed
-
Fix pattern matching logic for logs in TAP tests of pgbench
- 0efd2a1a66dd 11.13 landed
- 79ff96aa9d9a 12.8 landed
- 7a9eaf111ac0 13.4 landed
- c13585fe9e55 14.0 landed
-
pgbench: Improve time logic.
- 547f04e7348b 14.0 cited
-
pgbench: Synchronize client threads.
- aeb57af8e640 14.0 cited
-
pgbench: refactor handling of stats tracking
- b60376649600 9.6.0 cited