Re: performance: use pread instead of lseek+read

From: Manfred Spraul <manfred(at)colorfullife(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-patches(at)postgresql(dot)org
Subject: Re: performance: use pread instead of lseek+read
Date: 2003-02-25 06:35:13
Message-ID: 3E5B0EA1.6050805@colorfullife.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-patches

Tom Lane wrote:

>Manfred Spraul <manfred(at)colorfullife(dot)com> writes:
>
>
>>Tom Lane wrote:
>>
>>
>>>It seems unlikely to me that eliminating lseek on some platforms would
>>>be worth the hassle of maintaining two code paths. lseek is mighty
>>>cheap as system calls go.
>>>
>>>
>>>
>>It was considered expensive enough to write a syscall avoidance layer
>>that caches the file pointer and skips lseek if fpos==offset.
>>
>>
>
>You're missing the point: that layer is mostly there to ensure that we
>don't foul up the kernel's readahead recognition for sequential fetches.
>It's nice that Linux doesn't care, but Linux is not the only platform
>we worry about.
>
>
Do you know that empty lseeks foul up readahead recognition on some OS?
If yes, which OS? I've checked FreeBSD and Linux, they don't do it.

Actually I would be really surprised if pread would cause readahead
problems - for example samba uses it if possible.

What about my other questions:
- which benchmark would be interesting?
- which OS did you use when you got 'no manpage for pread'?

--
Manfred

In response to

Responses

Browse pgsql-patches by date

  From Date Subject
Next Message Karel Zak 2003-02-25 08:38:54 Re: to_char PL/MI fix
Previous Message Tom Lane 2003-02-24 23:41:23 Re: performance: use pread instead of lseek+read