public FullTestPruner( IFullPruningDb pruningDb, IPruningTrigger pruningTrigger, IPruningConfig pruningConfig, IBlockTree blockTree, IStateReader stateReader, ILogManager logManager) : base(pruningDb, pruningTrigger, pruningConfig, blockTree, stateReader, logManager) { }
public FullPruner( IFullPruningDb fullPruningDb, IPruningTrigger pruningTrigger, IPruningConfig pruningConfig, IBlockTree blockTree, IStateReader stateReader, ILogManager logManager) { _fullPruningDb = fullPruningDb; _pruningTrigger = pruningTrigger; _pruningConfig = pruningConfig; _blockTree = blockTree; _stateReader = stateReader; _logManager = logManager; _pruningTrigger.Prune += OnPrune; _logger = _logManager.GetClassLogger(); _minimumPruningDelay = TimeSpan.FromHours(_pruningConfig.FullPruningMinimumDelayHours); }
private static void InitializeFullPruning( IPruningConfig pruningConfig, IInitConfig initConfig, INethermindApi api, IStateReader stateReader) { IPruningTrigger CreateAutomaticTrigger(string dbPath) { long threshold = pruningConfig.FullPruningThresholdMb.MB(); switch (pruningConfig.FullPruningTrigger) { case FullPruningTrigger.StateDbSize: return(new PathSizePruningTrigger(dbPath, threshold, api.TimerFactory, api.FileSystem)); case FullPruningTrigger.VolumeFreeSpace: return(new DiskFreeSpacePruningTrigger(dbPath, threshold, api.TimerFactory, api.FileSystem)); default: return(null); } } if (pruningConfig.Mode.IsFull()) { IDb stateDb = api.DbProvider !.StateDb; if (stateDb is IFullPruningDb fullPruningDb) { IPruningTrigger pruningTrigger = CreateAutomaticTrigger(fullPruningDb.GetPath(initConfig.BaseDbPath)); if (pruningTrigger is not null) { api.PruningTrigger.Add(pruningTrigger); } FullPruner pruner = new(fullPruningDb, api.PruningTrigger, pruningConfig, api.BlockTree !, stateReader, api.LogManager); api.DisposeStack.Push(pruner); } } }
public FullPruner( IFullPruningDb fullPruningDb, IPruningTrigger pruningTrigger, IPruningConfig pruningConfig, IBlockTree blockTree, IStateReader stateReader, ILogManager logManager) { _fullPruningDb = fullPruningDb; _pruningTrigger = pruningTrigger; _pruningConfig = pruningConfig; _blockTree = blockTree; _stateReader = stateReader; _logManager = logManager; _pruningTrigger.Prune += OnPrune; _logger = _logManager.GetClassLogger(); _minimumPruningDelay = TimeSpan.FromHours(_pruningConfig.FullPruningMinimumDelayHours); if (_pruningConfig.FullPruningCompletionBehavior != FullPruningCompletionBehavior.None) { _fullPruningDb.PruningFinished += HandlePruningFinished; } }
/// <summary> /// Adds new <see cref="IPruningTrigger"/> to the be watched."/> /// </summary> /// <param name="trigger">trigger to be watched</param> public void Add(IPruningTrigger trigger) { trigger.Prune += OnPrune; }