Re: Overhauling GUCS - Mailing list pgsql-hackers
From | Simon Riggs |
---|---|
Subject | Re: Overhauling GUCS |
Date | |
Msg-id | 1212219274.4120.191.camel@ebony.site Whole thread Raw |
In response to | Overhauling GUCS (Josh Berkus <josh@agliodbs.com>) |
Responses |
Re: Overhauling GUCS
Re: Overhauling GUCS Re: Overhauling GUCS |
List | pgsql-hackers |
On Fri, 2008-05-30 at 17:34 -0700, Josh Berkus wrote: > There's obviously some refinements needed, but what do people think of > the above general idea? My initial reaction is that this is too much change, though I agree with many of the points and understand it is well intended. We have many supporters, though 90% of them seldom touch the database from one release to the next. Many are dismayed that every time they do we've fiddled with the knobs so some don't work anymore, some are missing or renamed and there's a few new ones. So if they don't know what they're doing it is frequently because we keep moving the goalposts. We should also consider that most people with multiple databases are running multiple versions of PostgreSQL. The main reason for that is that we keep changing the behaviour of SQL between releases, so even if you had a magic superfast upgrade utility, in perhaps 50% of cases they won't use it because they have to do a full application re-test, which costs time and money. Trying to be a Postgres DBA is hard when each new release is configured differently to the last one and we have a major release about 3-5 more frequently than Oracle/SQLServer. That is probably largest source of questions and annoyance from the students on the courses I run. So my viewpoint is that we should be aggressively adding new features, yet be conservative in changing existing behaviour: provide options for behaves-like-previous-release and keep the administrative interfaces as similar as possible between releases. If you wish to make changes, I would suggest that you simply reorder some of the parameters in the .conf file, so that the ones you think are important are grouped at the top. Another suggestion would be to allow a #include style interface within postgresql.conf. We can then do this: #include standard_postgresql.conf # now we put Josh's favourite GUCs as overrides on the above ... That keeps things simple because the standard_postgresql.conf looks almost identical to what people are used to. It also provides a new feature, allowing people to include site-wide defaults for various settings to allow easy implementation of local policy. It also demonstrates a best practice approach to managing GUCs. Some other problems I see with GUCs * It's not possible to set one parameter depending upon the setting of another. * It's always unclear which GUCs can be changed, and when. That is much more infrequently understood than the meaning of them. * We should rename effective_cache_size to something that doesn't sound like it does what shared_buffers does * There is no config verification utility, so if you make a change and then try to restart and it won't, you are in trouble. -- Simon Riggs www.2ndQuadrant.comPostgreSQL Training, Services and Support
pgsql-hackers by date: