Received: from localhost (unknown [200.46.204.183]) by developer.postgresql.org (Postfix) with ESMTP id AD9372E014E for ; Sat, 31 May 2008 12:15:35 -0300 (ADT) Received: from developer.postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.183]) (amavisd-maia, port 10024) with ESMTP id 97872-05 for ; Sat, 31 May 2008 12:15:16 -0300 (ADT) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from lists.commandprompt.com (host-159.commandprompt.net [207.173.203.159]) by developer.postgresql.org (Postfix) with ESMTP id 7DC3F2E008E for ; Sat, 31 May 2008 12:15:15 -0300 (ADT) Received: from [192.168.1.226] (or-69-34-217-90.sta.embarqhsd.net [69.34.217.90]) (authenticated bits=0) by lists.commandprompt.com (8.13.8/8.13.8) with ESMTP id m4VFGJjV022930 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 31 May 2008 08:16:21 -0700 Message-ID: <48416B72.3060203@commandprompt.com> Date: Sat, 31 May 2008 08:14:58 -0700 From: "Joshua D. Drake" Organization: Command Prompt, Inc. User-Agent: Thunderbird 2.0.0.14 (Windows/20080421) MIME-Version: 1.0 To: Simon Riggs CC: Josh Berkus , pgsql-hackers@postgresql.org Subject: Re: Overhauling GUCS References: <48409D1E.3070208@agliodbs.com> <1212219274.4120.191.camel@ebony.site> In-Reply-To: <1212219274.4120.191.camel@ebony.site> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0 (lists.commandprompt.com [207.173.203.159]); Sat, 31 May 2008 08:16:22 -0700 (PDT) X-Virus-Scanned: Maia Mailguard 1.0.1 X-Archive-Number: 200805/1092 X-Sequence-Number: 119091 Simon Riggs wrote: > On Fri, 2008-05-30 at 17:34 -0700, Josh Berkus wrote: > 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. I certainly agree we don't want to make it more difficult. > > So if they don't know > what they're doing it is frequently because we keep moving the > goalposts. No, its because they don't read the docs. We are not talking about dumping SQL here :) I don't feel it is correct to not perform such a needed cleanup for fear that some user can't be bothered to read the documentation. > 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. This could certainly be a problem. > > 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. That is the nature of the beast though. We are still learning, improving, engineering. It's part of progress of the database. I would suggest that your students (which is what I tell mine) not upgrade every release but instead try hanging out for 3 years per release. > > 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. > I agree with this in principle but not on this argument. > 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. IMO, the only settings that should be in the postgresql.conf are the ones that require a restart. The rest should be gathered from pg_settings. > > 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 > ... I think that could get very messy but Apache allows this. It isn't exactly a new idea and I wouldn't fight against it. > Some other problems I see with GUCs > > * It's not possible to set one parameter depending upon the setting of > another. That is getting a bit more complicated than I think we need. Unless I am misunderstanding what you are saying. > > * It's always unclear which GUCs can be changed, and when. That is much > more infrequently understood than the meaning of them. > This is a definite problem. Even the docs are a bit difficult on this one. It should be a nice simple grid :) or like I said above, only goes in the conf if requires a restart. Hmm, SET effective_cache_size = '5000MB'; WARNING: You must issue a reload to the database for this to take effect. > * We should rename effective_cache_size to something that doesn't sound > like it does what shared_buffers does Hmmm, I wonder if it is not the other way around. Although I know that one thing I run into is that a lot of people think effective_cache is an allocation. shared_buffer_alloc? shared_mem? > > * 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. > +1 +1 Sincerely, Joshua D. Drake