database

package
v2.0.0-beta.8 Latest Latest
Warning

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

Go to latest
Published: Sep 9, 2022 License: Apache-2.0 Imports: 17 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrNothingToCleanUp is returned when nothing is there to clean up in the database.
	ErrNothingToCleanUp = errors.New("Nothing to clean up in the databases")
)

Functions

func CleanupCaller

func CleanupCaller(handler interface{}, params ...interface{})

func Exists

func Exists(dbPath string) (bool, error)

Exists checks if the database folder exists and is not empty.

func NewPebbleDB

func NewPebbleDB(directory string, reportCompactionRunning func(running bool), enableFilter bool) (*pebbleDB.DB, error)

NewPebbleDB creates a new pebble DB instance.

func NewRocksDB

func NewRocksDB(path string) (*rocksdb.RocksDB, error)

NewRocksDB creates a new RocksDB instance.

func StoreWithDefaultSettings

func StoreWithDefaultSettings(path string, createDatabaseIfNotExists bool, dbEngine ...Engine) (kvstore.KVStore, error)

StoreWithDefaultSettings returns a kvstore with default settings. It also checks if the database engine is correct.

Types

type Cleanup

type Cleanup struct {
	Start time.Time
	End   time.Time
}

func (*Cleanup) MarshalJSON

func (c *Cleanup) MarshalJSON() ([]byte, error)

type Database

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

Database holds the underlying KVStore and database specific functions.

func New

func New(databaseDirectory string, kvStore kvstore.KVStore, engine Engine, metrics *metrics.DatabaseMetrics, events *Events, compactionSupported bool, compactionRunningFunc func() bool) *Database

New creates a new Database instance.

func (*Database) CompactionRunning

func (db *Database) CompactionRunning() bool

CompactionRunning returns whether a compaction is running.

func (*Database) CompactionSupported

func (db *Database) CompactionSupported() bool

CompactionSupported returns whether the database engine supports compaction.

func (*Database) Engine

func (db *Database) Engine() Engine

Engine returns the database engine.

func (*Database) Events

func (db *Database) Events() *Events

Events returns the events of the database.

func (*Database) KVStore

func (db *Database) KVStore() kvstore.KVStore

KVStore returns the underlying KVStore.

func (*Database) Metrics

func (db *Database) Metrics() *metrics.DatabaseMetrics

Metrics returns the database metrics.

func (*Database) Size

func (db *Database) Size() (int64, error)

Size returns the size of the database.

type Engine

type Engine string
const (
	EngineUnknown Engine = "unknown"
	EngineAuto    Engine = "auto"
	EngineRocksDB Engine = "rocksdb"
	EnginePebble  Engine = "pebble"
	EngineMapDB   Engine = "mapdb"
)

func CheckEngine

func CheckEngine(dbPath string, createDatabaseIfNotExists bool, dbEngine ...Engine) (Engine, error)

CheckEngine checks if the correct database engine is used. This function stores a so called "database info file" in the database folder or checks if an existing "database info file" contains the correct engine. Otherwise the files in the database folder are not compatible.

func EngineAllowed

func EngineAllowed(dbEngine Engine, allowedEngines ...Engine) (Engine, error)

EngineAllowed checks if the database engine is allowed.

func EngineFromString

func EngineFromString(engineStr string) (Engine, error)

EngineFromString parses an engine from a string. Returns an error if the engine is unknown.

func EngineFromStringAllowed

func EngineFromStringAllowed(dbEngineStr string, allowedEngines ...Engine) (Engine, error)

EngineFromStringAllowed parses an engine from a string and checks if the database engine is allowed.

func LoadEngineFromFile

func LoadEngineFromFile(path string) (Engine, error)

LoadEngineFromFile returns the engine from the "database info file".

type Events

type Events struct {
	Cleanup    *events.Event
	Compaction *events.Event
}

Jump to

Keyboard shortcuts

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