Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.72) (envelope-from ) id 1UMo3N-00027X-CZ for pgsql-hackers@arkaria.postgresql.org; Mon, 01 Apr 2013 23:22:17 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.72) (envelope-from ) id 1UMo3M-00012X-NP for pgsql-hackers@arkaria.postgresql.org; Mon, 01 Apr 2013 23:22:16 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtp (Exim 4.72) (envelope-from ) id 1UMo3M-00012S-3z for pgsql-hackers@postgresql.org; Mon, 01 Apr 2013 23:22:16 +0000 Received: from 99-153-64-76.uvs.austtx.sbcglobal.net ([99.153.64.76] helo=noel.decibel.org) by magus.postgresql.org with esmtp (Exim 4.72) (envelope-from ) id 1UMo3G-0000Oz-RR for pgsql-hackers@postgresql.org; Mon, 01 Apr 2013 23:22:14 +0000 Received: from decibook.local (rrcs-67-79-71-90.sw.biz.rr.com [67.79.71.90]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by noel.decibel.org (Postfix) with ESMTPSA id ED5C26D489; Mon, 1 Apr 2013 23:22:06 +0000 (UTC) Message-ID: <515A169C.7070406@nasby.net> Date: Mon, 01 Apr 2013 18:22:04 -0500 From: Jim Nasby User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:17.0) Gecko/20130307 Thunderbird/17.0.4 MIME-Version: 1.0 To: Greg Smith CC: pgsql-hackers@postgresql.org Subject: Re: Page replacement algorithm in buffer cache References: <514bf302.84d5440a.43f2.ffffe411SMTPIN_ADDED_BROKEN@mx.google.com> <08BBC126-D375-4743-B9A6-D1320D05D5C7@gmail.com> <514c3395.487a420a.28d1.764eSMTPIN_ADDED_BROKEN@mx.google.com> <514EFB8A.80306@2ndQuadrant.com> In-Reply-To: <514EFB8A.80306@2ndQuadrant.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Pg-Spam-Score: -0.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 3/24/13 8:11 AM, Greg Smith wrote: > On 3/22/13 8:45 AM, Ants Aasma wrote: >> However, I think the main issue isn't finding new algorithms that are >> better in some specific circumstances. The hard part is figuring out >> whether their performance is better in general. > > Right. The current page replacement method works as expected. Many frequently accessed pages accumulate a usage count of 5 before the clock sweep hits them. Pages that are accessed once and not again before the clock sweep are evicted. There are several theoretically better ways to approach this. Anyone who hasn't already been working on this for a few years is very unlikely to come up with a brand new idea, one that hasn't already been tested in the academic research. > > But the real blocker here isn't ideas, it's creating benchmark workloads to validate any change. Right now I see the most promising work that could lead toward the "performance farm" idea as all of the Jenkins based testing that's been going on recently. Craig Ringer has using that for 2ndQuadrant work here, Peter Eisentraut has been working with it: http://petereisentraut.blogspot.com/2013/01/postgresql-and-jenkins.html and the PostGIS project uses it too. There's some good momentum brewing there. > > When we have regular performance testing with a mix of workloads--I have about 10 in mind to start--at that point we could start the testing performance changes to the buffer replacement. Until then this whole area is hard to touch usefully. You have to assume that any tuning you do for one type of workload might accidentally slow another. Starting with a lot of baseline workloads is the only way to move usefully forward when facing that problem. The other thing I think would be tremendously useful would be the ability to get performance data from systems in the field *without having to install extra stuff or do a special build*. The last point is critical because there are so many places where deviating from a standard package takes an act of Congress. In this case, if I could run some queries to get stats about clock sweep waits and what-not then I could get our shared buffer size changed on some hosts and see how those changes affect the numbers. But doing this with a non-standard build is pretty much a non-starter. I know there's been some improvement in this area, but I suspect there's still more to go. -- Jim C. Nasby, Data Architect jim@nasby.net 512.569.9461 (cell) http://jim.nasby.net -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers