Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aljw0-0005Jc-DU for pgsql-hackers@arkaria.postgresql.org; Thu, 31 Mar 2016 21:15:20 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1aljw0-00078V-04 for pgsql-hackers@arkaria.postgresql.org; Thu, 31 Mar 2016 21:15:20 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1aljud-0005WX-TR for pgsql-hackers@postgresql.org; Thu, 31 Mar 2016 21:13:55 +0000 Received: from mx1.redhat.com ([209.132.183.28]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1aljua-00081q-9a for pgsql-hackers@postgresql.org; Thu, 31 Mar 2016 21:13:55 +0000 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 0ACCBC050055; Thu, 31 Mar 2016 21:13:47 +0000 (UTC) Received: from localhost.localdomain (vpn-61-208.rdu2.redhat.com [10.10.61.208]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u2VLDktC020482 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 31 Mar 2016 17:13:47 -0400 Subject: Re: Speed up Clog Access by increasing CLOG buffers To: Andres Freund References: <20150903114137.GE27649@awork2.anarazel.de> <20160330230914.GH13305@awork2.anarazel.de> Cc: Amit Kapila , pgsql-hackers From: Jesper Pedersen Organization: JBoss, by Red Hat Message-ID: <56FD930A.1030005@redhat.com> Date: Thu, 31 Mar 2016 17:13:46 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 MIME-Version: 1.0 In-Reply-To: <20160330230914.GH13305@awork2.anarazel.de> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Pg-Spam-Score: -7.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 Hi, On 03/30/2016 07:09 PM, Andres Freund wrote: > Yes. That looks good. My testing shows that increasing the number of > buffers can increase both throughput and reduce latency variance. The > former is a smaller effect with one of the discussed patches applied, > the latter seems to actually increase in scale (with increased > throughput). > > > I've attached patches to: > 0001: Increase the max number of clog buffers > 0002: Implement 64bit atomics fallback and optimize read/write > 0003: Edited version of Simon's clog scalability patch > > WRT 0003 - still clearly WIP - I've: > - made group_lsn pg_atomic_u64*, to allow for tear-free reads > - split content from IO lock > - made SimpleLruReadPage_optShared always return with only share lock > held > - Implement a different, experimental, concurrency model for > SetStatusBit using cmpxchg. A define USE_CONTENT_LOCK controls which > bit is used. > > I've tested this and saw this outperform Amit's approach. Especially so > when using a read/write mix, rather then only reads. I saw over 30% > increase on a large EC2 instance with -btpcb-like@1 -bselect-only@3. But > that's in a virtualized environment, not very good for reproducability. > > Amit, could you run benchmarks on your bigger hardware? Both with > USE_CONTENT_LOCK commented out and in? > > I think we should go for 1) and 2) unconditionally. And then evaluate > whether to go with your, or 3) from above. If the latter, we've to do > some cleanup :) > I have been testing Amit's patch in various setups and work loads, with up to 400 connections on a 2 x Xeon E5-2683 (28C/56T @ 2 GHz), not seeing an improvement, but no regression either. Testing with 0001 and 0002 do show up to a 5% improvement when using a HDD for data + wal - about 1% when using 2 x RAID10 SSD - unlogged. I can do a USE_CONTENT_LOCK run on 0003 if it is something for 9.6. Thanks for your work on this ! Best regards, Jesper -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers