Re: Re: New Linux xfs/reiser file systems

Bruce Momjian <pgman@candle.pha.pa.us>

From: Bruce Momjian <pgman@candle.pha.pa.us>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Matthew Kirkwood <matthew@hairy.beasts.org>, Hackers List <pgsql-hackers@postgresql.org>
Date: 2001-05-03T15:42:18Z
Lists: pgsql-hackers
> Matthew Kirkwood <matthew@hairy.beasts.org> writes:
> > From some stracing of 7.1, the most common syscall issued by
> > postgres is an lseek() to the end of the file, presumably to
> > find its length, which seems to happen up to about a dozen
> > times per (pgbench) transaction.
> 
> > Tablespaces would solve this (not that lseek is a particularly
> > expensive operation, of course).
> 
> No, they wouldn't; or at least they'd just create a different problem.
> The reason for the lseek is that the file length may have changed since
> the current backend last checked it.  To avoid lseek we'd need some
> shared data structure that maintains the current length of every active
> table, which would be a nuisance to maintain and probably a source of
> contention delays.

Seems we should cache the file lengths somehow.  Not sure how to do it
because our file system cache is local to each backend.


> (Of course, such a data structure would just be the tip of the iceberg
> of what we'd have to maintain for ourselves if we couldn't depend on the
> kernel to do it for us.  Reimplementing a filesystem doesn't strike me
> as a profitable use of our time.)

Ditto.  The database is complicated enough.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026