Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1WFgbM-0001bo-MV for pgsql-hackers@arkaria.postgresql.org; Tue, 18 Feb 2014 09:04:28 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.80) (envelope-from ) id 1WFgbL-0003NY-Ep for pgsql-hackers@arkaria.postgresql.org; Tue, 18 Feb 2014 09:04:27 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1WFgbI-0003NN-VF for pgsql-hackers@postgresql.org; Tue, 18 Feb 2014 09:04:25 +0000 Received: from smtp-outbound-1.vmware.com ([208.91.2.12]) by magus.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1WFgb9-0003jw-Fq for pgsql-hackers@postgresql.org; Tue, 18 Feb 2014 09:04:23 +0000 Received: from sc9-mailhost2.vmware.com (sc9-mailhost2.vmware.com [10.113.161.72]) by smtp-outbound-1.vmware.com (Postfix) with ESMTP id 162AF2923C; Tue, 18 Feb 2014 01:04:12 -0800 (PST) Received: from zcs-prod-ext-mta-1.vmware.com (zcs-prod-ext-mta-1.vmware.com [10.113.62.223]) by sc9-mailhost2.vmware.com (Postfix) with ESMTP id 04510B01E8; Tue, 18 Feb 2014 01:04:12 -0800 (PST) Received: from zcs-prod-ext-mta-1.vmware.com (localhost.localdomain [127.0.0.1]) by zcs-prod-ext-mta-1.vmware.com (Postfix) with ESMTP id 7D87E120039; Tue, 18 Feb 2014 01:04:11 -0800 (PST) Received: from [192.168.1.90] (zimbra-prod-ext-proxy-vip.vmware.com [10.113.63.87]) by zcs-prod-ext-mta-1.vmware.com (Postfix) with ESMTPSA; Tue, 18 Feb 2014 01:04:04 -0800 (PST) Message-ID: <53032202.8020405@vmware.com> Date: Tue, 18 Feb 2014 11:04:02 +0200 From: Heikki Linnakangas Organization: VMware User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20131103 Icedove/17.0.10 MIME-Version: 1.0 To: Jim Nasby CC: Jaime Casanova , Bruce Momjian , Robert Haas , Kevin Grittner , Amit Kapila , Josh Berkus , "pgsql-hackers@postgresql.org" Subject: Re: 9.2.1 & index-only scans : abnormal heap fetches after VACUUM FULL References: <20130112191404.255800@gmx.com> <20131127213320.GA3785@momjian.us> <20131128223805.GC20216@momjian.us> <20131203162556.GC27105@momjian.us> <53011D60.8020005@nasby.net> In-Reply-To: <53011D60.8020005@nasby.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Pg-Spam-Score: -7.5 (-------) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org On 02/16/2014 10:19 PM, Jim Nasby wrote: > On 1/24/14, 3:52 PM, Jaime Casanova wrote: >> On Tue, Dec 3, 2013 at 11:25 AM, Bruce Momjian wrote: >>>> >>>> Is everyone else OK with this approach? Updated patch attached. >>>> >> Hi, >> >> I started to look at this patch and i found that it fails an assertion >> as soon as you run a VACUUM FULL after a lazy VACUUM even if those are >> on unrelated relations. For example in an assert-enabled build with >> the regression database run: >> >> VACUUM customer; >> [... insert here whatever commands you like or nothing at all ...] >> VACUUM FULL tenk1; > > Is anyone else confused/concerned that regression testing didn't pick this up? I wouldn't expect that to be explicitly tested - it's pretty unexpected that they work independently but not when run one after another. But it's a bit surprising that we don't happen to do that combination in any of the tests by pure chance. > The vacuum.sql test does not test lazy vacuum at all, and I can't seem to find any other tests that test lazy vacuum either... There are several lazy vacuums in the regression suite: sql/alter_table.sql:vacuum analyze atacc1(a); sql/alter_table.sql:vacuum analyze atacc1("........pg.dropped.1........"); sql/hs_standby_disallowed.sql:VACUUM hs2; sql/indirect_toast.sql:VACUUM FREEZE toasttest; sql/indirect_toast.sql:VACUUM FREEZE toasttest; sql/matview.sql:VACUUM ANALYZE hogeview; sql/numeric_big.sql:VACUUM ANALYZE num_exp_add; sql/numeric_big.sql:VACUUM ANALYZE num_exp_sub; sql/numeric_big.sql:VACUUM ANALYZE num_exp_div; sql/numeric_big.sql:VACUUM ANALYZE num_exp_mul; sql/numeric_big.sql:VACUUM ANALYZE num_exp_sqrt; sql/numeric_big.sql:VACUUM ANALYZE num_exp_ln; sql/numeric_big.sql:VACUUM ANALYZE num_exp_log10; sql/numeric_big.sql:VACUUM ANALYZE num_exp_power_10_ln; sql/numeric.sql:VACUUM ANALYZE num_exp_add; sql/numeric.sql:VACUUM ANALYZE num_exp_sub; sql/numeric.sql:VACUUM ANALYZE num_exp_div; sql/numeric.sql:VACUUM ANALYZE num_exp_mul; sql/numeric.sql:VACUUM ANALYZE num_exp_sqrt; sql/numeric.sql:VACUUM ANALYZE num_exp_ln; sql/numeric.sql:VACUUM ANALYZE num_exp_log10; sql/numeric.sql:VACUUM ANALYZE num_exp_power_10_ln; sql/sanity_check.sql:VACUUM; sql/without_oid.sql:VACUUM ANALYZE wi; sql/without_oid.sql:VACUUM ANALYZE wo; Most of those commands are there to analyze, rather than vacuum, but lazy vacuum is definitely exercised by the regression tests. I agree it's quite surprising that vacuum.sql doesn't actually perform any lazy vacuums. - Heikki -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers