Re: Set log_lock_waits=on by default - Mailing list pgsql-hackers
From | Stephen Frost |
---|---|
Subject | Re: Set log_lock_waits=on by default |
Date | |
Msg-id | ZcOXC374DjdG5Rqj@tamriel.snowman.net Whole thread Raw |
In response to | Re: Set log_lock_waits=on by default (Laurenz Albe <laurenz.albe@cybertec.at>) |
Responses |
Re: Set log_lock_waits=on by default
|
List | pgsql-hackers |
Greetings, * Laurenz Albe (laurenz.albe@cybertec.at) wrote: > On Tue, 2024-02-06 at 12:29 -0500, Tom Lane wrote: > > Nathan Bossart <nathandbossart@gmail.com> writes: > > > It looks like there are two ideas: > > > [...] > > > * Set log_lock_waits on by default. The folks on this thread seem to > > > support this idea, but given the lively discussion for enabling > > > log_checkpoints by default [0], I'm hesitant to commit something like > > > this without further community discussion. > > > > I was, and remain, of the opinion that that was a bad idea that > > we'll eventually revert, just like we previously got rid of most > > inessential log chatter in the default configuration. So I doubt > > you'll have much trouble guessing my opinion of this one. I think > > the default logging configuration should be chosen with the > > understanding that nobody ever looks at the logs of most > > installations, and we should be more worried about their disk space > > consumption than anything else. Admittedly, log_lock_waits is less > > bad than log_checkpoints, because no such events will occur in a > > well-tuned configuration ... but still, it's going to be useless > > chatter in the average installation. > > Unsurprisingly, I want to argue against that. I tend to agree with this position- log_checkpoints being on has been a recommended configuration for a very long time and is valuable information to have about what's been happening when someone does go and look at the log. Having log_lock_waits on by default is likely to be less noisy and even more useful for going back in time to figure out what happened. > You say that it is less bad than "log_checkpoints = on", and I agree. > I can't remember seeing any complaints by users about > "log_checkpoints", and I predict that the complaints about > "log_lock_waits = on" will be about as loud. Yeah, agreed. > I am all for avoiding useless chatter in the log. In my personal > experience, that is usually "database typo does not exist" and > constraint violation errors. I always recommend people to enable > "log_lock_waits", and so far I have not seen it spam the logs. I really wish we could separate out the messages about typos and constraint violations from these logs about processes waiting a long time for locks or about checkpoints or even PANIC's or other really important messages. That said, that's a different problem and not something this change needs to concern itself with. As for if we want to separate out log_lock_waits from deadlock_timeout- no, I don't think we do, for the reasons that Tom mentioned. I don't see it as necessary either for enabling log_lock_waits by default. Waiting deadlock_timeout amount of time for a lock certainly is a problem already and once we've waited that amount of time, I can't see the time spent logging about it as being a serious issue. +1 for simply enabling log_lock_waits by default. All that said ... if we did come up with a nice way to separate out the timing for deadlock_timeout and log_lock_waits, I wouldn't necessarily be against it. Perhaps one approach to that would be to set just one timer but have it be the lower of the two, and then set another when that fires (if there's more waiting to do) and then catch it when it happens... Again, I'd view this as some independent improvement though and not a requirement for just enabling log_lock_waits by default. Thanks, Stephen
Attachment
pgsql-hackers by date: