cm

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Dec 29, 2020 License: Apache-2.0 Imports: 4 Imported by: 6

Documentation

Overview

Package cm implements the Cormode-Muthukrishnan algorithm for computing biased quantiles over data streams from "Effective Computation of Biased Quantiles over Data Streams" and is largely based on statsite's implementation in C: https://github.com/statsite/statsite/blob/master/src/cm_quantile.c

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Options

type Options interface {
	// SetEps sets the desired epsilon for errors.
	SetEps(value float64) Options

	// Eps returns the desired epsilon for errors.
	Eps() float64

	// SetCapacity sets the initial heap capacity.
	SetCapacity(value int) Options

	// Capacity returns the initial heap capacity.
	Capacity() int

	// SetInsertAndCompressEvery sets how frequently the timer values are
	// inserted into the stream and compressed to reduce write latency for
	// high frequency timers.
	SetInsertAndCompressEvery(value int) Options

	// InsertAndCompressEvery returns how frequently the timer values are
	// inserted into the stream and compressed to reduce write latency for
	// high frequency timers.
	InsertAndCompressEvery() int

	// SetFlushEvery sets how frequently the underlying stream is flushed
	// to reduce processing time when computing aggregated statistics from
	// the stream.
	SetFlushEvery(value int) Options

	// FlushEvery returns how frequently the underlying stream is flushed
	// to reduce processing time when computing aggregated statistics from
	// the stream.
	FlushEvery() int

	// SetStreamPool sets the stream pool.
	SetStreamPool(value StreamPool) Options

	// StreamPool returns the stream pool.
	StreamPool() StreamPool

	// SetSamplePool sets the sample pool.
	SetSamplePool(value SamplePool) Options

	// SamplePool returns the sample pool.
	SamplePool() SamplePool

	// SetFloatsPool sets the floats pool.
	SetFloatsPool(value pool.FloatsPool) Options

	// FloatsPool returns the floats pool.
	FloatsPool() pool.FloatsPool

	// Validate validates the options.
	Validate() error
}

Options represent various options for computing quantiles.

func NewOptions

func NewOptions() Options

NewOptions creates a new options.

type Sample

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

Sample represents a sampled value.

type SamplePool

type SamplePool interface {
	// Init initializes the pool.
	Init()

	// Get gets a sample from the pool.
	Get() *Sample

	// Put returns a sample to the pool.
	Put(sample *Sample)
}

SamplePool is a pool of samples.

func NewSamplePool

func NewSamplePool(opts pool.ObjectPoolOptions) SamplePool

NewSamplePool creates a new pool for samples.

type Stream

type Stream interface {
	// Add adds a sample value.
	Add(value float64)

	// Flush flushes the internal buffer.
	Flush()

	// Min returns the minimum value.
	Min() float64

	// Max returns the maximum value.
	Max() float64

	// Quantile returns the quantile value.
	Quantile(q float64) float64

	// Close closes the stream.
	Close()

	// ResetSetData resets the stream and sets data.
	ResetSetData(quantiles []float64)
}

Stream represents a data sample stream for floating point numbers.

func NewStream

func NewStream(quantiles []float64, opts Options) Stream

NewStream creates a new sample stream.

type StreamAlloc

type StreamAlloc func() Stream

StreamAlloc allocates a stream.

type StreamPool

type StreamPool interface {
	// Init initializes the pool.
	Init(alloc StreamAlloc)

	// Get provides a stream from the pool.
	Get() Stream

	// Put returns a stream to the pool.
	Put(value Stream)
}

StreamPool provides a pool for streams.

func NewStreamPool

func NewStreamPool(opts pool.ObjectPoolOptions) StreamPool

NewStreamPool creates a new pool for streams.

Jump to

Keyboard shortcuts

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