Documentation ¶
Overview ¶
Package hh implements a hinted handoff for writes
Index ¶
Constants ¶
View Source
const ( // DefaultMaxSize is the default maximum size of all hinted handoff queues in bytes. DefaultMaxSize = 1024 * 1024 * 1024 // DefaultMaxAge is the default maximum amount of time that a hinted handoff write // can stay in the queue. After this time, the write will be purged. DefaultMaxAge = 7 * 24 * time.Hour // DefaultRetryRateLimit is the default rate that hinted handoffs will be retried. // The rate is in bytes per second and applies across all nodes when retried. A // value of 0 disables the rate limit. DefaultRetryRateLimit = 0 // DefaultRetryInterval is the default amount of time the system waits before // attempting to flush hinted handoff queues. With each failure of a hinted // handoff write, this retry interval increases exponentially until it reaches // the maximum DefaultRetryInterval = time.Second // DefaultRetryMaxInterval is the maximum the hinted handoff retry interval // will ever be. DefaultRetryMaxInterval = time.Minute )
Variables ¶
View Source
var ( ErrNotOpen = fmt.Errorf("queue not open") ErrQueueFull = fmt.Errorf("queue is full") ErrSegmentFull = fmt.Errorf("segment is full") )
View Source
var ErrHintedHandoffDisabled = fmt.Errorf("hinted handoff disabled")
Functions ¶
func NewRateLimiter ¶
func NewRateLimiter(limit int64) *limiter
NewRateLimiter returns a new limiter configured to restrict a process to the limit per second. limit is the maximum amount that can be used per second. The limit should be > 0. A limit <= 0, will not limit the processes.
Types ¶
type Config ¶
type Config struct { Enabled bool `toml:"enabled"` Dir string `toml:"dir"` MaxSize int64 `toml:"max-size"` MaxAge toml.Duration `toml:"max-age"` RetryRateLimit int64 `toml:"retry-rate-limit"` RetryInterval toml.Duration `toml:"retry-interval"` RetryMaxInterval toml.Duration `toml:"retry-max-interval"` }
type Processor ¶
func NewProcessor ¶
func NewProcessor(dir string, writer shardWriter, metastore metaStore, options ProcessorOptions) (*Processor, error)
func (*Processor) PurgeInactiveOlderThan ¶
type ProcessorOptions ¶
type Service ¶
type Service struct { Logger *log.Logger ShardWriter shardWriter HintedHandoff interface { WriteShard(shardID, ownerID uint64, points []models.Point) error Process() error PurgeOlderThan(when time.Duration) error PurgeInactiveOlderThan(when time.Duration) error } // contains filtered or unexported fields }
func NewService ¶
NewService returns a new instance of Service.
Click to show internal directories.
Click to hide internal directories.