manager

package
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: Jul 12, 2024 License: BSD-3-Clause Imports: 16 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Manager

type Manager interface {
	// Current returns the database with the current database version.
	Current() *VersionedDatabase

	// Previous returns the database prior to the current database and true if a
	// previous database exists.
	Previous() (*VersionedDatabase, bool)

	// GetDatabases returns all the managed databases in order from current to
	// the oldest version.
	GetDatabases() []*VersionedDatabase

	// Close all of the databases controlled by the manager.
	Close() error

	// NewPrefixDBManager returns a new database manager with each of its
	// databases prefixed with [prefix].
	NewPrefixDBManager(prefix []byte) Manager

	// NewNestedPrefixDBManager returns a new database manager where each of its
	// databases has the nested prefix [prefix] applied to it.
	NewNestedPrefixDBManager(prefix []byte) Manager

	// NewMeterDBManager returns a new database manager with each of its
	// databases wrapped with a meterdb instance to support metrics on database
	// performance.
	NewMeterDBManager(namespace string, registerer prometheus.Registerer) (Manager, error)

	// NewCompleteMeterDBManager wraps each database instance with a meterdb
	// instance. The namespace is concatenated with the version of the database.
	// Note: calling this more than once with the same [namespace] will cause a
	// conflict error for the [registerer].
	NewCompleteMeterDBManager(namespace string, registerer prometheus.Registerer) (Manager, error)
}

func NewLevelDB

func NewLevelDB(
	dbDirPath string,
	dbConfig []byte,
	log logging.Logger,
	currentVersion *version.Semantic,
	namespace string,
	reg prometheus.Registerer,
) (Manager, error)

NewLevelDB creates a database manager of levelDBs at [filePath] by creating a database instance from each directory with a version <= [currentVersion]. If [includePreviousVersions], opens previous database versions and includes them in the returned Manager.

func NewManagerFromDBs

func NewManagerFromDBs(dbs []*VersionedDatabase) (Manager, error)

NewManagerFromDBs

func NewMemDB

func NewMemDB(currentVersion *version.Semantic) Manager

NewMemDB returns a database manager with a single memdb instance with [currentVersion].

type VersionedDatabase

type VersionedDatabase struct {
	Database database.Database
	Version  *version.Semantic
}

func (*VersionedDatabase) Close

func (db *VersionedDatabase) Close() error

Close the underlying database

func (*VersionedDatabase) Less

func (db *VersionedDatabase) Less(other *VersionedDatabase) bool

Note this sorts in descending order (newest version --> oldest version)

Jump to

Keyboard shortcuts

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