repairer

package
v0.20.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 4, 2019 License: AGPL-3.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	Error = errs.Class("repairer error")
)

Error is a standard error class for this package.

View Source
var IrreparableError = errs.Class("irreparable error")

IrreparableError is the errs class of irreparable segment errors

Functions

This section is empty.

Types

type Config

type Config struct {
	MaxRepair                     int           `help:"maximum segments that can be repaired concurrently" releaseDefault:"5" devDefault:"1"`
	Interval                      time.Duration `help:"how frequently repairer should try and repair more data" releaseDefault:"1h" devDefault:"0h5m0s"`
	Timeout                       time.Duration `help:"time limit for uploading repaired pieces to new storage nodes" devDefault:"10m0s" releaseDefault:"2h"`
	MaxBufferMem                  memory.Size   `help:"maximum buffer memory (in bytes) to be allocated for read buffers" default:"4M"`
	MaxExcessRateOptimalThreshold float64       `` /* 135-byte string literal not displayed */
}

Config contains configurable values for repairer

type SegmentRepairer

type SegmentRepairer struct {
	// contains filtered or unexported fields
}

SegmentRepairer for segments

func NewSegmentRepairer

func NewSegmentRepairer(
	log *zap.Logger, metainfo *metainfo.Service, orders *orders.Service,
	overlay *overlay.Service, ec ecclient.Client, timeout time.Duration,
	excessOptimalThreshold float64,
) *SegmentRepairer

NewSegmentRepairer creates a new instance of SegmentRepairer.

excessPercentageOptimalThreshold is the percentage to apply over the optimal threshould to determine the maximum limit of nodes to upload repaired pieces, when negative, 0 is applied.

func (*SegmentRepairer) Repair

func (repairer *SegmentRepairer) Repair(ctx context.Context, path storj.Path) (shouldDelete bool, err error)

Repair retrieves an at-risk segment and repairs and stores lost pieces on new nodes note that shouldDelete is used even in the case where err is not null

type Service

type Service struct {
	Limiter *sync2.Limiter
	Loop    sync2.Cycle
	// contains filtered or unexported fields
}

Service contains the information needed to run the repair service

func NewService

func NewService(log *zap.Logger, queue queue.RepairQueue, config *Config, interval time.Duration, concurrency int, transport transport.Client, metainfo *metainfo.Service, orders *orders.Service, cache *overlay.Service) *Service

NewService creates repairing service

func (*Service) Close

func (service *Service) Close() error

Close closes resources

func (*Service) Run

func (service *Service) Run(ctx context.Context) (err error)

Run runs the repairer service

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL