pgkeyvalue

package
v0.3.26 Latest Latest
Warning

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

Go to latest
Published: Aug 9, 2022 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type PGKeyValueStore

type PGKeyValueStore struct {
	Logger *logrus.Logger
	// contains filtered or unexported fields
}

PGKeyValueStore is a time-limited key-value store backed by postgres with a local LRU cache. The store is write-only, i.e., writing to an existing key will return an error (of type *armadaerrors.ErrAlreadyExists). Keys can only be deleted by running the cleanup function. Deleting keys does not cause caches to update, i.e., nodes may have an inconsistent view if keys are deleted.

func New

func New(db *pgxpool.Pool, cacheSize int, tableName string) (*PGKeyValueStore, error)

func (*PGKeyValueStore) Add

func (c *PGKeyValueStore) Add(ctx context.Context, key string, value []byte) (bool, error)

Add adds a key-value pair. Returns true if successful and false if the key already exists. The posgres table backing the key-value storage is created automatically if it doesn't already exist.

func (*PGKeyValueStore) AddKey

func (c *PGKeyValueStore) AddKey(ctx context.Context, key string) (bool, error)

AddKey is equivalent to Add(ctx, key, nil).

func (*PGKeyValueStore) Cleanup

func (c *PGKeyValueStore) Cleanup(ctx context.Context, lifespan time.Duration) error

Cleanup removes all key-value pairs older than lifespan.

func (*PGKeyValueStore) Get

func (c *PGKeyValueStore) Get(ctx context.Context, key string) ([]byte, error)

Get returns the value associated with the provided key, or &armadaerrors.ErrNotFound if the key can't be found.

func (*PGKeyValueStore) PeriodicCleanup

func (c *PGKeyValueStore) PeriodicCleanup(ctx context.Context, interval time.Duration, lifespan time.Duration) error

PeriodicCleanup starts a goroutine that automatically runs the cleanup job every interval until the provided context is cancelled.

Jump to

Keyboard shortcuts

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