Help us shape the future of Go! Take the 2026 Go Developer Survey

hh

package
v0.9.2 Latest Latest
Warning

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

Go to latest
Published: Jul 24, 2015 License: MIT Imports: 12 Imported by: 0

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 amout of time the system waits before
	// attempting to flush hinted handoff queues.
	DefaultRetryInterval = time.Second
)

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"`
}

func NewConfig

func NewConfig() Config

type Processor

type Processor struct {
	Logger *log.Logger
	// contains filtered or unexported fields
}

func NewProcessor

func NewProcessor(dir string, writer shardWriter, options ProcessorOptions) (*Processor, error)

func (*Processor) Process

func (p *Processor) Process() error

func (*Processor) PurgeOlderThan

func (p *Processor) PurgeOlderThan(when time.Duration) error

func (*Processor) WriteShard

func (p *Processor) WriteShard(shardID, ownerID uint64, points []tsdb.Point) error

type ProcessorOptions

type ProcessorOptions struct {
	MaxSize        int64
	RetryRateLimit int64
}

type Service

type Service struct {
	Logger *log.Logger

	ShardWriter shardWriter

	HintedHandoff interface {
		WriteShard(shardID, ownerID uint64, points []tsdb.Point) error
		Process() error
		PurgeOlderThan(when time.Duration) error
	}
	// contains filtered or unexported fields
}

func NewService

func NewService(c Config, w shardWriter) *Service

NewService returns a new instance of Service.

func (*Service) Close

func (s *Service) Close() error

func (*Service) Open

func (s *Service) Open() error

func (*Service) SetLogger

func (s *Service) SetLogger(l *log.Logger)

SetLogger sets the internal logger to the logger passed in.

func (*Service) WriteShard

func (s *Service) WriteShard(shardID, ownerID uint64, points []tsdb.Point) error

WriteShard queues the points write for shardID to node ownerID to handoff queue

Jump to

Keyboard shortcuts

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