Documentation ¶
Index ¶
- Variables
- type Checker
- func (checker *Checker) Close() error
- func (checker *Checker) IdentifyInjuredSegments(ctx context.Context) (err error)
- func (checker *Checker) IrreparableProcess(ctx context.Context) (err error)
- func (checker *Checker) RefreshReliabilityCache(ctx context.Context) error
- func (checker *Checker) Run(ctx context.Context) (err error)
- type Config
- type ReliabilityCache
- type RepairOverride
- type RepairOverrides
- type RepairOverridesMap
Constants ¶
This section is empty.
Variables ¶
var (
Error = errs.Class("checker error")
)
Error is a standard error class for this package.
Functions ¶
This section is empty.
Types ¶
type Checker ¶
type Checker struct { Loop *sync2.Cycle IrreparableLoop *sync2.Cycle // contains filtered or unexported fields }
Checker contains the information needed to do checks for missing pieces
architecture: Chore
func NewChecker ¶
func NewChecker(logger *zap.Logger, repairQueue queue.RepairQueue, irrdb irreparable.DB, metainfo *metainfo.Service, metaLoop *metainfo.Loop, overlay *overlay.Service, config Config) *Checker
NewChecker creates a new instance of checker.
func (*Checker) IdentifyInjuredSegments ¶
IdentifyInjuredSegments checks for missing pieces off of the metainfo and overlay.
func (*Checker) IrreparableProcess ¶
IrreparableProcess iterates over all items in the irreparabledb. If an item can now be repaired then it is added to a worker queue.
func (*Checker) RefreshReliabilityCache ¶
RefreshReliabilityCache forces refreshing node online status cache.
type Config ¶
type Config struct { Interval time.Duration `help:"how frequently checker should check for bad segments" releaseDefault:"30s" devDefault:"0h0m10s"` IrreparableInterval time.Duration `help:"how frequently irrepairable checker should check for lost pieces" releaseDefault:"30m" devDefault:"0h0m5s"` ReliabilityCacheStaleness time.Duration `help:"how stale reliable node cache can be" releaseDefault:"5m" devDefault:"5m"` RepairOverrides RepairOverrides `` /* 173-byte string literal not displayed */ // Node failure rate is an estimation based on a 6 hour checker run interval (4 checker iterations per day), a network of about 9200 nodes, and about 2 nodes churning per day. // This results in `2/9200/4 = 0.00005435` being the probability of any single node going down in the interval of one checker iteration. NodeFailureRate float64 `help:"the probability of a single node going down within the next checker iteration" default:"0.00005435"` }
Config contains configurable values for checker.
type ReliabilityCache ¶
type ReliabilityCache struct {
// contains filtered or unexported fields
}
ReliabilityCache caches the reliable nodes for the specified staleness duration and updates automatically from overlay.
architecture: Service
func NewReliabilityCache ¶
func NewReliabilityCache(overlay *overlay.Service, staleness time.Duration) *ReliabilityCache
NewReliabilityCache creates a new reliability checking cache.
func (*ReliabilityCache) LastUpdate ¶
func (cache *ReliabilityCache) LastUpdate() time.Time
LastUpdate returns when the cache was last updated.
func (*ReliabilityCache) MissingPieces ¶
func (cache *ReliabilityCache) MissingPieces(ctx context.Context, created time.Time, pieces []*pb.RemotePiece) (_ []int32, err error)
MissingPieces returns piece indices that are unreliable with the given staleness period.
type RepairOverride ¶ added in v1.18.1
RepairOverride is a configuration struct that contains an override repair value for a given RS k/o/n (min/success/total).
Can be used as a flag.
func (*RepairOverride) Set ¶ added in v1.18.1
func (ro *RepairOverride) Set(s string) error
Set sets the value from a string in the format k/o/n-override (min/optimal/total-repairOverride).
func (*RepairOverride) String ¶ added in v1.18.1
func (ro *RepairOverride) String() string
String is required for pflag.Value.
func (RepairOverride) Type ¶ added in v1.18.1
func (RepairOverride) Type() string
Type implements pflag.Value.
type RepairOverrides ¶ added in v1.18.1
type RepairOverrides struct {
List []RepairOverride
}
RepairOverrides is a configuration struct that contains a list of override repair values for various given RS combinations of k/o/n (min/success/total).
Can be used as a flag.
func (*RepairOverrides) GetMap ¶ added in v1.18.1
func (ros *RepairOverrides) GetMap() RepairOverridesMap
GetMap creates a RepairOverridesMap from the config.
func (*RepairOverrides) Set ¶ added in v1.18.1
func (ros *RepairOverrides) Set(s string) error
Set sets the value from a string in the format "k/o/n-override,k/o/n-override,...".
func (*RepairOverrides) String ¶ added in v1.18.1
func (ros *RepairOverrides) String() string
String is required for pflag.Value. It is a comma separated list of RepairOverride configs.
func (RepairOverrides) Type ¶ added in v1.18.1
func (RepairOverrides) Type() string
Type implements pflag.Value.
type RepairOverridesMap ¶ added in v1.18.1
type RepairOverridesMap struct {
// contains filtered or unexported fields
}
RepairOverridesMap is derived from the RepairOverrides config, and is used for quickly retrieving repair override values.
func (*RepairOverridesMap) GetOverrideValue ¶ added in v1.18.1
func (rom *RepairOverridesMap) GetOverrideValue(rs storj.RedundancyScheme) int32
GetOverrideValue returns the override value for an RS scheme if it exists, or 0 otherwise.
func (*RepairOverridesMap) GetOverrideValuePB ¶ added in v1.18.1
func (rom *RepairOverridesMap) GetOverrideValuePB(rs *pb.RedundancyScheme) int32
GetOverrideValuePB returns the override value for a pb RS scheme if it exists, or 0 otherwise.