Documentation ¶
Index ¶
- Variables
- func DeleteFile(path, filename string) error
- func SaveRequest(path, filename string, request *pb.RetainRequest) error
- type Config
- type Queue
- type Request
- type RequestStore
- func (store *RequestStore) Add(satelliteID storj.NodeID, pbReq *pb.RetainRequest) (bool, error)
- func (store *RequestStore) Data() map[storj.NodeID]Request
- func (store *RequestStore) DeleteCache(req Request) error
- func (store *RequestStore) Len() int
- func (store *RequestStore) Next() (Request, bool)
- func (store *RequestStore) Remove(req Request) bool
- type Service
- type Status
Constants ¶
This section is empty.
Variables ¶
var ( // Error is the default error class for retain errors. Error = errs.Class("retain") )
Functions ¶
func DeleteFile ¶ added in v1.101.1
DeleteFile removes a file from the filesystem.
func SaveRequest ¶ added in v1.101.1
func SaveRequest(path, filename string, request *pb.RetainRequest) error
SaveRequest stores the request to the filesystem.
Types ¶
type Config ¶
type Config struct { MaxTimeSkew time.Duration `help:"allows for small differences in the satellite and storagenode clocks" default:"72h0m0s"` Status Status `` /* 143-byte string literal not displayed */ Concurrency int `help:"how many concurrent retain requests can be processed at the same time." default:"1"` CachePath string `help:"path to the cache directory for retain requests." default:"$CONFDIR/retain"` }
Config defines parameters for the retain service.
type Queue ¶ added in v1.101.1
type Queue interface { // Add adds a request to the queue. Add(satelliteID storj.NodeID, request *pb.RetainRequest) (bool, error) // Remove removes a request from the queue. // Returns true if there was a request to remove. Remove(request Request) bool // Next returns the next request from the queue. Next() (Request, bool) // Len returns the number of requests in the queue. Len() int // DeleteCache removes the request from the queue and deletes the cache file. DeleteCache(request Request) error }
Queue manages the retain requests queue.
type Request ¶
type Request struct { Filename string SatelliteID storj.NodeID CreatedBefore time.Time Filter *bloomfilter.Filter }
Request contains all the info necessary to process a retain request.
func (*Request) GetFilename ¶ added in v1.106.1
GetFilename returns the filename used to store the request in the cache directory.
type RequestStore ¶ added in v1.101.1
type RequestStore struct {
// contains filtered or unexported fields
}
RequestStore is a cache of requests to retain pieces.
func NewRequestStore ¶ added in v1.101.1
func NewRequestStore(path string) (RequestStore, error)
NewRequestStore loads the request caches from disk.
func (*RequestStore) Add ¶ added in v1.101.1
func (store *RequestStore) Add(satelliteID storj.NodeID, pbReq *pb.RetainRequest) (bool, error)
Add adds a request to the store. It returns true if the request was added, and an error if the file could not be saved.
func (*RequestStore) Data ¶ added in v1.101.1
func (store *RequestStore) Data() map[storj.NodeID]Request
Data returns the data in the store.
func (*RequestStore) DeleteCache ¶ added in v1.101.1
func (store *RequestStore) DeleteCache(req Request) error
DeleteCache removes the request from the store and deletes the cache file.
func (*RequestStore) Len ¶ added in v1.101.1
func (store *RequestStore) Len() int
Len returns the number of requests in the store.
func (*RequestStore) Next ¶ added in v1.101.1
func (store *RequestStore) Next() (Request, bool)
Next returns the next request from the store.
func (*RequestStore) Remove ¶ added in v1.101.1
func (store *RequestStore) Remove(req Request) bool
Remove removes a request from the queue. It returns true if the request was found in the queue. It does not remove the cache file from the filesystem.
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Service queues and processes retain requests from satellites.
architecture: Worker
func NewService ¶
NewService creates a new retain service.
func (*Service) Close ¶ added in v0.20.0
Close causes any pending Run to exit and waits for any retain requests to clean up.
func (*Service) Queue ¶
Queue adds a retain request to the queue. true is returned if the request is added to the queue, false if queue is closed.
func (*Service) TestWaitUntilEmpty ¶ added in v0.20.0
func (s *Service) TestWaitUntilEmpty()
TestWaitUntilEmpty blocks until the queue and working is empty. When Run exits, it empties the queue.
func (*Service) TestingHowManyQueued ¶ added in v1.100.2
TestingHowManyQueued peeks at the number of bloom filters queued.
type Status ¶
type Status uint32
Status is a type defining the enabled/disabled status of retain requests.
const ( // Disabled means we do not do anything with retain requests. Disabled Status = iota + 1 // Enabled means we fully enable retain requests and delete data not defined by bloom filter. Enabled // Debug means we partially enable retain requests, and print out pieces we should delete, without actually deleting them. Debug )