mirror of
https://github.com/minio/minio.git
synced 2024-12-25 22:55:54 -05:00
apply healing per object at 1024 cycles (#18050)
- we already have MRF for most recent failures - we trigger healing during HEAD/GET operation These are enough, also change the default max wait from 5sec to 1sec for default scanner speed.
This commit is contained in:
parent
c5279ec630
commit
2add57cfed
@ -55,10 +55,9 @@ const (
|
|||||||
dataScannerStartDelay = 1 * time.Minute // Time to wait on startup and between cycles.
|
dataScannerStartDelay = 1 * time.Minute // Time to wait on startup and between cycles.
|
||||||
|
|
||||||
healDeleteDangling = true
|
healDeleteDangling = true
|
||||||
healFolderIncludeProb = 32 // Include a clean folder one in n cycles.
|
healObjectSelectProb = 1024 // Overall probability of a file being scanned; one in n.
|
||||||
healObjectSelectProb = 512 // Overall probability of a file being scanned; one in n.
|
|
||||||
|
|
||||||
dataScannerExcessiveVersionsThreshold = 1000 // Issue a warning when a single object has more versions than this
|
dataScannerExcessiveVersionsThreshold = 100 // Issue a warning when a single object has more versions than this
|
||||||
dataScannerExcessiveFoldersThreshold = 50000 // Issue a warning when a folder has more subfolders than this in a *set*
|
dataScannerExcessiveFoldersThreshold = 50000 // Issue a warning when a folder has more subfolders than this in a *set*
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -66,7 +65,7 @@ var (
|
|||||||
globalHealConfig heal.Config
|
globalHealConfig heal.Config
|
||||||
|
|
||||||
// Sleeper values are updated when config is loaded.
|
// Sleeper values are updated when config is loaded.
|
||||||
scannerSleeper = newDynamicSleeper(10, 10*time.Second, true)
|
scannerSleeper = newDynamicSleeper(2, time.Second, true) // Keep defaults same as config defaults
|
||||||
scannerCycle = uatomic.NewDuration(dataScannerStartDelay)
|
scannerCycle = uatomic.NewDuration(dataScannerStartDelay)
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -274,7 +273,6 @@ type folderScanner struct {
|
|||||||
// rarer if the bloom filter for the path is clean and no lifecycles are applied.
|
// rarer if the bloom filter for the path is clean and no lifecycles are applied.
|
||||||
// Skipped leaves have their totals transferred from the previous cycle.
|
// Skipped leaves have their totals transferred from the previous cycle.
|
||||||
//
|
//
|
||||||
// A clean leaf will be included once every healFolderIncludeProb for partial heal scans.
|
|
||||||
// When selected there is a one in healObjectSelectProb that any object will be chosen for heal scan.
|
// When selected there is a one in healObjectSelectProb that any object will be chosen for heal scan.
|
||||||
//
|
//
|
||||||
// Compaction happens when either:
|
// Compaction happens when either:
|
||||||
|
@ -99,7 +99,7 @@ func LookupConfig(kvs config.KVS) (cfg Config, err error) {
|
|||||||
case "fast":
|
case "fast":
|
||||||
cfg.Delay, cfg.MaxWait, cfg.Cycle = 1, 100*time.Millisecond, time.Minute
|
cfg.Delay, cfg.MaxWait, cfg.Cycle = 1, 100*time.Millisecond, time.Minute
|
||||||
case "default":
|
case "default":
|
||||||
cfg.Delay, cfg.MaxWait, cfg.Cycle = 2, 5*time.Second, time.Minute
|
cfg.Delay, cfg.MaxWait, cfg.Cycle = 2, time.Second, time.Minute
|
||||||
case "slow":
|
case "slow":
|
||||||
cfg.Delay, cfg.MaxWait, cfg.Cycle = 10, 15*time.Second, time.Minute
|
cfg.Delay, cfg.MaxWait, cfg.Cycle = 10, 15*time.Second, time.Minute
|
||||||
case "slowest":
|
case "slowest":
|
||||||
|
Loading…
Reference in New Issue
Block a user