Documentation ¶
Index ¶
- Constants
- Variables
- func NewTableClient(directory string) (chunk.TableClient, error)
- func OpenBoltdbFile(path string) (*bbolt.DB, error)
- type BoltDBConfig
- type BoltIndexClient
- func (b *BoltIndexClient) BatchWrite(ctx context.Context, batch chunk.WriteBatch) error
- func (b *BoltIndexClient) GetDB(name string, operation int) (*bbolt.DB, error)
- func (b *BoltIndexClient) NewWriteBatch() chunk.WriteBatch
- func (b *BoltIndexClient) QueryDB(ctx context.Context, db *bbolt.DB, bucketName []byte, query chunk.IndexQuery, ...) error
- func (b *BoltIndexClient) QueryPages(ctx context.Context, queries []chunk.IndexQuery, ...) error
- func (b *BoltIndexClient) QueryWithCursor(_ context.Context, c *bbolt.Cursor, query chunk.IndexQuery, ...) error
- func (b *BoltIndexClient) Stop()
- func (b *BoltIndexClient) WriteToDB(_ context.Context, db *bbolt.DB, bucketName []byte, writes TableWrites) error
- type BoltWriteBatch
- type FSConfig
- type FSObjectClient
- func (f *FSObjectClient) DeleteChunksBefore(ctx context.Context, ts time.Time) error
- func (f *FSObjectClient) DeleteObject(ctx context.Context, objectKey string) error
- func (f *FSObjectClient) GetObject(_ context.Context, objectKey string) (io.ReadCloser, int64, error)
- func (f *FSObjectClient) IsObjectNotFoundErr(err error) bool
- func (f *FSObjectClient) List(ctx context.Context, prefix, delimiter string) ([]chunk.StorageObject, []chunk.StorageCommonPrefix, error)
- func (f *FSObjectClient) PutObject(_ context.Context, objectKey string, object io.ReadSeeker) error
- func (FSObjectClient) Stop()
- type TableClient
- func (c *TableClient) CreateTable(ctx context.Context, desc chunk.TableDesc) error
- func (c *TableClient) DeleteTable(ctx context.Context, name string) error
- func (c *TableClient) DescribeTable(ctx context.Context, name string) (desc chunk.TableDesc, isActive bool, err error)
- func (c *TableClient) ListTables(ctx context.Context) ([]string, error)
- func (*TableClient) Stop()
- func (c *TableClient) UpdateTable(ctx context.Context, current, expected chunk.TableDesc) error
- type TableWrites
Constants ¶
const ( DBOperationRead = iota DBOperationWrite )
Variables ¶
var ( IndexBucketName = []byte("index") ErrUnexistentBoltDB = errors.New("boltdb file does not exist") ErrEmptyIndexBucketName = errors.New("empty index bucket name") )
var Fixtures = []testutils.Fixture{
&fixture{
name: "boltdb",
},
}
Fixtures for unit testing GCP storage.
Functions ¶
func NewTableClient ¶
func NewTableClient(directory string) (chunk.TableClient, error)
NewTableClient returns a new TableClient.
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 chunk.WriteBatch) error
func (*BoltIndexClient) GetDB ¶
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() chunk.WriteBatch
func (*BoltIndexClient) QueryDB ¶
func (b *BoltIndexClient) QueryDB(ctx context.Context, db *bbolt.DB, bucketName []byte, query chunk.IndexQuery, callback func(chunk.IndexQuery, chunk.ReadBatch) (shouldContinue bool)) error
func (*BoltIndexClient) QueryPages ¶
func (b *BoltIndexClient) QueryPages(ctx context.Context, queries []chunk.IndexQuery, callback func(chunk.IndexQuery, chunk.ReadBatch) (shouldContinue bool)) error
func (*BoltIndexClient) QueryWithCursor ¶
func (b *BoltIndexClient) QueryWithCursor(_ context.Context, c *bbolt.Cursor, query chunk.IndexQuery, callback func(chunk.IndexQuery, chunk.ReadBatch) (shouldContinue bool)) error
func (*BoltIndexClient) Stop ¶
func (b *BoltIndexClient) Stop()
func (*BoltIndexClient) WriteToDB ¶
func (b *BoltIndexClient) WriteToDB(_ context.Context, db *bbolt.DB, bucketName []byte, writes TableWrites) error
type BoltWriteBatch ¶
type BoltWriteBatch struct {
Writes map[string]TableWrites
}
func (*BoltWriteBatch) Add ¶
func (b *BoltWriteBatch) Add(tableName, hashValue string, rangeValue, 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 ¶
RegisterFlags registers flags.
func (*FSConfig) RegisterFlagsWithPrefix ¶
RegisterFlags registers flags with prefix.
func (*FSConfig) ToCortexLocalConfig ¶
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 ¶
DeleteChunksBefore implements BucketClient
func (*FSObjectClient) DeleteObject ¶
func (f *FSObjectClient) DeleteObject(ctx 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) List ¶
func (f *FSObjectClient) List(ctx context.Context, prefix, delimiter string) ([]chunk.StorageObject, []chunk.StorageCommonPrefix, error)
List implements chunk.ObjectClient. FSObjectClient assumes that prefix is a directory, and only supports "" and "/" delimiters.
func (*FSObjectClient) PutObject ¶
func (f *FSObjectClient) PutObject(_ context.Context, objectKey string, object io.ReadSeeker) error
PutObject into the store
type TableClient ¶
type TableClient struct {
// contains filtered or unexported fields
}
func (*TableClient) CreateTable ¶
func (*TableClient) DeleteTable ¶
func (c *TableClient) DeleteTable(ctx context.Context, name string) error
func (*TableClient) DescribeTable ¶
func (*TableClient) ListTables ¶
func (c *TableClient) ListTables(ctx context.Context) ([]string, error)
func (*TableClient) Stop ¶
func (*TableClient) Stop()
func (*TableClient) UpdateTable ¶
type TableWrites ¶
type TableWrites struct {
// contains filtered or unexported fields
}