Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1WaWca-0001qs-J9 for pgsql-hackers@arkaria.postgresql.org; Wed, 16 Apr 2014 20:39:52 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.80) (envelope-from ) id 1WaWcZ-0006co-Qd for pgsql-hackers@arkaria.postgresql.org; Wed, 16 Apr 2014 20:39:51 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1WaWcY-0006cY-Cr for pgsql-hackers@postgresql.org; Wed, 16 Apr 2014 20:39:50 +0000 Received: from smtp.01.com ([199.36.142.181]) by magus.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1WaWcU-0003bQ-Dg for pgsql-hackers@postgresql.org; Wed, 16 Apr 2014 20:39:50 +0000 Received: from localhost (localhost [127.0.0.1]) by smtp-out-2.01.com (Postfix) with ESMTP id 5799D3996B7 for ; Wed, 16 Apr 2014 15:39:44 -0500 (CDT) X-Virus-Scanned: amavisd-new at smtp-out-2.01.com Received: from smtp.01.com ([127.0.0.1]) by localhost (smtp-out-2.01.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nmZyR3pkiIsW for ; Wed, 16 Apr 2014 15:39:44 -0500 (CDT) Received: from smtp.01.com (localhost [127.0.0.1]) by smtp-out-2.01.com (Postfix) with ESMTP id 3B2A53996D2 for ; Wed, 16 Apr 2014 15:39:44 -0500 (CDT) Received: from localhost (localhost [127.0.0.1]) by smtp-out-2.01.com (Postfix) with ESMTP id 2556E3996B7 for ; Wed, 16 Apr 2014 15:39:44 -0500 (CDT) X-Virus-Scanned: amavisd-new at smtp-out-2.01.com Received: from smtp.01.com ([127.0.0.1]) by localhost (smtp-out-2.01.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id Nyn6paQdTn32 for ; Wed, 16 Apr 2014 15:39:44 -0500 (CDT) Received: from [192.168.47.107] (50-1-62-16.dsl.dynamic.sonic.net [50.1.62.16]) by smtp-out-2.01.com (Postfix) with ESMTPSA id A83733996B5 for ; Wed, 16 Apr 2014 15:39:43 -0500 (CDT) Message-ID: <534EEA8E.5070407@agliodbs.com> Date: Wed, 16 Apr 2014 13:39:42 -0700 From: Josh Berkus Organization: PostgreSQL Experts Inc. User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: pgsql-hackers@postgresql.org Subject: Re: Need Multixact Freezing Docs References: <534DA3D1.2010000@agliodbs.com> <534DB22A.2040909@agliodbs.com> <20140416133233.GL5822@eldon.alvh.no-ip.org> <534EC69B.9010107@agliodbs.com> <20140416203057.GQ5822@eldon.alvh.no-ip.org> In-Reply-To: X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Pg-Spam-Score: -1.9 (-) 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 04/16/2014 01:30 PM, Alvaro Herrera wrote: > Josh Berkus wrote: >> >>> You can see the current multixact value in pg_controldata output. Keep >>> timestamped values of that somewhere (a table?) so that you can measure >>> consumption rate. I don't think we provide SQL-level access to those >>> values. >> >> Bleh. Do we provide SQL-level access in 9.4? If not, I think that's a >> requirement before release. > > Yeah, good idea. Want to propose a patch? Yeah, lemme dig into this. I really think we need it for 9.4, feature frozen or not. >>>> Also: how do I check the multixact age of a table? There doesn't seem >>>> to be any data for this ... >>> >>> pg_class.relminmxid is the oldest multixact value that might be present >>> in a table. >> >> On every database I've tested, age(relminmxid) returns int_max. So this >> is apparently broken. > > Hmm, are you sure it's INT_MAX and not 4244967297? Heikki reported > that: http://www.postgresql.org/message-id/52401AEA.9000608@vmware.com > The absolute value is not important; I think that's mostly harmless. I > don't think applying age() to a multixact value is meaningful, though; > that's only good for Xids. Yeah, I'm sure: josh=# select relname, age(relminmxid) from pg_class; relname | age -----------------------------------------+------------ pg_statistic | 2147483647 pg_type | 2147483647 random | 2147483647 dblink_pkey_results | 2147483647 pg_toast_17395 | 2147483647 ... So if age() doesn't mean anything, then how are users to know when the need to freeze? -- Josh Berkus PostgreSQL Experts Inc. http://pgexperts.com -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers