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