Received: from localhost (wm.hub.org [200.46.204.128]) by postgresql.org (Postfix) with ESMTP id 6569A9FA4D7 for ; Mon, 25 Sep 2006 11:25:06 -0300 (ADT) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.128]) (amavisd-new, port 10024) with ESMTP id 84076-04 for ; Mon, 25 Sep 2006 14:25:05 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey- Received: from mail.mi8.com (d01gw02.mi8.com [63.240.6.46]) by postgresql.org (Postfix) with ESMTP id 6EE269FA47B for ; Mon, 25 Sep 2006 11:25:05 -0300 (ADT) Received: from 172.16.1.110 by mail.mi8.com with ESMTP (- Welcome to Mi8 Corporation www.Mi8.com (D2)); Mon, 25 Sep 2006 10:24:25 -0400 X-Server-Uuid: 7829E76E-BB9E-4995-8473-3C0929DF7DD1 Received: from MI8NYCMAIL06.Mi8.com ([172.16.1.175]) by D01SMTP01.Mi8.com with Microsoft SMTPSVC(6.0.3790.1830); Mon, 25 Sep 2006 10:23:57 -0400 Received: from 69.181.100.71 ([69.181.100.71]) by MI8NYCMAIL06.Mi8.com ( [172.16.1.219]) via Exchange Front-End Server mi8owa.mi8.com ( [172.16.1.106]) with Microsoft Exchange Server HTTP-DAV ; Mon, 25 Sep 2006 14:23:57 +0000 User-Agent: Microsoft-Entourage/11.2.5.060620 Date: Mon, 25 Sep 2006 07:23:58 -0700 Subject: Re: Large tables (was: RAID 0 not as fast as From: "Luke Lonergan" To: "Jim C. Nasby" cc: mark@mark.mielke.cc, "Guy Thornley" , "Markus Schaber" , pgsql-performance@postgresql.org Message-ID: Thread-Topic: [PERFORM] Large tables (was: RAID 0 not as fast as Thread-Index: Acbgrj0Pe2TVPUyhEdu8TQAWy4o9DA== In-Reply-To: <20060922140113.GW28987@nasby.net> MIME-Version: 1.0 X-OriginalArrivalTime: 25 Sep 2006 14:23:57.0864 (UTC) FILETIME=[3CFAD280:01C6E0AE] X-WSS-ID: 690939131409034477-03-01 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: Maia Mailguard 1.0.1 X-Archive-Number: 200609/328 X-Sequence-Number: 21014 Jim, On 9/22/06 7:01 AM, "Jim C. Nasby" wrote: > There's been talk of adding code that would have a seqscan detect if > another seqscan is happening on the table at the same time, and if it > is, to start it's seqscan wherever the other seqscan is currently > running. That would probably ensure that we weren't reading from the > table in 2 different places, even if we weren't caching. Right, aka "SyncScan" The optimization you point out that we miss when bypassing cache is a pretty unlikely event in real world apps, though it makes poorly designed benchmarks go really fast. It's much more likely that the second seqscan will start after the block cache is exhausted, which will cause actuator thrashing (depending on the readahead that the OS uses). SyncScan fixes that. - Luke