downloads

package
v2.1.1-0...-c609277 Latest Latest
Warning

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

Go to latest
Published: Aug 30, 2021 License: AGPL-3.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BoltDBIndexClient

type BoltDBIndexClient interface {
	QueryWithCursor(_ context.Context, c *bbolt.Cursor, query chunk.IndexQuery, callback func(chunk.IndexQuery, chunk.ReadBatch) (shouldContinue bool)) error
}

type Config

type Config struct {
	CacheDir          string
	SyncInterval      time.Duration
	CacheTTL          time.Duration
	QueryReadyNumDays int
}

type StorageClient

type StorageClient interface {
	ListTables(ctx context.Context) ([]string, error)
	ListFiles(ctx context.Context, tableName string) ([]storage.IndexFile, error)
	GetFile(ctx context.Context, tableName, fileName string) (io.ReadCloser, error)
	IsFileNotFoundErr(err error) bool
}

type Table

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

Table is a collection of multiple files created for a same table by various ingesters. All the public methods are concurrency safe and take care of mutexes to avoid any data race.

func LoadTable

func LoadTable(ctx context.Context, name, cacheLocation string, storageClient StorageClient, boltDBIndexClient BoltDBIndexClient, metrics *metrics) (*Table, error)

LoadTable loads a table from local storage(syncs the table too if we have it locally) or downloads it from the shared store.

func NewTable

func NewTable(spanCtx context.Context, name, cacheLocation string, storageClient StorageClient, boltDBIndexClient BoltDBIndexClient, metrics *metrics) *Table

func (*Table) CleanupAllDBs

func (t *Table) CleanupAllDBs() error

Closes reference to all the open dbs and removes the local file.

func (*Table) Close

func (t *Table) Close()

Closes references to all the dbs.

func (*Table) Err

func (t *Table) Err() error

Err returns the err which is usually set when there was any issue in init.

func (*Table) LastUsedAt

func (t *Table) LastUsedAt() time.Time

LastUsedAt returns the time at which table was last used for querying.

func (*Table) MultiQueries

func (t *Table) MultiQueries(ctx context.Context, queries []chunk.IndexQuery, callback chunk_util.Callback) error

MultiQueries runs multiple queries without having to take lock multiple times for each query.

func (*Table) Sync

func (t *Table) Sync(ctx context.Context) error

Sync downloads updated and new files from the storage relevant for the table and removes the deleted ones

func (*Table) UpdateLastUsedAt

func (t *Table) UpdateLastUsedAt()

type TableManager

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

func NewTableManager

func NewTableManager(cfg Config, boltIndexClient BoltDBIndexClient, indexStorageClient StorageClient, registerer prometheus.Registerer) (*TableManager, error)

func (*TableManager) QueryPages

func (tm *TableManager) QueryPages(ctx context.Context, queries []chunk.IndexQuery, callback chunk_util.Callback) error

func (*TableManager) Stop

func (tm *TableManager) Stop()

Jump to

Keyboard shortcuts

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