Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1h2gCh-0004uc-1D for pgsql-hackers@arkaria.postgresql.org; Sat, 09 Mar 2019 17:56:11 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1h2gCf-0000Dh-6O for pgsql-hackers@arkaria.postgresql.org; Sat, 09 Mar 2019 17:56:09 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1h2gCe-0000Da-OV for pgsql-hackers@lists.postgresql.org; Sat, 09 Mar 2019 17:56:08 +0000 Received: from sss.pgh.pa.us ([66.207.139.130]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1h2gCX-0007Rw-2g for pgsql-hackers@lists.postgresql.org; Sat, 09 Mar 2019 17:56:06 +0000 Received: from sss1.sss.pgh.pa.us (localhost [127.0.0.1]) by sss.pgh.pa.us (8.14.4/8.14.4) with ESMTP id x29HtsPI024301; Sat, 9 Mar 2019 12:55:54 -0500 From: Tom Lane To: Andrew Dunstan cc: David Rowley , Jeff Janes , Jeremy Schneider , Joe Conway , Peter Geoghegan , PostgreSQL Hackers Subject: Re: Should we increase the default vacuum_cost_limit? In-reply-to: <203719fc-1970-4a49-8013-eba3fd109b19@2ndQuadrant.com> References: <241b80ab-7af0-c606-7b2c-b0a5d6be696a@joeconway.com> <4a068b09-5a6f-e975-07c9-2333fcef0a8a@amazon.com> <30411a5b-ef11-71ef-e9ee-4d26ef3fd0c0@2ndQuadrant.com> <21034.1552068630@sss.pgh.pa.us> <13d143dd-0a44-0c16-218c-bc924b5922f0@2ndQuadrant.com> <26656.1552096451@sss.pgh.pa.us> <28720.1552101086@sss.pgh.pa.us> <203719fc-1970-4a49-8013-eba3fd109b19@2ndQuadrant.com> Comments: In-reply-to Andrew Dunstan message dated "Sat, 09 Mar 2019 08:28:22 -0500" MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <24299.1552154154.1@sss.pgh.pa.us> Content-Transfer-Encoding: quoted-printable Date: Sat, 09 Mar 2019 12:55:54 -0500 Message-ID: <24300.1552154154@sss.pgh.pa.us> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk Andrew Dunstan writes: > On 3/9/19 4:28 AM, David Rowley wrote: >> I agree that vacuum_cost_delay might not be granular enough, however. >> If we're going to change the vacuum_cost_delay into microseconds, then >> I'm a little concerned that it'll silently break existing code that >> sets it. Scripts that do manual off-peak vacuums are pretty common >> out in the wild. > Maybe we could leave the default units as msec but store it and allow > specifying as usec. Not sure how well the GUC mechanism would cope with > that. I took a quick look at that and I'm afraid it'd be a mess. GUC doesn't really distinguish between a variable's storage unit, its default input unit, or its default output unit (as seen in e.g. pg_settings). Perhaps we could split those into two or three distinct concepts, but it seems complicated and bug-prone. Also I think we'd still be forced into making obviously-incompatible changes in what pg_settings shows for this variable, since what it shows right now is integer ms. That last isn't a deal-breaker perhaps, but 100% compatibility isn't going to happen this way. The idea of converting vacuum_cost_delay into a float variable, while keeping its native unit as ms, seems probably more feasible from a compatibility standpoint. There are two sub-possibilities: 1. Just do that and lose units support for the variable. I don't think this is totally unreasonable, because up to now ms is the *only* workable unit for it: regression=3D# set vacuum_cost_delay =3D '1s'; ERROR: 1000 is outside the valid range for parameter "vacuum_cost_delay" = (0 .. 100) Still, it'd mean that anyone who'd been explicitly setting it with an "ms" qualifier would have to change their postgresql.conf entry. 2. Add support for units for float variables, too. I don't think this'd be a huge amount of work, and we'd surely have other uses for it in the long run. I'm inclined to go look into #2. Anybody think this is a bad idea? regards, tom lane