[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-tar] Use posix_fadvise to improve archive creation performance
From: |
Mark |
Subject: |
Re: [Bug-tar] Use posix_fadvise to improve archive creation performance |
Date: |
Tue, 4 Apr 2017 14:14:13 +0100 |
User-agent: |
SquirrelMail/1.4.21 |
On Mon, April 3, 2017 03:17, Paul Eggert wrote:
> I've lost context. I prefer not having this depend on an environment
> variable.
>
> Can't the filesystem in question be fixed to have decent performance in
> the typical case where applications access files sequentially? It's not
> like 'tar' is a special case. I'd hate to have to modify lots of
> programs just to work around a lame filesystem.
I think you're confusing two things:
- Carlo's patch
- The suggestion to allow the user to tell tar to use POSIX_FADV_NOREUSE
and/or POSIX_FADV_DONTNEED. In certain scenarios one, both or neither of
those could perform best. [On Linux POSIX_FADV_NOREUSE is currently a
no-op.]
Let's ignore the second point for now.
Carlo's patch at
https://github.com/CAFxX/tar/commit/8b3ccb099c6ddf9f03d12d1f7c433c7927b964d5
uses
posix_fadvise(fd, offset, len, POSIX_FADV_SEQUENTIAL);
posix_fadvise(fd, offset, len, POSIX_FADV_WILLNEED);
to give a hint to the OS/filesystem about how the file will be accessed.
There shouldn't be any down-side to doing that. On Linux for example,
POSIX_FADV_SEQUENTIAL causes the filesystem read-ahead amount to be
doubled.
I'm not qualified to say whether the patch should be committed as-is, but
the principle is sound. [I might choose a different name for the
prefetch() function though.]