Back to godoc.org

Package series

v0.0.0-...-9649366
Latest Go to latest

The latest major version is .

Published: Nov 21, 2019 | License: Apache-2.0 | Module: github.com/chronosphereiox/m3

Overview

Package series is a generated GoMock package.

Package series is a generated GoMock package.

Index

Variables

var (
	// ErrSeriesAllDatapointsExpired is returned on tick when all datapoints are expired
	ErrSeriesAllDatapointsExpired = errors.New("series datapoints are all expired")
)

func ValidateCachePolicy

func ValidateCachePolicy(v CachePolicy) error

ValidateCachePolicy validates a cache policy.

type BlockState

type BlockState struct {
	WarmRetrievable bool
	ColdVersion     int
}

BlockState contains the state of a block.

type BootstrapResult

type BootstrapResult struct {
	NumBlocksMovedToBuffer int64
	NumBlocksMerged        int64
}

BootstrapResult contains information about the result of bootstrapping a series. It is returned from the series Bootstrap method primarily so the caller can aggregate and emit metrics instead of the series itself having to store additional fields (which would be costly because we have millions of them.)

type BootstrappedBlockStateSnapshot

type BootstrappedBlockStateSnapshot struct {
	Snapshot map[xtime.UnixNano]BlockState
}

BootstrappedBlockStateSnapshot represents a bootstrapped shard block state snapshot.

type BufferBucket

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

BufferBucket is a specific version of a bucket of encoders, which is where writes are ultimately stored before they are persisted to disk as a fileset. See comment for BufferBucketVersions for more detail on bucket versions.

type BufferBucketPool

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

BufferBucketPool provides a pool for BufferBuckets.

func NewBufferBucketPool

func NewBufferBucketPool(opts pool.ObjectPoolOptions) *BufferBucketPool

NewBufferBucketPool creates a new BufferBucketPool.

func (*BufferBucketPool) Get

func (p *BufferBucketPool) Get() *BufferBucket

Get gets a BufferBucket from the pool.

func (*BufferBucketPool) Put

func (p *BufferBucketPool) Put(bucket *BufferBucket)

Put puts a BufferBucket back into the pool.

type BufferBucketVersions

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

BufferBucketVersions is a container for different versions of buffer buckets. Bucket versions are how the buffer separates writes that have been written to disk as a fileset and writes that have not. The bucket with a version of `writableBucketVersion` is the bucket that all writes go into (as thus is the bucket version that have not yet been persisted). After a bucket gets persisted, its version gets set to a version that the shard passes down to it (since the shard knows what has been fully persisted to disk).

type BufferBucketVersionsPool

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

BufferBucketVersionsPool provides a pool for BufferBucketVersions.

func NewBufferBucketVersionsPool

func NewBufferBucketVersionsPool(opts pool.ObjectPoolOptions) *BufferBucketVersionsPool

NewBufferBucketVersionsPool creates a new BufferBucketVersionsPool.

func (*BufferBucketVersionsPool) Get

func (p *BufferBucketVersionsPool) Get() *BufferBucketVersions

Get gets a BufferBucketVersions from the pool.

func (*BufferBucketVersionsPool) Put

func (p *BufferBucketVersionsPool) Put(buckets *BufferBucketVersions)

Put puts a BufferBucketVersions back into the pool.

type CachePolicy

type CachePolicy uint

CachePolicy is the series cache policy.

const (
	// CacheNone specifies that no series will be cached by default.
	CacheNone CachePolicy = iota
	// CacheAll specifies that all series must be cached at all times
	// which requires loading all into cache on bootstrap and never
	// expiring series from memory until expired from retention.
	CacheAll
	// CacheRecentlyRead specifies that series that are recently read
	// must be cached, configurable by the namespace block expiry after
	// not accessed period.
	CacheRecentlyRead
	// CacheLRU specifies that series that are read will be cached
	// using an LRU of fixed capacity. Series that are least recently
	// used will be evicted first.
	CacheLRU

	// DefaultCachePolicy is the default cache policy.
	DefaultCachePolicy = CacheRecentlyRead
)

func ParseCachePolicy

func ParseCachePolicy(str string) (CachePolicy, error)

ParseCachePolicy parses a CachePolicy from a string.

func ValidCachePolicies

func ValidCachePolicies() []CachePolicy

ValidCachePolicies returns the valid series cache policies.

func (CachePolicy) String

func (p CachePolicy) String() string

func (*CachePolicy) UnmarshalYAML

func (p *CachePolicy) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML unmarshals an CachePolicy into a valid type from string.

type DatabaseSeries

type DatabaseSeries interface {
	block.OnRetrieveBlock
	block.OnEvictedFromWiredList

	// ID returns the ID of the series.
	ID() ident.ID

	// Tags return the tags of the series.
	Tags() ident.Tags

	// Tick executes async updates
	Tick(blockStates ShardBlockStateSnapshot, nsCtx namespace.Context) (TickResult, error)

	// Write writes a new value.
	Write(
		ctx context.Context,
		timestamp time.Time,
		value float64,
		unit xtime.Unit,
		annotation []byte,
		wOpts WriteOptions,
	) (bool, error)

	// ReadEncoded reads encoded blocks.
	ReadEncoded(
		ctx context.Context,
		start, end time.Time,
		nsCtx namespace.Context,
	) ([][]xio.BlockReader, error)

	// FetchBlocks returns data blocks given a list of block start times.
	FetchBlocks(
		ctx context.Context,
		starts []time.Time,
		nsCtx namespace.Context,
	) ([]block.FetchBlockResult, error)

	// FetchBlocksForColdFlush fetches blocks for a cold flush. This function
	// informs the series and the buffer that a cold flush for the specified
	// block start is occurring so that it knows to update bucket versions.
	FetchBlocksForColdFlush(
		ctx context.Context,
		start time.Time,
		version int,
		nsCtx namespace.Context,
	) ([]xio.BlockReader, error)

	// FetchBlocksMetadata returns the blocks metadata.
	FetchBlocksMetadata(
		ctx context.Context,
		start, end time.Time,
		opts FetchBlocksMetadataOptions,
	) (block.FetchBlocksMetadataResult, error)

	// IsEmpty returns whether series is empty.
	IsEmpty() bool

	// NumActiveBlocks returns the number of active blocks the series currently holds.
	NumActiveBlocks() int

	// IsBootstrapped returns whether the series is bootstrapped or not.
	IsBootstrapped() bool

	// Load loads data into the series.
	Load(
		opts LoadOptions,
		blocks block.DatabaseSeriesBlocks,
		blockStates BootstrappedBlockStateSnapshot,
	) (LoadResult, error)

	// WarmFlush flushes the WarmWrites of this series for a given start time.
	WarmFlush(
		ctx context.Context,
		blockStart time.Time,
		persistFn persist.DataFn,
		nsCtx namespace.Context,
	) (FlushOutcome, error)

	// Snapshot snapshots the buffer buckets of this series for any data that has
	// not been rotated into a block yet.
	Snapshot(
		ctx context.Context,
		blockStart time.Time,
		persistFn persist.DataFn,
		nsCtx namespace.Context,
	) error

	// ColdFlushBlockStarts returns the block starts that need cold flushes.
	ColdFlushBlockStarts(blockStates BootstrappedBlockStateSnapshot) OptimizedTimes

	// Close will close the series and if pooled returned to the pool.
	Close()

	// Reset resets the series for reuse.
	Reset(
		id ident.ID,
		tags ident.Tags,
		blockRetriever QueryableBlockRetriever,
		onRetrieveBlock block.OnRetrieveBlock,
		onEvictedFromWiredList block.OnEvictedFromWiredList,
		opts Options,
	)
}

DatabaseSeries is a series in the database.

func NewDatabaseSeries

func NewDatabaseSeries(id ident.ID, tags ident.Tags, opts Options) DatabaseSeries

NewDatabaseSeries creates a new database series

type DatabaseSeriesAllocate

type DatabaseSeriesAllocate func() DatabaseSeries

DatabaseSeriesAllocate allocates a database series for a pool.

type DatabaseSeriesPool

type DatabaseSeriesPool interface {
	// Get provides a database series from the pool.
	Get() DatabaseSeries

	// Put returns a database series to the pool.
	Put(block DatabaseSeries)
}

DatabaseSeriesPool provides a pool for database series.

func NewDatabaseSeriesPool

func NewDatabaseSeriesPool(opts pool.ObjectPoolOptions) DatabaseSeriesPool

NewDatabaseSeriesPool creates a new database series pool

type FetchBlocksMetadataOptions

type FetchBlocksMetadataOptions struct {
	block.FetchBlocksMetadataOptions
}

FetchBlocksMetadataOptions encapsulates block fetch metadata options and specifies a few series specific options too.

type FlushOutcome

type FlushOutcome int

FlushOutcome is an enum that provides more context about the outcome of series.WarmFlush() to the caller.

const (
	// FlushOutcomeErr is just a default value that can be returned when we're
	// also returning an error.
	FlushOutcomeErr FlushOutcome = iota
	// FlushOutcomeBlockDoesNotExist indicates that the series did not have a
	// block for the specified flush blockStart.
	FlushOutcomeBlockDoesNotExist
	// FlushOutcomeFlushedToDisk indicates that a block existed and was flushed
	// to disk successfully.
	FlushOutcomeFlushedToDisk
)

type LoadOptions

type LoadOptions struct {
	// Whether the call to Bootstrap should be considered a "true" bootstrap
	// or if additional data is being loaded after the fact (as in the case
	// of repairs).
	Bootstrap bool
}

LoadOptions contains the options for the Load() method.

type LoadResult

type LoadResult struct {
	Bootstrap BootstrapResult
}

LoadResult contains the return information for the Load() method.

type MockDatabaseSeries

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

MockDatabaseSeries is a mock of DatabaseSeries interface

func NewMockDatabaseSeries

func NewMockDatabaseSeries(ctrl *gomock.Controller) *MockDatabaseSeries

NewMockDatabaseSeries creates a new mock instance

func (*MockDatabaseSeries) Close

func (m *MockDatabaseSeries) Close()

Close mocks base method

func (*MockDatabaseSeries) ColdFlushBlockStarts

func (m *MockDatabaseSeries) ColdFlushBlockStarts(arg0 BootstrappedBlockStateSnapshot) OptimizedTimes

ColdFlushBlockStarts mocks base method

func (*MockDatabaseSeries) EXPECT

func (m *MockDatabaseSeries) EXPECT() *MockDatabaseSeriesMockRecorder

EXPECT returns an object that allows the caller to indicate expected use

func (*MockDatabaseSeries) FetchBlocks

func (m *MockDatabaseSeries) FetchBlocks(arg0 context.Context, arg1 []time.Time, arg2 namespace.Context) ([]block.FetchBlockResult, error)

FetchBlocks mocks base method

func (*MockDatabaseSeries) FetchBlocksForColdFlush

func (m *MockDatabaseSeries) FetchBlocksForColdFlush(arg0 context.Context, arg1 time.Time, arg2 int, arg3 namespace.Context) ([]xio.BlockReader, error)

FetchBlocksForColdFlush mocks base method

func (*MockDatabaseSeries) FetchBlocksMetadata

func (m *MockDatabaseSeries) FetchBlocksMetadata(arg0 context.Context, arg1, arg2 time.Time, arg3 FetchBlocksMetadataOptions) (block.FetchBlocksMetadataResult, error)

FetchBlocksMetadata mocks base method

func (*MockDatabaseSeries) ID

func (m *MockDatabaseSeries) ID() ident.ID

ID mocks base method

func (*MockDatabaseSeries) IsBootstrapped

func (m *MockDatabaseSeries) IsBootstrapped() bool

IsBootstrapped mocks base method

func (*MockDatabaseSeries) IsEmpty

func (m *MockDatabaseSeries) IsEmpty() bool

IsEmpty mocks base method

func (*MockDatabaseSeries) Load

func (m *MockDatabaseSeries) Load(arg0 LoadOptions, arg1 block.DatabaseSeriesBlocks, arg2 BootstrappedBlockStateSnapshot) (LoadResult, error)

Load mocks base method

func (*MockDatabaseSeries) NumActiveBlocks

func (m *MockDatabaseSeries) NumActiveBlocks() int

NumActiveBlocks mocks base method

func (*MockDatabaseSeries) OnEvictedFromWiredList

func (m *MockDatabaseSeries) OnEvictedFromWiredList(arg0 ident.ID, arg1 time.Time)

OnEvictedFromWiredList mocks base method

func (*MockDatabaseSeries) OnRetrieveBlock

func (m *MockDatabaseSeries) OnRetrieveBlock(arg0 ident.ID, arg1 ident.TagIterator, arg2 time.Time, arg3 ts.Segment, arg4 namespace.Context)

OnRetrieveBlock mocks base method

func (*MockDatabaseSeries) ReadEncoded

func (m *MockDatabaseSeries) ReadEncoded(arg0 context.Context, arg1, arg2 time.Time, arg3 namespace.Context) ([][]xio.BlockReader, error)

ReadEncoded mocks base method

func (*MockDatabaseSeries) Reset

func (m *MockDatabaseSeries) Reset(arg0 ident.ID, arg1 ident.Tags, arg2 QueryableBlockRetriever, arg3 block.OnRetrieveBlock, arg4 block.OnEvictedFromWiredList, arg5 Options)

Reset mocks base method

func (*MockDatabaseSeries) Snapshot

func (m *MockDatabaseSeries) Snapshot(arg0 context.Context, arg1 time.Time, arg2 persist.DataFn, arg3 namespace.Context) error

Snapshot mocks base method

func (*MockDatabaseSeries) Tags

func (m *MockDatabaseSeries) Tags() ident.Tags

Tags mocks base method

func (*MockDatabaseSeries) Tick

func (m *MockDatabaseSeries) Tick(arg0 ShardBlockStateSnapshot, arg1 namespace.Context) (TickResult, error)

Tick mocks base method

func (*MockDatabaseSeries) WarmFlush

func (m *MockDatabaseSeries) WarmFlush(arg0 context.Context, arg1 time.Time, arg2 persist.DataFn, arg3 namespace.Context) (FlushOutcome, error)

WarmFlush mocks base method

func (*MockDatabaseSeries) Write

func (m *MockDatabaseSeries) Write(arg0 context.Context, arg1 time.Time, arg2 float64, arg3 time0.Unit, arg4 []byte, arg5 WriteOptions) (bool, error)

Write mocks base method

type MockDatabaseSeriesMockRecorder

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

MockDatabaseSeriesMockRecorder is the mock recorder for MockDatabaseSeries

func (*MockDatabaseSeriesMockRecorder) Close

func (mr *MockDatabaseSeriesMockRecorder) Close() *gomock.Call

Close indicates an expected call of Close

func (*MockDatabaseSeriesMockRecorder) ColdFlushBlockStarts

func (mr *MockDatabaseSeriesMockRecorder) ColdFlushBlockStarts(arg0 interface{}) *gomock.Call

ColdFlushBlockStarts indicates an expected call of ColdFlushBlockStarts

func (*MockDatabaseSeriesMockRecorder) FetchBlocks

func (mr *MockDatabaseSeriesMockRecorder) FetchBlocks(arg0, arg1, arg2 interface{}) *gomock.Call

FetchBlocks indicates an expected call of FetchBlocks

func (*MockDatabaseSeriesMockRecorder) FetchBlocksForColdFlush

func (mr *MockDatabaseSeriesMockRecorder) FetchBlocksForColdFlush(arg0, arg1, arg2, arg3 interface{}) *gomock.Call

FetchBlocksForColdFlush indicates an expected call of FetchBlocksForColdFlush

func (*MockDatabaseSeriesMockRecorder) FetchBlocksMetadata

func (mr *MockDatabaseSeriesMockRecorder) FetchBlocksMetadata(arg0, arg1, arg2, arg3 interface{}) *gomock.Call

FetchBlocksMetadata indicates an expected call of FetchBlocksMetadata

func (*MockDatabaseSeriesMockRecorder) ID

func (mr *MockDatabaseSeriesMockRecorder) ID() *gomock.Call

ID indicates an expected call of ID

func (*MockDatabaseSeriesMockRecorder) IsBootstrapped

func (mr *MockDatabaseSeriesMockRecorder) IsBootstrapped() *gomock.Call

IsBootstrapped indicates an expected call of IsBootstrapped

func (*MockDatabaseSeriesMockRecorder) IsEmpty

func (mr *MockDatabaseSeriesMockRecorder) IsEmpty() *gomock.Call

IsEmpty indicates an expected call of IsEmpty

func (*MockDatabaseSeriesMockRecorder) Load

func (mr *MockDatabaseSeriesMockRecorder) Load(arg0, arg1, arg2 interface{}) *gomock.Call

Load indicates an expected call of Load

func (*MockDatabaseSeriesMockRecorder) NumActiveBlocks

func (mr *MockDatabaseSeriesMockRecorder) NumActiveBlocks() *gomock.Call

NumActiveBlocks indicates an expected call of NumActiveBlocks

func (*MockDatabaseSeriesMockRecorder) OnEvictedFromWiredList

func (mr *MockDatabaseSeriesMockRecorder) OnEvictedFromWiredList(arg0, arg1 interface{}) *gomock.Call

OnEvictedFromWiredList indicates an expected call of OnEvictedFromWiredList

func (*MockDatabaseSeriesMockRecorder) OnRetrieveBlock

func (mr *MockDatabaseSeriesMockRecorder) OnRetrieveBlock(arg0, arg1, arg2, arg3, arg4 interface{}) *gomock.Call

OnRetrieveBlock indicates an expected call of OnRetrieveBlock

func (*MockDatabaseSeriesMockRecorder) ReadEncoded

func (mr *MockDatabaseSeriesMockRecorder) ReadEncoded(arg0, arg1, arg2, arg3 interface{}) *gomock.Call

ReadEncoded indicates an expected call of ReadEncoded

func (*MockDatabaseSeriesMockRecorder) Reset

func (mr *MockDatabaseSeriesMockRecorder) Reset(arg0, arg1, arg2, arg3, arg4, arg5 interface{}) *gomock.Call

Reset indicates an expected call of Reset

func (*MockDatabaseSeriesMockRecorder) Snapshot

func (mr *MockDatabaseSeriesMockRecorder) Snapshot(arg0, arg1, arg2, arg3 interface{}) *gomock.Call

Snapshot indicates an expected call of Snapshot

func (*MockDatabaseSeriesMockRecorder) Tags

func (mr *MockDatabaseSeriesMockRecorder) Tags() *gomock.Call

Tags indicates an expected call of Tags

func (*MockDatabaseSeriesMockRecorder) Tick

func (mr *MockDatabaseSeriesMockRecorder) Tick(arg0, arg1 interface{}) *gomock.Call

Tick indicates an expected call of Tick

func (*MockDatabaseSeriesMockRecorder) WarmFlush

func (mr *MockDatabaseSeriesMockRecorder) WarmFlush(arg0, arg1, arg2, arg3 interface{}) *gomock.Call

WarmFlush indicates an expected call of WarmFlush

func (*MockDatabaseSeriesMockRecorder) Write

func (mr *MockDatabaseSeriesMockRecorder) Write(arg0, arg1, arg2, arg3, arg4, arg5 interface{}) *gomock.Call

Write indicates an expected call of Write

type MockQueryableBlockRetriever

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

MockQueryableBlockRetriever is a mock of QueryableBlockRetriever interface

func NewMockQueryableBlockRetriever

func NewMockQueryableBlockRetriever(ctrl *gomock.Controller) *MockQueryableBlockRetriever

NewMockQueryableBlockRetriever creates a new mock instance

func (*MockQueryableBlockRetriever) BlockStatesSnapshot

func (m *MockQueryableBlockRetriever) BlockStatesSnapshot() ShardBlockStateSnapshot

BlockStatesSnapshot mocks base method

func (*MockQueryableBlockRetriever) EXPECT

func (m *MockQueryableBlockRetriever) EXPECT() *MockQueryableBlockRetrieverMockRecorder

EXPECT returns an object that allows the caller to indicate expected use

func (*MockQueryableBlockRetriever) IsBlockRetrievable

func (m *MockQueryableBlockRetriever) IsBlockRetrievable(arg0 time.Time) (bool, error)

IsBlockRetrievable mocks base method

func (*MockQueryableBlockRetriever) RetrievableBlockColdVersion

func (m *MockQueryableBlockRetriever) RetrievableBlockColdVersion(arg0 time.Time) (int, error)

RetrievableBlockColdVersion mocks base method

func (*MockQueryableBlockRetriever) Stream

func (m *MockQueryableBlockRetriever) Stream(arg0 context.Context, arg1 ident.ID, arg2 time.Time, arg3 block.OnRetrieveBlock, arg4 namespace.Context) (xio.BlockReader, error)

Stream mocks base method

type MockQueryableBlockRetrieverMockRecorder

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

MockQueryableBlockRetrieverMockRecorder is the mock recorder for MockQueryableBlockRetriever

func (*MockQueryableBlockRetrieverMockRecorder) BlockStatesSnapshot

func (mr *MockQueryableBlockRetrieverMockRecorder) BlockStatesSnapshot() *gomock.Call

BlockStatesSnapshot indicates an expected call of BlockStatesSnapshot

func (*MockQueryableBlockRetrieverMockRecorder) IsBlockRetrievable

func (mr *MockQueryableBlockRetrieverMockRecorder) IsBlockRetrievable(arg0 interface{}) *gomock.Call

IsBlockRetrievable indicates an expected call of IsBlockRetrievable

func (*MockQueryableBlockRetrieverMockRecorder) RetrievableBlockColdVersion

func (mr *MockQueryableBlockRetrieverMockRecorder) RetrievableBlockColdVersion(arg0 interface{}) *gomock.Call

RetrievableBlockColdVersion indicates an expected call of RetrievableBlockColdVersion

func (*MockQueryableBlockRetrieverMockRecorder) Stream

func (mr *MockQueryableBlockRetrieverMockRecorder) Stream(arg0, arg1, arg2, arg3, arg4 interface{}) *gomock.Call

Stream indicates an expected call of Stream

type MockdatabaseBuffer

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

MockdatabaseBuffer is a mock of databaseBuffer interface

func NewMockdatabaseBuffer

func NewMockdatabaseBuffer(ctrl *gomock.Controller) *MockdatabaseBuffer

NewMockdatabaseBuffer creates a new mock instance

func (*MockdatabaseBuffer) ColdFlushBlockStarts

func (m *MockdatabaseBuffer) ColdFlushBlockStarts(blockStates map[time0.UnixNano]BlockState) OptimizedTimes

ColdFlushBlockStarts mocks base method

func (*MockdatabaseBuffer) EXPECT

func (m *MockdatabaseBuffer) EXPECT() *MockdatabaseBufferMockRecorder

EXPECT returns an object that allows the caller to indicate expected use

func (*MockdatabaseBuffer) FetchBlocks

func (m *MockdatabaseBuffer) FetchBlocks(ctx context.Context, starts []time.Time, nsCtx namespace.Context) []block.FetchBlockResult

FetchBlocks mocks base method

func (*MockdatabaseBuffer) FetchBlocksForColdFlush

func (m *MockdatabaseBuffer) FetchBlocksForColdFlush(ctx context.Context, start time.Time, version int, nsCtx namespace.Context) ([]xio.BlockReader, error)

FetchBlocksForColdFlush mocks base method

func (*MockdatabaseBuffer) FetchBlocksMetadata

func (m *MockdatabaseBuffer) FetchBlocksMetadata(ctx context.Context, start, end time.Time, opts FetchBlocksMetadataOptions) (block.FetchBlockMetadataResults, error)

FetchBlocksMetadata mocks base method

func (*MockdatabaseBuffer) IsEmpty

func (m *MockdatabaseBuffer) IsEmpty() bool

IsEmpty mocks base method

func (*MockdatabaseBuffer) Load

func (m *MockdatabaseBuffer) Load(bl block.DatabaseBlock, writeType WriteType)

Load mocks base method

func (*MockdatabaseBuffer) ReadEncoded

func (m *MockdatabaseBuffer) ReadEncoded(ctx context.Context, start, end time.Time, nsCtx namespace.Context) ([][]xio.BlockReader, error)

ReadEncoded mocks base method

func (*MockdatabaseBuffer) Reset

func (m *MockdatabaseBuffer) Reset(id ident.ID, opts Options)

Reset mocks base method

func (*MockdatabaseBuffer) Snapshot

func (m *MockdatabaseBuffer) Snapshot(ctx context.Context, blockStart time.Time, id ident.ID, tags ident.Tags, persistFn persist.DataFn, nsCtx namespace.Context) error

Snapshot mocks base method

func (*MockdatabaseBuffer) Stats

func (m *MockdatabaseBuffer) Stats() bufferStats

Stats mocks base method

func (*MockdatabaseBuffer) Tick

func (m *MockdatabaseBuffer) Tick(versions ShardBlockStateSnapshot, nsCtx namespace.Context) bufferTickResult

Tick mocks base method

func (*MockdatabaseBuffer) WarmFlush

func (m *MockdatabaseBuffer) WarmFlush(ctx context.Context, blockStart time.Time, id ident.ID, tags ident.Tags, persistFn persist.DataFn, nsCtx namespace.Context) (FlushOutcome, error)

WarmFlush mocks base method

func (*MockdatabaseBuffer) Write

func (m *MockdatabaseBuffer) Write(ctx context.Context, timestamp time.Time, value float64, unit time0.Unit, annotation []byte, wOpts WriteOptions) (bool, error)

Write mocks base method

type MockdatabaseBufferMockRecorder

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

MockdatabaseBufferMockRecorder is the mock recorder for MockdatabaseBuffer

func (*MockdatabaseBufferMockRecorder) ColdFlushBlockStarts

func (mr *MockdatabaseBufferMockRecorder) ColdFlushBlockStarts(blockStates interface{}) *gomock.Call

ColdFlushBlockStarts indicates an expected call of ColdFlushBlockStarts

func (*MockdatabaseBufferMockRecorder) FetchBlocks

func (mr *MockdatabaseBufferMockRecorder) FetchBlocks(ctx, starts, nsCtx interface{}) *gomock.Call

FetchBlocks indicates an expected call of FetchBlocks

func (*MockdatabaseBufferMockRecorder) FetchBlocksForColdFlush

func (mr *MockdatabaseBufferMockRecorder) FetchBlocksForColdFlush(ctx, start, version, nsCtx interface{}) *gomock.Call

FetchBlocksForColdFlush indicates an expected call of FetchBlocksForColdFlush

func (*MockdatabaseBufferMockRecorder) FetchBlocksMetadata

func (mr *MockdatabaseBufferMockRecorder) FetchBlocksMetadata(ctx, start, end, opts interface{}) *gomock.Call

FetchBlocksMetadata indicates an expected call of FetchBlocksMetadata

func (*MockdatabaseBufferMockRecorder) IsEmpty

func (mr *MockdatabaseBufferMockRecorder) IsEmpty() *gomock.Call

IsEmpty indicates an expected call of IsEmpty

func (*MockdatabaseBufferMockRecorder) Load

func (mr *MockdatabaseBufferMockRecorder) Load(bl, writeType interface{}) *gomock.Call

Load indicates an expected call of Load

func (*MockdatabaseBufferMockRecorder) ReadEncoded

func (mr *MockdatabaseBufferMockRecorder) ReadEncoded(ctx, start, end, nsCtx interface{}) *gomock.Call

ReadEncoded indicates an expected call of ReadEncoded

func (*MockdatabaseBufferMockRecorder) Reset

func (mr *MockdatabaseBufferMockRecorder) Reset(id, opts interface{}) *gomock.Call

Reset indicates an expected call of Reset

func (*MockdatabaseBufferMockRecorder) Snapshot

func (mr *MockdatabaseBufferMockRecorder) Snapshot(ctx, blockStart, id, tags, persistFn, nsCtx interface{}) *gomock.Call

Snapshot indicates an expected call of Snapshot

func (*MockdatabaseBufferMockRecorder) Stats

func (mr *MockdatabaseBufferMockRecorder) Stats() *gomock.Call

Stats indicates an expected call of Stats

func (*MockdatabaseBufferMockRecorder) Tick

func (mr *MockdatabaseBufferMockRecorder) Tick(versions, nsCtx interface{}) *gomock.Call

Tick indicates an expected call of Tick

func (*MockdatabaseBufferMockRecorder) WarmFlush

func (mr *MockdatabaseBufferMockRecorder) WarmFlush(ctx, blockStart, id, tags, persistFn, nsCtx interface{}) *gomock.Call

WarmFlush indicates an expected call of WarmFlush

func (*MockdatabaseBufferMockRecorder) Write

func (mr *MockdatabaseBufferMockRecorder) Write(ctx, timestamp, value, unit, annotation, wOpts interface{}) *gomock.Call

Write indicates an expected call of Write

type OptimizedTimes

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

OptimizedTimes is a struct that holds an unknown number of times. This is used to avoid heap allocations as much as possible by trying to not allocate a slice of times. To do this, `optimizedTimesArraySize` needs to be strategically sized such that for the vast majority of the time, the internal array can hold all the times required so that `slice` is nil.

OptimizedTimes should only be interacted with via its helper functions - its fields should never be accessed or modified directly, which could cause an invalid state.

func (*OptimizedTimes) Add

func (t *OptimizedTimes) Add(newTime xtime.UnixNano)

Add adds a time to this OptimizedTimes.

func (*OptimizedTimes) Contains

func (t *OptimizedTimes) Contains(target xtime.UnixNano) bool

Contains returns whether the target time is in this OptimizedTimes.

func (*OptimizedTimes) ForEach

func (t *OptimizedTimes) ForEach(fn func(t xtime.UnixNano))

ForEach runs the given function for each time in this OptimizedTimes.

func (*OptimizedTimes) Len

func (t *OptimizedTimes) Len() int

Len returns the number of times in this OptimizedTimes.

type Options

type Options interface {
	// Validate validates the options
	Validate() error

	// SetClockOptions sets the clock options
	SetClockOptions(value clock.Options) Options

	// ClockOptions returns the clock options
	ClockOptions() clock.Options

	// SetInstrumentOptions sets the instrumentation options
	SetInstrumentOptions(value instrument.Options) Options

	// InstrumentOptions returns the instrumentation options
	InstrumentOptions() instrument.Options

	// SetRetentionOptions sets the retention options
	SetRetentionOptions(value retention.Options) Options

	// RetentionOptions returns the retention options
	RetentionOptions() retention.Options

	// SetDatabaseBlockOptions sets the database block options
	SetDatabaseBlockOptions(value block.Options) Options

	// DatabaseBlockOptions returns the database block options
	DatabaseBlockOptions() block.Options

	// SetCachePolicy sets the series cache policy
	SetCachePolicy(value CachePolicy) Options

	// CachePolicy returns the series cache policy
	CachePolicy() CachePolicy

	// SetContextPool sets the contextPool
	SetContextPool(value context.Pool) Options

	// ContextPool returns the contextPool
	ContextPool() context.Pool

	// SetEncoderPool sets the contextPool
	SetEncoderPool(value encoding.EncoderPool) Options

	// EncoderPool returns the contextPool
	EncoderPool() encoding.EncoderPool

	// SetMultiReaderIteratorPool sets the multiReaderIteratorPool
	SetMultiReaderIteratorPool(value encoding.MultiReaderIteratorPool) Options

	// MultiReaderIteratorPool returns the multiReaderIteratorPool
	MultiReaderIteratorPool() encoding.MultiReaderIteratorPool

	// SetFetchBlockMetadataResultsPool sets the fetchBlockMetadataResultsPool
	SetFetchBlockMetadataResultsPool(value block.FetchBlockMetadataResultsPool) Options

	// FetchBlockMetadataResultsPool returns the fetchBlockMetadataResultsPool
	FetchBlockMetadataResultsPool() block.FetchBlockMetadataResultsPool

	// SetIdentifierPool sets the identifierPool
	SetIdentifierPool(value ident.Pool) Options

	// IdentifierPool returns the identifierPool
	IdentifierPool() ident.Pool

	// SetStats sets the configured Stats.
	SetStats(value Stats) Options

	// Stats returns the configured Stats.
	Stats() Stats

	// SetColdWritesEnabled sets whether cold writes are enabled.
	SetColdWritesEnabled(value bool) Options

	// ColdWritesEnabled returns whether cold writes are enabled.
	ColdWritesEnabled() bool

	// SetBufferBucketVersionsPool sets the BufferBucketVersionsPool.
	SetBufferBucketVersionsPool(value *BufferBucketVersionsPool) Options

	// BufferBucketVersionsPool returns the BufferBucketVersionsPool.
	BufferBucketVersionsPool() *BufferBucketVersionsPool

	// SetBufferBucketPool sets the BufferBucketPool.
	SetBufferBucketPool(value *BufferBucketPool) Options

	// BufferBucketPool returns the BufferBucketPool.
	BufferBucketPool() *BufferBucketPool
}

Options represents the options for series

func NewOptions

func NewOptions() Options

NewOptions creates new database series options

type QueryableBlockRetriever

type QueryableBlockRetriever interface {
	block.DatabaseShardBlockRetriever

	// IsBlockRetrievable returns whether a block is retrievable
	// for a given block start time.
	IsBlockRetrievable(blockStart time.Time) (bool, error)

	// RetrievableBlockColdVersion returns the cold version that was
	// successfully persisted.
	RetrievableBlockColdVersion(blockStart time.Time) (int, error)

	// BlockStatesSnapshot returns a snapshot of the whether blocks are
	// retrievable and their flush versions for each block start. This is used
	// to reduce lock contention of acquiring flush state.
	//
	// Flushes may occur and change the actual block state while iterating
	// through this snapshot, so any logic using this function should take this
	// into account.
	BlockStatesSnapshot() ShardBlockStateSnapshot
}

QueryableBlockRetriever is a block retriever that can tell if a block is retrievable or not for a given start time.

type Reader

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

Reader reads results from a series, or a series block retriever or both. It is implemented as a struct so it can be allocated on the stack.

func NewReaderUsingRetriever

func NewReaderUsingRetriever(
	id ident.ID,
	retriever QueryableBlockRetriever,
	onRetrieveBlock block.OnRetrieveBlock,
	onReadBlock block.OnReadBlock,
	opts Options,
) Reader

NewReaderUsingRetriever returns a reader for a series block retriever, it will use the block retriever as the source to read blocks from.

func (Reader) FetchBlocks

func (r Reader) FetchBlocks(
	ctx context.Context,
	starts []time.Time,
	nsCtx namespace.Context,
) ([]block.FetchBlockResult, error)

FetchBlocks returns data blocks given a list of block start times using just a block retriever.

func (Reader) ReadEncoded

func (r Reader) ReadEncoded(
	ctx context.Context,
	start, end time.Time,
	nsCtx namespace.Context,
) ([][]xio.BlockReader, error)

ReadEncoded reads encoded blocks using just a block retriever.

type ShardBlockStateSnapshot

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

ShardBlockStateSnapshot represents a snapshot of a shard's block state at a moment in time.

func NewShardBlockStateSnapshot

func NewShardBlockStateSnapshot(
	bootstrapped bool,
	snapshot BootstrappedBlockStateSnapshot,
) ShardBlockStateSnapshot

NewShardBlockStateSnapshot constructs a new NewShardBlockStateSnapshot.

func (ShardBlockStateSnapshot) UnwrapValue

func (s ShardBlockStateSnapshot) UnwrapValue() (BootstrappedBlockStateSnapshot, bool)

UnwrapValue returns a BootstrappedBlockStateSnapshot and a boolean indicating whether the snapshot is bootstrapped or not.

type Stats

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

Stats is passed down from namespace/shard to avoid allocations per series.

func NewStats

func NewStats(scope tally.Scope) Stats

NewStats returns a new Stats for the provided scope.

func (Stats) IncColdWrites

func (s Stats) IncColdWrites()

IncColdWrites incs the ColdWrites stat.

func (Stats) IncCreatedEncoders

func (s Stats) IncCreatedEncoders()

IncCreatedEncoders incs the EncoderCreated stat.

type TickResult

type TickResult struct {
	TickStatus
	// MadeExpiredBlocks is count of blocks just expired.
	MadeExpiredBlocks int
	// MadeUnwiredBlocks is count of blocks just unwired from memory.
	MadeUnwiredBlocks int
	// MergedOutOfOrderBlocks is count of blocks merged from out of order streams.
	MergedOutOfOrderBlocks int
	// EvictedBuckets is count of buckets just evicted from the buffer map.
	EvictedBuckets int
}

TickResult is a set of results from a tick.

type TickStatus

type TickStatus struct {
	// ActiveBlocks is the number of total active blocks.
	ActiveBlocks int
	// WiredBlocks is the number of blocks wired in memory (all data kept)
	WiredBlocks int
	// UnwiredBlocks is the number of blocks unwired (data kept on disk).
	UnwiredBlocks int
	// PendingMergeBlocks is the number of blocks pending merges.
	PendingMergeBlocks int
}

TickStatus is the status of a series for a given tick.

type TruncateType

type TruncateType uint8

TruncateType determines the scheme for truncating transforms.

const (
	// TypeNone indicates that no truncation occurs.
	TypeNone TruncateType = iota

	// TypeBlock truncates incoming writes to the block boundary immediately
	// preceding this point's timestamp.
	TypeBlock
)

func (TruncateType) String

func (t TruncateType) String() string

func (*TruncateType) UnmarshalYAML

func (t *TruncateType) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML unmarshals a stored truncation type.

func (TruncateType) Validate

func (t TruncateType) Validate() error

Validate validates that the scheme type is valid.

type WriteOptions

type WriteOptions struct {
	// SchemaDesc is the schema description.
	SchemaDesc namespace.SchemaDescr
	// TruncateType is the truncation type for incoming writes.
	TruncateType TruncateType
	// TransformOptions describes transformation options for incoming writes.
	TransformOptions WriteTransformOptions
}

WriteOptions provides a set of options for a write.

type WriteTransformOptions

type WriteTransformOptions struct {
	// ForceValueEnabled indicates if the values for incoming writes
	// should be forced to `ForceValue`.
	ForceValueEnabled bool
	// ForceValue is the value that incoming writes should be forced to.
	ForceValue float64
}

WriteTransformOptions describes transforms to run on incoming writes.

type WriteType

type WriteType int

WriteType is an enum for warm/cold write types.

const (
	// WarmWrite represents warm writes (within the buffer past/future window).
	WarmWrite WriteType = iota

	// ColdWrite represents cold writes (outside the buffer past/future window).
	ColdWrite
)

Package Files

Documentation was rendered with GOOS=linux and GOARCH=amd64.

Jump to identifier

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to identifier