nix-super/src/libstore
Eelco Dolstra 117670be57 Make the garbage collector more concurrent
Make the garbage collector more concurrent by deleting valid paths
outside the region where we're holding the global GC lock.  This
should greatly reduce the time during which new builds are blocked,
since the deletion accounts for the vast majority of the time spent in
the GC.

To ensure that this is safe, the valid paths are invalidated and
renamed to some arbitrary path while we're holding the lock.  This
ensures that we when we finally delete the path, it's not a (newly)
valid or locked path.
2012-03-26 20:43:33 +02:00
..
build.cc Set the close-on-exec flag on file descriptors 2012-03-05 20:29:00 +01:00
derivations.cc * Ouch. A store upgrade could cause a substituter to be triggered, 2011-09-12 09:07:43 +00:00
derivations.hh * Eliminate all uses of the global variable ‘store’ from libstore. 2011-08-31 21:11:50 +00:00
gc.cc Make the garbage collector more concurrent 2012-03-26 20:43:33 +02:00
globals.cc * Move initialisation of variables like nixConfDir from libmain to 2011-11-22 17:28:41 +00:00
globals.hh * Move initialisation of variables like nixConfDir from libmain to 2011-11-22 17:28:41 +00:00
local-store.cc Make the garbage collector more concurrent 2012-03-26 20:43:33 +02:00
local-store.hh Make the garbage collector more concurrent 2012-03-26 20:43:33 +02:00
Makefile.am Drop the externals directory 2012-03-18 23:54:57 +01:00
misc.cc * Oops. 2011-12-30 17:13:25 +00:00
misc.hh * Eliminate all uses of the global variable ‘store’ from libstore. 2011-08-31 21:11:50 +00:00
optimise-store.cc On Linux, make the Nix store really read-only by using the immutable bit 2012-02-15 01:31:56 +01:00
pathlocks.cc Set the close-on-exec flag on file descriptors 2012-03-05 20:29:00 +01:00
pathlocks.hh * Revert r19797, and use a simpler solution: just don't monitor build 2010-02-03 21:38:41 +00:00
references.cc Use data() instead of c_str() where appropriate 2012-02-09 18:27:45 +01:00
references.hh * Store the size of a store path in the database (to be precise, the 2010-11-16 17:11:46 +00:00
remote-store.cc Remove the --max-links GC option 2012-03-26 20:00:02 +02:00
remote-store.hh * Sync with the trunk. 2011-12-16 23:33:01 +00:00
schema.sql * Store the size of a store path in the database (to be precise, the 2010-11-16 17:11:46 +00:00
store-api.cc Remove the --max-links GC option 2012-03-26 20:00:02 +02:00
store-api.hh Remove the --max-links GC option 2012-03-26 20:00:02 +02:00
worker-protocol.hh * Sync with the trunk. 2011-12-16 23:33:01 +00:00