aboutsummaryrefslogtreecommitdiff
path: root/doc/TODO.detail/mmap
diff options
context:
space:
mode:
Diffstat (limited to 'doc/TODO.detail/mmap')
-rw-r--r--doc/TODO.detail/mmap139
1 files changed, 139 insertions, 0 deletions
diff --git a/doc/TODO.detail/mmap b/doc/TODO.detail/mmap
index a57eed42547..fffd6333d39 100644
--- a/doc/TODO.detail/mmap
+++ b/doc/TODO.detail/mmap
@@ -240,3 +240,142 @@ It doesn't allow you to do several important optimizations.
---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster
+From pgsql-general-owner+M14300@postgresql.org Mon Aug 27 13:07:32 2001
+Return-path: <pgsql-general-owner+M14300@postgresql.org>
+Received: from server1.pgsql.org (server1.pgsql.org [64.39.15.238])
+ by candle.pha.pa.us (8.11.6/8.10.1) with ESMTP id f7RH7VF04800
+ for <pgman@candle.pha.pa.us>; Mon, 27 Aug 2001 13:07:31 -0400 (EDT)
+Received: from postgresql.org.org (webmail.postgresql.org [216.126.85.28])
+ by server1.pgsql.org (8.11.6/8.11.6) with ESMTP id f7RH7Tq17721;
+ Mon, 27 Aug 2001 12:07:29 -0500 (CDT)
+ (envelope-from pgsql-general-owner+M14300@postgresql.org)
+Received: from svana.org (svana.org [210.9.66.30])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id f7RFE1f13269
+ for <pgsql-general@postgresql.org>; Mon, 27 Aug 2001 11:14:01 -0400 (EDT)
+ (envelope-from kleptog@svana.org)
+Received: from kleptog by svana.org with local (Exim 3.12 #1 (Debian))
+ id 15bO5x-0000Fd-00; Tue, 28 Aug 2001 01:14:33 +1000
+Date: Tue, 28 Aug 2001 01:14:33 +1000
+From: Martijn van Oosterhout <kleptog@svana.org>
+To: Andrew Snow <andrew@modulus.org>
+cc: pgsql-general@postgresql.org
+Subject: Re: [GENERAL] raw partition
+Message-ID: <20010828011433.E32309@svana.org>
+Reply-To: Martijn van Oosterhout <kleptog@svana.org>
+References: <20010827233815.B32309@svana.org> <000101c12f00$dc5814b0$fa01b5ca@avon>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+User-Agent: Mutt/1.2.5i
+In-Reply-To: <000101c12f00$dc5814b0$fa01b5ca@avon>; from andrew@modulus.org on Tue, Aug 28, 2001 at 12:02:08AM +1000
+Precedence: bulk
+Sender: pgsql-general-owner@postgresql.org
+Status: OR
+
+On Tue, Aug 28, 2001 at 12:02:08AM +1000, Andrew Snow wrote:
+>
+> What I think would be better would be moving postgresql to a system of
+> using memory-mapped I/O. instead of the shared buffer cache, files
+> would be directly memory-mapped and the OS would do the caching. I
+> can't see this happening though because of platform dependancy, but I
+> think its worth another look soon because many unix platforms support
+> mmap(). I think it would improve the performance of disk-intensive
+> tasks noticeably.
+
+Well, this has other problems. Consider tables that are larger than your
+system memory. You'd have to continuously map and unmap different sections.
+That can have odd side effects (witness mozilla on linux having 15,000
+mapped areas or so...)
+
+You would still however get the advantage that you wouldn't have to copy the
+data from the disk buffers to user space, you simply get the disk buffer
+mapped into your address space.
+
+I think that for commonly used tables that are under 100K in size (most of
+the system tables), this is quite a workable idea. If you don't mind keeping
+them mapped the whole time.
+
+--
+Martijn van Oosterhout <kleptog@svana.org>
+http://svana.org/kleptog/
+> It would be nice if someone came up with a certification system that
+> actually separated those who can barely regurgitate what they crammed over
+> the last few weeks from those who command secret ninja networking powers.
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+subscribe-nomail command to majordomo@postgresql.org so that your
+message can get through to the mailing list cleanly
+
+From pgsql-general-owner+M14319@postgresql.org Mon Aug 27 16:57:10 2001
+Return-path: <pgsql-general-owner+M14319@postgresql.org>
+Received: from server1.pgsql.org (server1.pgsql.org [64.39.15.238])
+ by candle.pha.pa.us (8.11.6/8.10.1) with ESMTP id f7RKv9F16849
+ for <pgman@candle.pha.pa.us>; Mon, 27 Aug 2001 16:57:09 -0400 (EDT)
+Received: from postgresql.org.org (webmail.postgresql.org [216.126.85.28])
+ by server1.pgsql.org (8.11.6/8.11.6) with ESMTP id f7RKv9q31456;
+ Mon, 27 Aug 2001 15:57:09 -0500 (CDT)
+ (envelope-from pgsql-general-owner+M14319@postgresql.org)
+Received: from sss.pgh.pa.us ([192.204.191.242])
+ by postgresql.org (8.11.3/8.11.4) with ESMTP id f7RJrsf55472
+ for <pgsql-general@postgresql.org>; Mon, 27 Aug 2001 15:53:54 -0400 (EDT)
+ (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+ by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id f7RJrGK19431;
+ Mon, 27 Aug 2001 15:53:16 -0400 (EDT)
+To: Martijn van Oosterhout <kleptog@svana.org>
+cc: Andrew Snow <andrew@modulus.org>, pgsql-general@postgresql.org
+Subject: Re: [GENERAL] raw partition
+In-Reply-To: <20010828011433.E32309@svana.org>
+References: <20010827233815.B32309@svana.org> <000101c12f00$dc5814b0$fa01b5ca@avon> <20010828011433.E32309@svana.org>
+Comments: In-reply-to Martijn van Oosterhout <kleptog@svana.org>
+ message dated "Tue, 28 Aug 2001 01:14:33 +1000"
+Date: Mon, 27 Aug 2001 15:53:15 -0400
+Message-ID: <19428.998941995@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-general-owner@postgresql.org
+Status: OR
+
+Martijn van Oosterhout <kleptog@svana.org> writes:
+> You would still however get the advantage that you wouldn't have to copy the
+> data from the disk buffers to user space, you simply get the disk buffer
+> mapped into your address space.
+
+AFAICS this would be the *only* advantage. While it's not negligible,
+it's quite unclear that it's worth the bookkeeping and portability
+headaches of managing lots of mmap'd areas, either.
+
+Before I take this idea seriously at all, I'd want to see a design that
+addresses a couple of critical issues:
+
+1. Postgres' shared buffers are *shared*, potentially across many
+processes. How will you deal with buffers for files that have been
+mmap'd by only some of the processes? (Maybe this means that the
+whole concept of shared buffers goes away, and each process does its
+own buffer management based on its own mmaps. Not sure. That would be
+a pretty radical restructuring though, and would completely invalidate
+our present approach to page-level locking.)
+
+2. How do you deal with extending a file? My system's mmap man page
+says
+ If the size of the mapped file changes after the call to mmap(), the
+ effect of references to portions of the mapped region that correspond
+ to added or removed portions of the file is unspecified.
+This suggests that the only portable way to cope is to issue a separate
+mmap for every disk page. Will typical Unix systems perform well with
+umpteen thousand small mmap requests?
+
+3. How do you persuade the other backends to drop their mmaps of a table
+you are deleting?
+
+There are probably other gotchas, but without an understanding of how
+to address these, I doubt it's worth looking further ...
+
+ regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 5: Have you checked our extensive FAQ?
+
+http://www.postgresql.org/users-lounge/docs/faq.html
+