X-Original-To: pgsql-performance-postgresql.org@localhost.postgresql.org Received: from localhost (av.hub.org [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id 4C4B0D6FFB for ; Tue, 23 Aug 2005 20:36:23 -0300 (ADT) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 56748-05 for ; Tue, 23 Aug 2005 23:36:20 +0000 (GMT) Received: from flake.decibel.org (flake.decibel.org [67.100.216.10]) by svr1.postgresql.org (Postfix) with ESMTP id 6EF96D7157 for ; Tue, 23 Aug 2005 20:36:18 -0300 (ADT) Received: by flake.decibel.org (Postfix, from userid 1001) id DD23E15289; Tue, 23 Aug 2005 18:36:08 -0500 (CDT) Date: Tue, 23 Aug 2005 18:36:08 -0500 From: "Jim C. Nasby" To: Chris Browne Cc: pgsql-performance@postgresql.org Subject: Re: Read/Write block sizes Message-ID: <20050823233608.GA94425@pervasive.com> References: <60k6icpapm.fsf@dba2.int.libertyrms.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <60k6icpapm.fsf@dba2.int.libertyrms.com> X-Operating-System: FreeBSD 4.11-RELEASE-p10 i386 X-Distributed: Join the Effort! http://www.distributed.net User-Agent: Mutt/1.5.9i X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=0 required=5 tests=[none] X-Spam-Level: X-Archive-Number: 200508/363 X-Sequence-Number: 14110 On Tue, Aug 23, 2005 at 06:09:09PM -0400, Chris Browne wrote: > J.K.Shah@Sun.COM (Jignesh Shah) writes: > >> Does that include increasing the size of read/write blocks? I've > >> noticedthat with a large enough table it takes a while to do a > >> sequential scan, even if it's cached; I wonder if the fact that it > >> takes a million read(2) calls to get through an 8G table is part of > >> that. > > > > Actually some of that readaheads,etc the OS does already if it does > > some sort of throttling/clubbing of reads/writes. But its not enough > > for such types of workloads. > > > > Here is what I think will help: > > > > * Support for different Blocksize TABLESPACE without recompiling the > > code.. (Atlease support for a different Blocksize for the whole > > database without recompiling the code) > > > > * Support for bigger sizes of WAL files instead of 16MB files > > WITHOUT recompiling the code.. Should be a tuneable if you ask me > > (with checkpoint_segments at 256.. you have too many 16MB files in > > the log directory) (This will help OLTP benchmarks more since now > > they don't spend time rotating log files) > > > > * Introduce a multiblock or extent tunable variable where you can > > define a multiple of 8K (or BlockSize tuneable) to read a bigger > > chunk and store it in the bufferpool.. (Maybe writes too) (Most > > devices now support upto 1MB chunks for reads and writes) > > > > *There should be a way to preallocate files for TABLES in > > TABLESPACES otherwise with multiple table writes in the same > > filesystem ends with fragmented files which causes poor "READS" from > > the files. > > > > * With 64bit 1GB file chunks is also moot.. Maybe it should be > > tuneable too like 100GB without recompiling the code. > > > > Why recompiling is bad? Most companies that will support Postgres > > will support their own binaries and they won't prefer different > > versions of binaries for different blocksizes, different WAL file > > sizes, etc... and hence more function using the same set of binaries > > is more desirable in enterprise environments > > Every single one of these still begs the question of whether the > changes will have a *material* impact on performance. How many of these things are currently easy to change with a recompile? I should be able to start testing some of these ideas in the near future, if they only require minor code or configure changes. -- Jim C. Nasby, Sr. Engineering Consultant jnasby@pervasive.com Pervasive Software http://pervasive.com 512-569-9461