]> arthur.barton.de Git - bup.git/commit
hashsplit: use posix_fadvise(DONTNEED) when available.
authorAvery Pennarun <apenwarr@gmail.com>
Fri, 12 Mar 2010 22:18:20 +0000 (17:18 -0500)
committerAvery Pennarun <apenwarr@gmail.com>
Sat, 13 Mar 2010 02:18:12 +0000 (21:18 -0500)
commitdbc9e3ec44b765860e7769d2084c609dfa246230
tree47ce766e310f4cb3ef59bec646481de0c555220c
parent49611a965cc436095e257d572d51528477bcf52d
hashsplit: use posix_fadvise(DONTNEED) when available.

When reading through large disk images to back them up, we'll only end up
reading the data once, but it still takes up space in the kernel's disk
cache.  If you're backing up a whole disk full of stuff, that's bad news for
anything else running on your system, which will rapidly have its stuff
dumped out of cache to store a bunch of stuff bup will never look at again.

The posix_fadvise() call actually lets us tell the kernel we won't be using
this data anymore, thus greatly reducing our hit on the disk cache.

Theoretically it improves things, anyway.  I haven't been able to come up
with a really scientific way to test it, since of course *bup's* performance
is expected to be the same either way (we're only throwing away stuff we're
done using).  It really does throw things out of cache, though, so the rest
follows logically at least.
lib/bup/_hashsplit.c
lib/bup/hashsplit.py