local

package
v1.6.2-0...-b66c343 Latest Latest
Warning

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

Go to latest
Published: Apr 2, 2024 License: AGPL-3.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DBOperationRead = iota
	DBOperationWrite
)

Variables

View Source
var (
	IndexBucketName         = []byte("index")
	ErrUnexistentBoltDB     = errors.New("boltdb file does not exist")
	ErrEmptyIndexBucketName = errors.New("empty index bucket name")
)
View Source
var Fixtures = []testutils.Fixture{
	&fixture{
		name: "boltdb",
	},
}

Fixtures for unit testing GCP storage.

Functions

func NewTableClient

func NewTableClient(directory string) (index.TableClient, error)

NewTableClient returns a new TableClient.

func NewWriteBatch

func NewWriteBatch() index.WriteBatch

func OpenBoltdbFile

func OpenBoltdbFile(path string) (*bbolt.DB, error)

Open the database. Set Timeout to avoid obtaining file lock wait indefinitely.

func QueryDB

func QueryDB(ctx context.Context, db *bbolt.DB, bucketName []byte, query index.Query,
	callback index.QueryPagesCallback,
) error

func QueryWithCursor

func QueryWithCursor(_ context.Context, c *bbolt.Cursor, query index.Query, callback index.QueryPagesCallback) error

func WriteToDB

func WriteToDB(_ context.Context, db *bbolt.DB, bucketName []byte, writes TableWrites) error

Types

type BoltDBConfig

type BoltDBConfig struct {
	Directory string `yaml:"directory"`
}

BoltDBConfig for a BoltDB index client.

func (*BoltDBConfig) RegisterFlags

func (cfg *BoltDBConfig) RegisterFlags(f *flag.FlagSet)

RegisterFlags registers flags.

type BoltIndexClient

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

func NewBoltDBIndexClient

func NewBoltDBIndexClient(cfg BoltDBConfig) (*BoltIndexClient, error)

NewBoltDBIndexClient creates a new IndexClient that used BoltDB.

func (*BoltIndexClient) BatchWrite

func (b *BoltIndexClient) BatchWrite(ctx context.Context, batch index.WriteBatch) error

func (*BoltIndexClient) GetDB

func (b *BoltIndexClient) GetDB(name string, operation int) (*bbolt.DB, error)

GetDB should always return a db for write operation unless an error occurs while doing so. While for read operation it should throw ErrUnexistentBoltDB error if file does not exist for reading

func (*BoltIndexClient) NewWriteBatch

func (b *BoltIndexClient) NewWriteBatch() index.WriteBatch

func (*BoltIndexClient) QueryPages

func (b *BoltIndexClient) QueryPages(ctx context.Context, queries []index.Query, callback index.QueryPagesCallback) error

func (*BoltIndexClient) Stop

func (b *BoltIndexClient) Stop()

type BoltWriteBatch

type BoltWriteBatch struct {
	Writes map[string]TableWrites
}

func (*BoltWriteBatch) Add

func (b *BoltWriteBatch) Add(tableName, hashValue string, rangeValue []byte, value []byte)

func (*BoltWriteBatch) Delete

func (b *BoltWriteBatch) Delete(tableName, hashValue string, rangeValue []byte)

type FSConfig

type FSConfig struct {
	Directory string `yaml:"directory"`
}

FSConfig is the config for a FSObjectClient.

func (*FSConfig) RegisterFlags

func (cfg *FSConfig) RegisterFlags(f *flag.FlagSet)

RegisterFlags registers flags.

func (*FSConfig) RegisterFlagsWithPrefix

func (cfg *FSConfig) RegisterFlagsWithPrefix(prefix string, f *flag.FlagSet)

RegisterFlags registers flags with prefix.

func (*FSConfig) ToCortexLocalConfig

func (cfg *FSConfig) ToCortexLocalConfig() local.Config

type FSObjectClient

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

FSObjectClient holds config for filesystem as object store

func NewFSObjectClient

func NewFSObjectClient(cfg FSConfig) (*FSObjectClient, error)

NewFSObjectClient makes a chunk.Client which stores chunks as files in the local filesystem.

func (*FSObjectClient) DeleteChunksBefore

func (f *FSObjectClient) DeleteChunksBefore(_ context.Context, ts time.Time) error

DeleteChunksBefore implements BucketClient

func (*FSObjectClient) DeleteObject

func (f *FSObjectClient) DeleteObject(_ context.Context, objectKey string) error

func (*FSObjectClient) GetObject

func (f *FSObjectClient) GetObject(_ context.Context, objectKey string) (io.ReadCloser, int64, error)

GetObject from the store

func (*FSObjectClient) IsObjectNotFoundErr

func (f *FSObjectClient) IsObjectNotFoundErr(err error) bool

IsObjectNotFoundErr returns true if error means that object is not found. Relevant to GetObject and DeleteObject operations.

func (*FSObjectClient) IsRetryableErr

func (f *FSObjectClient) IsRetryableErr(error) bool

TODO(dannyk): implement for client

func (*FSObjectClient) List

List implements chunk.ObjectClient. FSObjectClient assumes that prefix is a directory, and only supports "" and "/" delimiters.

func (*FSObjectClient) ObjectExists

func (f *FSObjectClient) ObjectExists(_ context.Context, objectKey string) (bool, error)

func (*FSObjectClient) PutObject

func (f *FSObjectClient) PutObject(_ context.Context, objectKey string, object io.ReadSeeker) error

PutObject into the store

func (FSObjectClient) Stop

func (FSObjectClient) Stop()

Stop implements ObjectClient

type TableClient

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

func (*TableClient) CreateTable

func (c *TableClient) CreateTable(_ context.Context, desc config.TableDesc) error

func (*TableClient) DeleteTable

func (c *TableClient) DeleteTable(_ context.Context, name string) error

func (*TableClient) DescribeTable

func (c *TableClient) DescribeTable(_ context.Context, name string) (desc config.TableDesc, isActive bool, err error)

func (*TableClient) ListTables

func (c *TableClient) ListTables(_ context.Context) ([]string, error)

func (*TableClient) Stop

func (*TableClient) Stop()

func (*TableClient) UpdateTable

func (c *TableClient) UpdateTable(_ context.Context, _, _ config.TableDesc) error

type TableWrites

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

Jump to

Keyboard shortcuts

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