inmem

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Sep 20, 2022 License: MPL-2.0 Imports: 11 Imported by: 15

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	PutDisabledError      = errors.New("put operations disabled in inmem backend")
	GetDisabledError      = errors.New("get operations disabled in inmem backend")
	DeleteDisabledError   = errors.New("delete operations disabled in inmem backend")
	ListDisabledError     = errors.New("list operations disabled in inmem backend")
	GetInTxnDisabledError = errors.New("get operations inside transactions are disabled in inmem backend")
)

Functions

func NewInmem

func NewInmem(conf map[string]string, logger log.Logger) (physical.Backend, error)

NewInmem constructs a new in-memory backend

func NewInmemHA

func NewInmemHA(_ map[string]string, logger log.Logger) (physical.Backend, error)

NewInmemHA constructs a new in-memory HA backend. This is only for testing.

func NewTransactionalInmem

func NewTransactionalInmem(conf map[string]string, logger log.Logger) (physical.Backend, error)

Basically for now just creates a permit pool of size 1 so only one operation can run at a time

func NewTransactionalInmemHA

func NewTransactionalInmemHA(_ map[string]string, logger log.Logger) (physical.Backend, error)

Types

type InmemBackend

type InmemBackend struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

InmemBackend is an in-memory only physical backend. It is useful for testing and development situations where the data is not expected to be durable.

func (*InmemBackend) Delete

func (i *InmemBackend) Delete(ctx context.Context, key string) error

Delete is used to permanently delete an entry

func (*InmemBackend) DeleteInternal

func (i *InmemBackend) DeleteInternal(ctx context.Context, key string) error

func (*InmemBackend) FailDelete

func (i *InmemBackend) FailDelete(fail bool)

func (*InmemBackend) FailGet

func (i *InmemBackend) FailGet(fail bool)

func (*InmemBackend) FailGetInTxn added in v0.6.0

func (i *InmemBackend) FailGetInTxn(fail bool)

func (*InmemBackend) FailList

func (i *InmemBackend) FailList(fail bool)

func (*InmemBackend) FailPut

func (i *InmemBackend) FailPut(fail bool)

func (*InmemBackend) Get

func (i *InmemBackend) Get(ctx context.Context, key string) (*physical.Entry, error)

Get is used to fetch an entry

func (*InmemBackend) GetInternal

func (i *InmemBackend) GetInternal(ctx context.Context, key string) (*physical.Entry, error)

func (*InmemBackend) List

func (i *InmemBackend) List(ctx context.Context, prefix string) ([]string, error)

List is used to list all the keys under a given prefix, up to the next prefix.

func (*InmemBackend) ListInternal

func (i *InmemBackend) ListInternal(ctx context.Context, prefix string) ([]string, error)

func (*InmemBackend) Put

func (i *InmemBackend) Put(ctx context.Context, entry *physical.Entry) error

Put is used to insert or update an entry

func (*InmemBackend) PutInternal

func (i *InmemBackend) PutInternal(ctx context.Context, entry *physical.Entry) error

type InmemHABackend

type InmemHABackend struct {
	physical.Backend
	// contains filtered or unexported fields
}

func (*InmemHABackend) HAEnabled

func (i *InmemHABackend) HAEnabled() bool

HAEnabled indicates whether the HA functionality should be exposed. Currently always returns true.

func (*InmemHABackend) LockMapSize

func (i *InmemHABackend) LockMapSize() int

LockMapSize is used in some tests to determine whether this backend has ever been used for HA purposes rather than simply for storage

func (*InmemHABackend) LockWith

func (i *InmemHABackend) LockWith(key, value string) (physical.Lock, error)

LockWith is used for mutual exclusion based on the given key.

type InmemLock

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

InmemLock is an in-memory Lock implementation for the HABackend

func (*InmemLock) Lock

func (i *InmemLock) Lock(stopCh <-chan struct{}) (<-chan struct{}, error)

func (*InmemLock) Unlock

func (i *InmemLock) Unlock() error

func (*InmemLock) Value

func (i *InmemLock) Value() (bool, string, error)

type TransactionalInmemBackend

type TransactionalInmemBackend struct {
	InmemBackend
}

func (*TransactionalInmemBackend) Transaction

func (t *TransactionalInmemBackend) Transaction(ctx context.Context, txns []*physical.TxnEntry) error

Transaction implements the transaction interface

type TransactionalInmemHABackend

type TransactionalInmemHABackend struct {
	physical.Transactional
	InmemHABackend
}

Jump to

Keyboard shortcuts

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