sha1_file: stop opening files with O_NOATIME
commitb4d065df03049bacfbc40467b60b13e804b7d289
authorJunio C Hamano <gitster@pobox.com>
Fri, 28 Oct 2016 13:29:27 +0000 (28 06:29 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 3 Nov 2016 02:34:41 +0000 (2 19:34 -0700)
tree74c0a99340ca989cec2ae69dba29045026b0aa1b
parent1e3001a8e2386a1433d1769a5a78007596bbc04d
sha1_file: stop opening files with O_NOATIME

When we open object files, we try to do so with O_NOATIME.
This dates back to 144bde78e9 (Use O_NOATIME when opening
the sha1 files., 2005-04-23), which is an optimization to
avoid creating a bunch of dirty inodes when we're accessing
many objects.  But a few things have changed since then:

  1. In June 2005, git learned about packfiles, which means
     we would do a lot fewer atime updates (rather than one
     per object access, we'd generally get one per packfile).

  2. In late 2006, Linux learned about "relatime", which is
     generally the default on modern installs. So
     performance around atimes updates is a non-issue there
     these days.

     All the world isn't Linux, but as it turns out, Linux
     is the only platform to implement O_NOATIME in the
     first place.

So it's very unlikely that this code is helping anybody
these days.

Helped-by: Jeff King <peff@peff.net>
[jc: took idea and log message from peff]
Signed-off-by: Junio C Hamano <gitster@pobox.com>
cache.h
sha1_file.c