Browse Source

use posix_fadvise for repo writes also

Thomas Waldmann 10 years ago
parent
commit
874f5c491b
1 changed files with 4 additions and 0 deletions
  1. 4 0
      attic/repository.py

+ 4 - 0
attic/repository.py

@@ -555,6 +555,10 @@ class LoggedIO(object):
         header = self.header_no_crc_fmt.pack(size, TAG_PUT)
         crc = self.crc_fmt.pack(crc32(data, crc32(id, crc32(header))) & 0xffffffff)
         fd.write(b''.join((crc, header, id, data)))
+        if hasattr(os, 'posix_fadvise'):  # python >= 3.3, only on UNIX
+            # tell the OS that it does not need to cache what we just wrote,
+            # avoids spoiling the cache for the OS and other processes.
+            os.posix_fadvise(fd.fileno(), 0, 0, os.POSIX_FADV_DONTNEED)
         self.offset += size
         return self.segment, offset