persistence

package
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Dec 10, 2020 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type JournalPersister

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

JournalPersister saves data in an embedded Journal store

func (*JournalPersister) Finalize

func (lp *JournalPersister) Finalize()

Finalize tells persister that it can finalize and close writes It is an error to send new items to persist once Finalize has been called

func (*JournalPersister) Persist

func (lp *JournalPersister) Persist(enc gob.GobEncoder) error

Persist stores an entry to given storage

func (*JournalPersister) PersistStream

func (lp *JournalPersister) PersistStream(encC chan gob.GobEncoder) chan error

PersistStream listens to the input channel and persists entries to storage

func (*JournalPersister) Recover

func (lp *JournalPersister) Recover() (chan []byte, error)

Recover reads back persisted data and emits entries

func (*JournalPersister) ResetDataDir

func (lp *JournalPersister) ResetDataDir() error

ResetDataDir tells persister to *delete* everything in the datadir

type Persister

type Persister interface {
	ResetDataDir() error

	Persist(gob.GobEncoder) error
	PersistStream(chan gob.GobEncoder) chan error
	Finalize()

	Recover() (chan []byte, error)
}

Persister saves the data given to it to a durable data store like a disk, S3 buckets, durable streams etc

func NewJournalPersister

func NewJournalPersister(s Storage) Persister

NewJournalPersister initializes a Journal backed persister

type Storage

type Storage interface {
	// Reset deletes any data stored in the storage
	Reset() error
	// Writer creates a new io.WriteCloser for the storage
	Writer() (io.WriteCloser, error)
	// Reader creates a new io.ReadCloser for the storage
	Reader() (io.ReadCloser, error)

	fmt.Stringer
	// contains filtered or unexported methods
}

Storage provides the underlying data store used by the persister

func InMemStorage

func InMemStorage() (Storage, error)

InMemStorage for integration testing

func NewBlobStore

func NewBlobStore(cfg StoreConfig) (Storage, error)

NewBlobStore creates a new blob Storage

type StoreConfig

type StoreConfig struct {
	Bucket *url.URL
}

StoreConfig - config for data store

func (StoreConfig) Storage

func (cfg StoreConfig) Storage() (Storage, error)

Storage creates a new Storage based on the config

Jump to

Keyboard shortcuts

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