Add automatic garbage collection
Nix can now automatically run the garbage collector during builds or while adding paths to the store. The option "min-free = <bytes>" specifies that Nix should run the garbage collector whenever free space in the Nix store drops below <bytes>. It will then delete garbage until "max-free" bytes are available. Garbage collection during builds is asynchronous; running builds are not paused and new builds are not blocked. However, there also is a synchronous GC run prior to the first build/substitution. Currently, no old GC roots are deleted (as in "nix-collect-garbage -d").
This commit is contained in:
		
							parent
							
								
									b932ea58ec
								
							
						
					
					
						commit
						0b606aad46
					
				
					 6 changed files with 127 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -4,8 +4,9 @@
 | 
			
		|||
#include "config.hh"
 | 
			
		||||
 | 
			
		||||
#include <map>
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <limits>
 | 
			
		||||
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
 | 
			
		||||
namespace nix {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -342,6 +343,13 @@ public:
 | 
			
		|||
 | 
			
		||||
    Setting<Strings> hashedMirrors{this, {"http://tarballs.nixos.org/"}, "hashed-mirrors",
 | 
			
		||||
        "A list of servers used by builtins.fetchurl to fetch files by hash."};
 | 
			
		||||
 | 
			
		||||
    Setting<uint64_t> minFree{this, 0, "min-free",
 | 
			
		||||
        "Automatically run the garbage collector when free disk space drops below the specified amount."};
 | 
			
		||||
 | 
			
		||||
    Setting<uint64_t> maxFree{this, std::numeric_limits<uint64_t>::max(), "max-free",
 | 
			
		||||
        "Stop deleting garbage when free disk space is above the specified amount."};
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue