engine

package
v0.5.12 Latest Latest
Warning

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

Go to latest
Published: Apr 29, 2014 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MAX_SERIES_IN_RESPONSE = 10000
)
View Source
const MaxInt = int(^uint(0) >> 1)
View Source
const (
	POINT_BATCH_SIZE = 64
)

Variables

View Source
var (
	TRUE = true
)

Functions

func DivideOperator added in v0.5.0

func DivideOperator(elems []*parser.Value, fields []string, point *protocol.Point) (*protocol.FieldValue, error)

func Filter added in v0.5.0

func Filter(query *parser.SelectQuery, series *protocol.Series) (*protocol.Series, error)

func GetRegisteredAggregators added in v0.5.0

func GetRegisteredAggregators() (names []string)

used in testing to get a list of all aggregators

func GetValue added in v0.5.0

func GetValue(value *parser.Value, fields []string, point *protocol.Point) (*protocol.FieldValue, error)

func MinusOperator added in v0.5.0

func MinusOperator(elems []*parser.Value, fields []string, point *protocol.Point) (*protocol.FieldValue, error)

func MultiplyOperator added in v0.5.0

func MultiplyOperator(elems []*parser.Value, fields []string, point *protocol.Point) (*protocol.FieldValue, error)

func PlusOperator added in v0.5.0

func PlusOperator(elems []*parser.Value, fields []string, point *protocol.Point) (*protocol.FieldValue, error)

func SortInt64

func SortInt64(ints []int64)

Types

type AbstractAggregator added in v0.3.0

type AbstractAggregator struct {
	Aggregator
	// contains filtered or unexported fields
}

func (*AbstractAggregator) CalculateSummaries added in v0.5.8

func (self *AbstractAggregator) CalculateSummaries(state interface{})

func (*AbstractAggregator) InitializeFieldsMetadata added in v0.3.0

func (self *AbstractAggregator) InitializeFieldsMetadata(series *protocol.Series) error

type Aggregator

type Aggregator interface {
	AggregatePoint(state interface{}, p *protocol.Point) (interface{}, error)
	InitializeFieldsMetadata(series *protocol.Series) error
	GetValues(state interface{}) [][]*protocol.FieldValue
	CalculateSummaries(state interface{})
	ColumnNames() []string
}

func NewCompositeAggregator added in v0.0.6

func NewCompositeAggregator(left, right Aggregator) (Aggregator, error)

func NewCountAggregator

func NewCountAggregator(q *parser.SelectQuery, v *parser.Value, defaultValue *parser.Value) (Aggregator, error)

func NewCumulativeArithmeticAggregator

func NewCumulativeArithmeticAggregator(name string, value *parser.Value, initialValue float64, defaultValue *parser.Value, operation Operation) (Aggregator, error)

func NewDerivativeAggregator added in v0.0.8

func NewDerivativeAggregator(q *parser.SelectQuery, v *parser.Value, defaultValue *parser.Value) (Aggregator, error)

func NewDistinctAggregator

func NewDistinctAggregator(_ *parser.SelectQuery, value *parser.Value, defaultValue *parser.Value) (Aggregator, error)

func NewFirstAggregator added in v0.3.0

func NewFirstAggregator(_ *parser.SelectQuery, value *parser.Value, defaultValue *parser.Value) (Aggregator, error)

func NewFirstOrLastAggregator added in v0.3.0

func NewFirstOrLastAggregator(name string, v *parser.Value, isFirst bool, defaultValue *parser.Value) (Aggregator, error)

func NewHistogramAggregator added in v0.3.0

func NewHistogramAggregator(q *parser.SelectQuery, v *parser.Value, defaultValue *parser.Value) (Aggregator, error)

func NewLastAggregator added in v0.3.0

func NewLastAggregator(_ *parser.SelectQuery, value *parser.Value, defaultValue *parser.Value) (Aggregator, error)

func NewMaxAggregator

func NewMaxAggregator(_ *parser.SelectQuery, value *parser.Value, defaultValue *parser.Value) (Aggregator, error)

func NewMeanAggregator

func NewMeanAggregator(_ *parser.SelectQuery, value *parser.Value, defaultValue *parser.Value) (Aggregator, error)

func NewMedianAggregator

func NewMedianAggregator(_ *parser.SelectQuery, value *parser.Value, defaultValue *parser.Value) (Aggregator, error)

func NewMinAggregator

func NewMinAggregator(_ *parser.SelectQuery, value *parser.Value, defaultValue *parser.Value) (Aggregator, error)

func NewModeAggregator

func NewModeAggregator(_ *parser.SelectQuery, value *parser.Value, defaultValue *parser.Value) (Aggregator, error)

func NewPercentileAggregator

func NewPercentileAggregator(_ *parser.SelectQuery, value *parser.Value, defaultValue *parser.Value) (Aggregator, error)

func NewStandardDeviationAggregator added in v0.0.9

func NewStandardDeviationAggregator(q *parser.SelectQuery, v *parser.Value, defaultValue *parser.Value) (Aggregator, error)

func NewSumAggregator

func NewSumAggregator(_ *parser.SelectQuery, value *parser.Value, defaultValue *parser.Value) (Aggregator, error)

type AggregatorInitializer

type AggregatorInitializer func(*parser.SelectQuery, *parser.Value, *parser.Value) (Aggregator, error)

Initialize a new aggregator given the query, the function call of the aggregator and the default value that should be returned if the bucket doesn't have any points

type ArithmeticOperator added in v0.5.0

type ArithmeticOperator func(elems []*parser.Value, fields []string, point *protocol.Point) (*protocol.FieldValue, error)

type BooleanOperation added in v0.5.0

type BooleanOperation func(leftValue *protocol.FieldValue, rightValues []*protocol.FieldValue) (OperatorResult, error)

type CompositeAggregator added in v0.0.6

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

func (*CompositeAggregator) AggregatePoint added in v0.0.6

func (self *CompositeAggregator) AggregatePoint(state interface{}, p *protocol.Point) (interface{}, error)

func (*CompositeAggregator) CalculateSummaries added in v0.5.8

func (self *CompositeAggregator) CalculateSummaries(state interface{})

func (*CompositeAggregator) ColumnNames added in v0.3.0

func (self *CompositeAggregator) ColumnNames() []string

func (*CompositeAggregator) GetValues added in v0.3.0

func (self *CompositeAggregator) GetValues(state interface{}) [][]*protocol.FieldValue

func (*CompositeAggregator) InitializeFieldsMetadata added in v0.0.6

func (self *CompositeAggregator) InitializeFieldsMetadata(series *protocol.Series) error

type CompositeAggregatorState added in v0.5.11

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

type CountAggregator

type CountAggregator struct {
	AbstractAggregator
	// contains filtered or unexported fields
}

func (*CountAggregator) AggregatePoint

func (self *CountAggregator) AggregatePoint(state interface{}, p *protocol.Point) (interface{}, error)

func (*CountAggregator) ColumnNames added in v0.3.0

func (self *CountAggregator) ColumnNames() []string

func (*CountAggregator) GetValues added in v0.3.0

func (self *CountAggregator) GetValues(state interface{}) [][]*protocol.FieldValue

func (*CountAggregator) InitializeFieldsMetadata

func (self *CountAggregator) InitializeFieldsMetadata(series *protocol.Series) error

type CountAggregatorState added in v0.5.11

type CountAggregatorState int64

type CumulativeArithmeticAggregator

type CumulativeArithmeticAggregator struct {
	AbstractAggregator
	// contains filtered or unexported fields
}

func (*CumulativeArithmeticAggregator) AggregatePoint

func (self *CumulativeArithmeticAggregator) AggregatePoint(state interface{}, p *protocol.Point) (interface{}, error)

func (*CumulativeArithmeticAggregator) ColumnNames added in v0.3.0

func (self *CumulativeArithmeticAggregator) ColumnNames() []string

func (*CumulativeArithmeticAggregator) GetValues added in v0.3.0

func (self *CumulativeArithmeticAggregator) GetValues(state interface{}) [][]*protocol.FieldValue

type CumulativeArithmeticAggregatorState added in v0.5.11

type CumulativeArithmeticAggregatorState float64

type DerivativeAggregator added in v0.0.8

type DerivativeAggregator struct {
	AbstractAggregator
	// contains filtered or unexported fields
}

func (*DerivativeAggregator) AggregatePoint added in v0.0.8

func (self *DerivativeAggregator) AggregatePoint(state interface{}, p *protocol.Point) (interface{}, error)

func (*DerivativeAggregator) ColumnNames added in v0.3.0

func (self *DerivativeAggregator) ColumnNames() []string

func (*DerivativeAggregator) GetValues added in v0.3.0

func (self *DerivativeAggregator) GetValues(state interface{}) [][]*protocol.FieldValue

type DerivativeAggregatorState added in v0.5.11

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

type DistinctAggregator

type DistinctAggregator struct {
	AbstractAggregator
	// contains filtered or unexported fields
}

func (*DistinctAggregator) AggregatePoint

func (self *DistinctAggregator) AggregatePoint(state interface{}, p *protocol.Point) (interface{}, error)

func (*DistinctAggregator) ColumnNames added in v0.3.0

func (self *DistinctAggregator) ColumnNames() []string

func (*DistinctAggregator) GetValues added in v0.3.0

func (self *DistinctAggregator) GetValues(state interface{}) [][]*protocol.FieldValue

type DistinctAggregatorState added in v0.5.11

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

type EngineI

type EngineI interface {
	RunQuery(user common.User, database string, query string, localOnly bool, yield func(*protocol.Series) error) error
}

type FilteringEngine added in v0.5.3

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

func NewFilteringEngine added in v0.5.3

func NewFilteringEngine(query *parser.SelectQuery, processor QueryProcessor) *FilteringEngine

func (*FilteringEngine) Close added in v0.5.3

func (self *FilteringEngine) Close()

func (*FilteringEngine) GetName added in v0.5.3

func (self *FilteringEngine) GetName() string

func (*FilteringEngine) SetShardInfo added in v0.5.3

func (self *FilteringEngine) SetShardInfo(shardId int, shardLocal bool)

func (*FilteringEngine) YieldPoint added in v0.5.3

func (self *FilteringEngine) YieldPoint(seriesName *string, columnNames []string, point *p.Point) bool

optimize for yield series and use it here

func (*FilteringEngine) YieldSeries added in v0.5.3

func (self *FilteringEngine) YieldSeries(seriesIncoming *p.Series) bool

type FirstOrLastAggregator added in v0.3.0

type FirstOrLastAggregator struct {
	AbstractAggregator
	// contains filtered or unexported fields
}

func (*FirstOrLastAggregator) AggregatePoint added in v0.3.0

func (self *FirstOrLastAggregator) AggregatePoint(state interface{}, p *protocol.Point) (interface{}, error)

func (*FirstOrLastAggregator) ColumnNames added in v0.3.0

func (self *FirstOrLastAggregator) ColumnNames() []string

func (*FirstOrLastAggregator) GetValues added in v0.3.0

func (self *FirstOrLastAggregator) GetValues(state interface{}) [][]*protocol.FieldValue

type FirstOrLastAggregatorState added in v0.5.11

type FirstOrLastAggregatorState *protocol.FieldValue

type Group added in v0.4.0

type Group interface {
	HasTimestamp() bool
	GetTimestamp() int64
	GetValue(int) interface{}
	WithoutTimestamp() Group
	WithTimestamp(int64) Group
}
var ALL_GROUP_IDENTIFIER Group = NullGroup{}

type Group2 added in v0.4.0

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

func (Group2) GetTimestamp added in v0.4.0

func (self Group2) GetTimestamp() int64

func (Group2) GetValue added in v0.4.0

func (self Group2) GetValue(idx int) interface{}

func (Group2) HasTimestamp added in v0.4.0

func (self Group2) HasTimestamp() bool

func (Group2) WithTimestamp added in v0.4.0

func (self Group2) WithTimestamp(timestamp int64) Group

func (Group2) WithoutTimestamp added in v0.4.0

func (self Group2) WithoutTimestamp() Group

type HistogramAggregator added in v0.3.0

type HistogramAggregator struct {
	AbstractAggregator
	// contains filtered or unexported fields
}

func (*HistogramAggregator) AggregatePoint added in v0.3.0

func (self *HistogramAggregator) AggregatePoint(state interface{}, p *protocol.Point) (interface{}, error)

func (*HistogramAggregator) ColumnNames added in v0.3.0

func (self *HistogramAggregator) ColumnNames() []string

func (*HistogramAggregator) GetValues added in v0.3.0

func (self *HistogramAggregator) GetValues(state interface{}) [][]*protocol.FieldValue

type HistogramAggregatorState added in v0.5.11

type HistogramAggregatorState map[int]int

type Int64Slice

type Int64Slice []int64

Int64Slice attaches the methods of sort.Interface to []int64, sorting in increasing order.

func (Int64Slice) Len

func (p Int64Slice) Len() int

func (Int64Slice) Less

func (p Int64Slice) Less(i, j int) bool

func (Int64Slice) Swap

func (p Int64Slice) Swap(i, j int)

type Limiter added in v0.5.0

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

func NewLimiter added in v0.5.0

func NewLimiter(limit int) *Limiter

type ListSeriesEngine added in v0.5.0

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

func NewListSeriesEngine added in v0.5.0

func NewListSeriesEngine(responseChan chan *protocol.Response) *ListSeriesEngine

func (*ListSeriesEngine) Close added in v0.5.0

func (self *ListSeriesEngine) Close()

func (*ListSeriesEngine) GetName added in v0.5.0

func (self *ListSeriesEngine) GetName() string

func (*ListSeriesEngine) SetShardInfo added in v0.5.0

func (self *ListSeriesEngine) SetShardInfo(shardId int, shardLocal bool)

func (*ListSeriesEngine) YieldPoint added in v0.5.0

func (self *ListSeriesEngine) YieldPoint(seriesName *string, columnNames []string, point *protocol.Point) bool

func (*ListSeriesEngine) YieldSeries added in v0.5.0

func (self *ListSeriesEngine) YieldSeries(seriesIncoming *protocol.Series) bool

type Mapper

type Mapper func(*protocol.Point) Group

Mapper given a point returns a group identifier as the first return result and a non-time dependent group (the first group without time) as the second result

type MeanAggregator

type MeanAggregator struct {
	AbstractAggregator
	// contains filtered or unexported fields
}

func (*MeanAggregator) AggregatePoint

func (self *MeanAggregator) AggregatePoint(state interface{}, p *protocol.Point) (interface{}, error)

func (*MeanAggregator) ColumnNames added in v0.3.0

func (self *MeanAggregator) ColumnNames() []string

func (*MeanAggregator) GetValues added in v0.3.0

func (self *MeanAggregator) GetValues(state interface{}) [][]*protocol.FieldValue

type MeanAggregatorState added in v0.5.11

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

type ModeAggregator

type ModeAggregator struct {
	AbstractAggregator
	// contains filtered or unexported fields
}

func (*ModeAggregator) AggregatePoint

func (self *ModeAggregator) AggregatePoint(state interface{}, p *protocol.Point) (interface{}, error)

func (*ModeAggregator) CalculateSummaries added in v0.5.8

func (self *ModeAggregator) CalculateSummaries(state interface{})

func (*ModeAggregator) ColumnNames added in v0.3.0

func (self *ModeAggregator) ColumnNames() []string

func (*ModeAggregator) GetValues added in v0.3.0

func (self *ModeAggregator) GetValues(state interface{}) [][]*protocol.FieldValue

type ModeAggregatorState added in v0.5.11

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

type Node added in v0.5.11

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

func (*Node) CountLeafNodes added in v0.5.11

func (self *Node) CountLeafNodes() int

func (*Node) GetChildNode added in v0.5.11

func (self *Node) GetChildNode(value *protocol.FieldValue) *Node

type Nodes added in v0.5.11

type Nodes []*Node

type NullGroup added in v0.5.5

type NullGroup struct {
	Group
}

func (NullGroup) GetTimestamp added in v0.5.5

func (self NullGroup) GetTimestamp() int64

func (NullGroup) GetValue added in v0.5.5

func (self NullGroup) GetValue(idx int) interface{}

func (NullGroup) HasTimestamp added in v0.5.5

func (self NullGroup) HasTimestamp() bool

func (NullGroup) WithTimestamp added in v0.5.5

func (self NullGroup) WithTimestamp(timestamp int64) Group

func (NullGroup) WithoutTimestamp added in v0.5.5

func (self NullGroup) WithoutTimestamp() Group

type Operation

type Operation func(currentValue float64, newValue *protocol.FieldValue) float64

type OperatorResult added in v0.5.9

type OperatorResult int
const (
	MATCH OperatorResult = iota
	NO_MATCH
	INVALID
)

func EqualityOperator added in v0.5.0

func EqualityOperator(leftValue, rightValue *protocol.FieldValue) (OperatorResult, error)

func GreaterThanOperator added in v0.5.0

func GreaterThanOperator(leftValue, rightValue *protocol.FieldValue) (OperatorResult, error)

func GreaterThanOrEqualOperator added in v0.5.0

func GreaterThanOrEqualOperator(leftValue, rightValue *protocol.FieldValue) (OperatorResult, error)

func InOperator added in v0.5.0

func InOperator(leftValue *protocol.FieldValue, rightValue []*protocol.FieldValue) (OperatorResult, error)

func RegexMatcherOperator added in v0.5.0

func RegexMatcherOperator(leftValue, rightValue *protocol.FieldValue) (OperatorResult, error)

type PassthroughEngine added in v0.5.0

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

func NewPassthroughEngine added in v0.5.0

func NewPassthroughEngine(responseChan chan *protocol.Response, maxPointsInResponse int) *PassthroughEngine

func NewPassthroughEngineWithLimit added in v0.5.0

func NewPassthroughEngineWithLimit(responseChan chan *protocol.Response, maxPointsInResponse, limit int) *PassthroughEngine

func (*PassthroughEngine) Close added in v0.5.0

func (self *PassthroughEngine) Close()

func (*PassthroughEngine) GetName added in v0.5.0

func (self *PassthroughEngine) GetName() string

func (*PassthroughEngine) SetShardInfo added in v0.5.0

func (self *PassthroughEngine) SetShardInfo(shardId int, shardLocal bool)

func (*PassthroughEngine) YieldPoint added in v0.5.0

func (self *PassthroughEngine) YieldPoint(seriesName *string, columnNames []string, point *protocol.Point) bool

func (*PassthroughEngine) YieldSeries added in v0.5.0

func (self *PassthroughEngine) YieldSeries(seriesIncoming *protocol.Series) bool

type PercentileAggregator

type PercentileAggregator struct {
	AbstractAggregator
	// contains filtered or unexported fields
}

func (*PercentileAggregator) AggregatePoint

func (self *PercentileAggregator) AggregatePoint(state interface{}, p *protocol.Point) (interface{}, error)

func (*PercentileAggregator) CalculateSummaries added in v0.5.8

func (self *PercentileAggregator) CalculateSummaries(state interface{})

func (*PercentileAggregator) ColumnNames added in v0.3.0

func (self *PercentileAggregator) ColumnNames() []string

func (*PercentileAggregator) GetValues added in v0.3.0

func (self *PercentileAggregator) GetValues(state interface{}) [][]*protocol.FieldValue

type PercentileAggregatorState added in v0.5.11

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

type PointRange added in v0.4.0

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

func (*PointRange) UpdateRange added in v0.4.0

func (self *PointRange) UpdateRange(point *protocol.Point)

type PointSlice

type PointSlice []protocol.Point

type QueryEngine

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

func NewQueryEngine

func NewQueryEngine(query *parser.SelectQuery, responseChan chan *protocol.Response) (*QueryEngine, error)

func (*QueryEngine) Close added in v0.5.0

func (self *QueryEngine) Close()

func (*QueryEngine) GetName added in v0.5.0

func (self *QueryEngine) GetName() string

func (*QueryEngine) SendQueryStats added in v0.5.0

func (self *QueryEngine) SendQueryStats()

func (*QueryEngine) SetShardInfo added in v0.5.0

func (self *QueryEngine) SetShardInfo(shardId int, shardLocal bool)

Shard will call this method for EXPLAIN query

func (*QueryEngine) YieldPoint added in v0.5.0

func (self *QueryEngine) YieldPoint(seriesName *string, fieldNames []string, point *protocol.Point) (shouldContinue bool)

Returns false if the query should be stopped (either because of limit or error)

func (*QueryEngine) YieldSeries added in v0.5.0

func (self *QueryEngine) YieldSeries(seriesIncoming *protocol.Series) (shouldContinue bool)

type QueryProcessor added in v0.5.3

type QueryProcessor interface {
	// This method returns true if the query should continue. If the query should be stopped,
	// like maybe the limit was hit, it should return false
	YieldPoint(seriesName *string, columnNames []string, point *p.Point) bool
	YieldSeries(seriesIncoming *p.Series) bool
	Close()

	// Set by the shard, so EXPLAIN query can know query against which shard is being measured
	SetShardInfo(shardId int, shardLocal bool)

	// Let QueryProcessor identify itself. What if it is a spy and we can't check that?
	GetName() string
}

type ReverseStringSlice added in v0.5.5

type ReverseStringSlice []string

func (ReverseStringSlice) Len added in v0.5.5

func (self ReverseStringSlice) Len() int

func (ReverseStringSlice) Less added in v0.5.5

func (self ReverseStringSlice) Less(i, j int) bool

func (ReverseStringSlice) Swap added in v0.5.5

func (self ReverseStringSlice) Swap(i, j int)

type SeriesState added in v0.5.11

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

type StandardDeviationAggregator added in v0.0.9

type StandardDeviationAggregator struct {
	AbstractAggregator
	// contains filtered or unexported fields
}

func (*StandardDeviationAggregator) AggregatePoint added in v0.0.9

func (self *StandardDeviationAggregator) AggregatePoint(state interface{}, p *protocol.Point) (interface{}, error)

func (*StandardDeviationAggregator) ColumnNames added in v0.3.0

func (self *StandardDeviationAggregator) ColumnNames() []string

func (*StandardDeviationAggregator) GetValues added in v0.3.0

func (self *StandardDeviationAggregator) GetValues(state interface{}) [][]*protocol.FieldValue

type StandardDeviationRunning added in v0.0.9

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

type Trie added in v0.5.11

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

func NewTrie added in v0.5.11

func NewTrie(numLevels, numStates int) *Trie

func (*Trie) Clear added in v0.5.11

func (self *Trie) Clear()

func (*Trie) CountLeafNodes added in v0.5.11

func (self *Trie) CountLeafNodes() int

func (*Trie) GetNode added in v0.5.11

func (self *Trie) GetNode(values []*protocol.FieldValue) *Node

func (*Trie) Traverse added in v0.5.11

func (self *Trie) Traverse(f func([]*protocol.FieldValue, *Node) error) error

func (*Trie) TraverseLevel added in v0.5.11

func (self *Trie) TraverseLevel(level int, f func([]*protocol.FieldValue, *Node) error) error

Traverses all nodes at the given level, -1 to get nodes at the most bottom level

Jump to

Keyboard shortcuts

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