tsdb

package
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Jan 18, 2024 License: AGPL-3.0 Imports: 18 Imported by: 0

Documentation

Overview

originally from https://github.com/cortexproject/cortex/blob/868898a2921c662dcd4f90683e8b95c927a8edd8/pkg/ingester/index/index.go but modified to support sharding queries.

Index

Constants

View Source
const DefaultIndexShards = 32

Variables

View Source
var (
	ErrInvalidShardQuery = errors.New("incompatible index shard query")
)

Functions

func FindSetMatches

func FindSetMatches(pattern string) []string

func ValidateBitPrefixShardFactor

func ValidateBitPrefixShardFactor(factor uint32) error

Types

type BitPrefixInvertedIndex

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

BitPrefixInvertedIndex is another inverted index implementation that uses the bit prefix sharding algorithm in tsdb/index/shard.go instead of a modulo approach. This is the standard for TSDB compatibility because the same series must resolve to the same shard (for each period config), whether it's resolved on the ingester or via the store.

func NewBitPrefixWithShards

func NewBitPrefixWithShards(totalShards uint32) (*BitPrefixInvertedIndex, error)

func (*BitPrefixInvertedIndex) Add

Add a fingerprint under the specified labels. NOTE: memory for `labels` is unsafe; anything retained beyond the life of this function must be copied

func (*BitPrefixInvertedIndex) Delete

func (ii *BitPrefixInvertedIndex) Delete(labels []*typesv1.LabelPair, fp model.Fingerprint)

Delete a fingerprint with the given label pairs.

func (*BitPrefixInvertedIndex) LabelNames

func (ii *BitPrefixInvertedIndex) LabelNames(shard *shard.Annotation) ([]string, error)

LabelNames returns all label names.

func (*BitPrefixInvertedIndex) LabelValues

func (ii *BitPrefixInvertedIndex) LabelValues(name string, shard *shard.Annotation) ([]string, error)

LabelValues returns the values for the given label.

func (*BitPrefixInvertedIndex) Lookup

func (ii *BitPrefixInvertedIndex) Lookup(matchers []*labels.Matcher, shard *shard.Annotation) ([]model.Fingerprint, error)

Lookup all fingerprints for the provided matchers.

type Interface

type Interface interface {
	Add(labels []*typesv1.LabelPair, fp model.Fingerprint) labels.Labels
	Lookup(matchers []*labels.Matcher, shard *shard.Annotation) ([]model.Fingerprint, error)
	LabelNames(shard *shard.Annotation) ([]string, error)
	LabelValues(name string, shard *shard.Annotation) ([]string, error)
	Delete(labels labels.Labels, fp model.Fingerprint)
}

type InvertedIndex

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

InvertedIndex implements a in-memory inverted index from label pairs to fingerprints. It is sharded to reduce lock contention on writes.

func NewWithShards

func NewWithShards(totalShards uint32) *InvertedIndex

func (*InvertedIndex) Add

Add a fingerprint under the specified labels. NOTE: memory for `labels` is unsafe; anything retained beyond the life of this function must be copied

func (*InvertedIndex) Delete

func (ii *InvertedIndex) Delete(labels []*typesv1.LabelPair, fp model.Fingerprint)

Delete a fingerprint with the given label pairs.

func (*InvertedIndex) LabelNames

func (ii *InvertedIndex) LabelNames(shard *shard.Annotation) ([]string, error)

LabelNames returns all label names.

func (*InvertedIndex) LabelValues

func (ii *InvertedIndex) LabelValues(name string, shard *shard.Annotation) ([]string, error)

LabelValues returns the values for the given label.

func (*InvertedIndex) Lookup

func (ii *InvertedIndex) Lookup(matchers []*labels.Matcher, shard *shard.Annotation) ([]model.Fingerprint, error)

Lookup all fingerprints for the provided matchers.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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