metastore

package
v3.6.7 Latest Latest
Warning

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

Go to latest
Published: Feb 23, 2026 License: AGPL-3.0 Imports: 35 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidLengthMetastore = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowMetastore   = fmt.Errorf("proto: integer overflow")
)

Functions

This section is empty.

Types

type Config added in v3.6.0

type Config struct {
	IndexStoragePrefix string `yaml:"index_storage_prefix" experimental:"true"`
	PartitionRatio     int    `yaml:"partition_ratio" experimental:"true"`
}

Config is the configuration block for the metastore settings.

func (*Config) RegisterFlags added in v3.6.0

func (c *Config) RegisterFlags(f *flag.FlagSet)

RegisterFlags registers the flags for the metastore settings.

func (*Config) Validate added in v3.6.0

func (c *Config) Validate() error

Validate validates the metastore settings.

type DataobjSectionDescriptor added in v3.6.0

type DataobjSectionDescriptor struct {
	SectionKey

	StreamIDs []int64
	RowCount  int
	Size      int64
	Start     time.Time
	End       time.Time
}

func NewSectionDescriptor added in v3.6.0

func NewSectionDescriptor(pointer pointers.SectionPointer) *DataobjSectionDescriptor

func (*DataobjSectionDescriptor) Merge added in v3.6.0

type Metastore

type Metastore interface {
	// Streams returns all streams corresponding to the given matchers between [start,end]
	Streams(ctx context.Context, start, end time.Time, matchers ...*labels.Matcher) ([]*labels.Labels, error)

	// DataObjects returns paths to all matching the given matchers between [start,end]
	// TODO(chaudum); The comment is not correct, because the implementation does not filter by matchers, only by [start, end].
	DataObjects(ctx context.Context, start, end time.Time, matchers ...*labels.Matcher) ([]string, error)

	// StreamsIDs returns object store paths and stream IDs for all matching objects for the given matchers between [start,end]
	StreamIDs(ctx context.Context, start, end time.Time, matchers ...*labels.Matcher) ([]string, [][]int64, []int, error)

	// Sections returns a list of SectionDescriptors, including metadata (stream IDs, start & end times, bytes), for the given matchers & predicates between [start,end]
	Sections(ctx context.Context, start, end time.Time, matchers []*labels.Matcher, predicates []*labels.Matcher) ([]*DataobjSectionDescriptor, error)

	// Labels returns all possible labels from matching streams between [start,end]
	Labels(ctx context.Context, start, end time.Time, matchers ...*labels.Matcher) ([]string, error) // Used to get possible labels for a given stream

	// Values returns all possible values for the given label matchers between [start,end]
	Values(ctx context.Context, start, end time.Time, matchers ...*labels.Matcher) ([]string, error) // Used to get all values for a given set of label matchers
}

type ObjectMetastore

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

func NewObjectMetastore

func NewObjectMetastore(bucket objstore.Bucket, logger log.Logger, reg prometheus.Registerer) *ObjectMetastore

func (*ObjectMetastore) DataObjects

func (m *ObjectMetastore) DataObjects(ctx context.Context, start, end time.Time, _ ...*labels.Matcher) ([]string, error)

func (*ObjectMetastore) Labels

func (m *ObjectMetastore) Labels(ctx context.Context, start, end time.Time, matchers ...*labels.Matcher) ([]string, error)

func (*ObjectMetastore) Sections added in v3.6.0

func (m *ObjectMetastore) Sections(ctx context.Context, start, end time.Time, matchers []*labels.Matcher, predicates []*labels.Matcher) ([]*DataobjSectionDescriptor, error)

func (*ObjectMetastore) StreamIDs added in v3.6.0

func (m *ObjectMetastore) StreamIDs(ctx context.Context, start, end time.Time, matchers ...*labels.Matcher) ([]string, [][]int64, []int, error)

func (*ObjectMetastore) Streams

func (m *ObjectMetastore) Streams(ctx context.Context, start, end time.Time, matchers ...*labels.Matcher) ([]*labels.Labels, error)

func (*ObjectMetastore) Values

func (m *ObjectMetastore) Values(ctx context.Context, start, end time.Time, matchers ...*labels.Matcher) ([]string, error)

type ObjectWrittenEvent added in v3.6.0

type ObjectWrittenEvent struct {
	ObjectPath string `protobuf:"bytes,2,opt,name=objectPath,proto3" json:"objectPath,omitempty"`
	WriteTime  string `protobuf:"bytes,3,opt,name=writeTime,proto3" json:"writeTime,omitempty"`
}

ColumnInfo describes an individual column within a data set.

func (*ObjectWrittenEvent) Descriptor added in v3.6.0

func (*ObjectWrittenEvent) Descriptor() ([]byte, []int)

func (*ObjectWrittenEvent) Equal added in v3.6.0

func (this *ObjectWrittenEvent) Equal(that interface{}) bool

func (*ObjectWrittenEvent) GetObjectPath added in v3.6.0

func (m *ObjectWrittenEvent) GetObjectPath() string

func (*ObjectWrittenEvent) GetWriteTime added in v3.6.0

func (m *ObjectWrittenEvent) GetWriteTime() string

func (*ObjectWrittenEvent) GoString added in v3.6.0

func (this *ObjectWrittenEvent) GoString() string

func (*ObjectWrittenEvent) Marshal added in v3.6.0

func (m *ObjectWrittenEvent) Marshal() (dAtA []byte, err error)

func (*ObjectWrittenEvent) MarshalTo added in v3.6.0

func (m *ObjectWrittenEvent) MarshalTo(dAtA []byte) (int, error)

func (*ObjectWrittenEvent) MarshalToSizedBuffer added in v3.6.0

func (m *ObjectWrittenEvent) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*ObjectWrittenEvent) ProtoMessage added in v3.6.0

func (*ObjectWrittenEvent) ProtoMessage()

func (*ObjectWrittenEvent) Reset added in v3.6.0

func (m *ObjectWrittenEvent) Reset()

func (*ObjectWrittenEvent) Size added in v3.6.0

func (m *ObjectWrittenEvent) Size() (n int)

func (*ObjectWrittenEvent) String added in v3.6.0

func (this *ObjectWrittenEvent) String() string

func (*ObjectWrittenEvent) Unmarshal added in v3.6.0

func (m *ObjectWrittenEvent) Unmarshal(dAtA []byte) error

func (*ObjectWrittenEvent) XXX_DiscardUnknown added in v3.6.0

func (m *ObjectWrittenEvent) XXX_DiscardUnknown()

func (*ObjectWrittenEvent) XXX_Marshal added in v3.6.0

func (m *ObjectWrittenEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*ObjectWrittenEvent) XXX_Merge added in v3.6.0

func (m *ObjectWrittenEvent) XXX_Merge(src proto.Message)

func (*ObjectWrittenEvent) XXX_Size added in v3.6.0

func (m *ObjectWrittenEvent) XXX_Size() int

func (*ObjectWrittenEvent) XXX_Unmarshal added in v3.6.0

func (m *ObjectWrittenEvent) XXX_Unmarshal(b []byte) error

type SectionKey added in v3.6.0

type SectionKey struct {
	ObjectPath string
	SectionIdx int64
}

type TableOfContentsWriter added in v3.6.0

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

The TableOfContents (ToC) writer manages the metastore's Table of Contents files, which are a list of other data objects in storage for a particular time range. The Table of Contents files are used to look up other objects based on a time range, either index files or the log objects themselves. All entries are expected to have an applicable time window.

func NewTableOfContentsWriter added in v3.6.0

func NewTableOfContentsWriter(bucket objstore.Bucket, logger log.Logger) *TableOfContentsWriter

NewTableOfContentsWriter creates a new Writer for adding entries to the metastore's Table of Contents files.

func (*TableOfContentsWriter) RegisterMetrics added in v3.6.0

func (m *TableOfContentsWriter) RegisterMetrics(reg prometheus.Registerer) error

func (*TableOfContentsWriter) UnregisterMetrics added in v3.6.0

func (m *TableOfContentsWriter) UnregisterMetrics(reg prometheus.Registerer)

func (*TableOfContentsWriter) WriteEntry added in v3.6.0

func (m *TableOfContentsWriter) WriteEntry(ctx context.Context, dataobjPath string, tenantTimeRanges []multitenancy.TimeRange) error

WriteEntry adds the provided path to the Table of Contents file. The min/max timestamps are stored as metastore for the new entry can be accessed by time.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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