From: | Claudio Freire <klaussfreire(at)gmail(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Oskari Saarenmaa <os(at)ohmu(dot)fi>, PostgreSQL-Dev <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Use pread and pwrite instead of lseek + write and read |
Date: | 2016-08-17 18:58:41 |
Message-ID: | CAGTBQpZ2gVwFrCe=Fu_FNP0vrefndb6tqChPy2=MQHgMuDcbrQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Wed, Aug 17, 2016 at 10:40 AM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Oskari Saarenmaa <os(at)ohmu(dot)fi> writes:
>> On my laptop a simple pgbench run (scale 100, 15 minutes) shows a 1.5%
>> performance improvement.
>
> I would have hoped for a lot better result before anyone would propose
> that we should deal with all the portability issues this'll create.
>
>> A 1.5% performance improvement is small but
>> measurable - and IMV more importantly it allows us to drop more than 100
>> lines of backwards (compatible?) code; maybe we could start targeting
>> more recent platforms in v10?
>
> That's basically nonsense: we'll end up adding way more than that to
> deal with platforms that haven't got these APIs.
Perhaps a better target would then be to try and make use of readv and
writev, which should both be useful for sequential access of various
kinds and network I/O. For instance, when reading 10 sequential
buffers, a readv could fill 10 buffers at a time.
I remember a project where we got a linear improvement in thoughput by
using them for network I/O, because we were limited by packet
thoughput rather than byte thoughput, and using the iovec utilities
reduced the overhead considerably.
But all this is anecdotal evidence in any case, YMMV.
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2016-08-17 19:11:15 | Re: Use pread and pwrite instead of lseek + write and read |
Previous Message | Robert Haas | 2016-08-17 18:53:40 | Re: PATCH: Exclude additional directories in pg_basebackup |