database

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Mar 1, 2024 License: LGPL-3.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultDatabaseDir = "db"

Variables

View Source
var ErrNotFound = pebble.ErrNotFound

Functions

func ClearDatabase

func ClearDatabase(basepath string) error

Types

type Batch

type Batch interface {
	io.Closer
	Writer

	ValueSize() int
	Reset()
}

Batch is a write-only operation.

type Database

type Database interface {
	Reader
	Writer
	io.Closer

	Path() string
	NewBatch() Batch
	NewIterator() (Iterator, error)
	NewPrefixIterator(prefix []byte) (Iterator, error)
}

Database wraps all database operations. All methods are safe for concurrent use.

func LoadDatabase

func LoadDatabase(basepath string, inMemory bool) (Database, error)

LoadDatabase will return an instance of database based on basepath

type Iterator

type Iterator interface {
	Valid() bool
	Next() bool
	Key() []byte
	Value() []byte
	First() bool
	Release()
	SeekGE(key []byte) bool
	io.Closer
}

Iterator iterates over key/value pairs in ascending key order. Must be released after use.

type PebbleDB

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

func NewPebble

func NewPebble(path string, inMemory bool) (*PebbleDB, error)

NewPebble return an pebble db implementation of Database interface

func (*PebbleDB) Close

func (p *PebbleDB) Close() error

func (*PebbleDB) Del

func (p *PebbleDB) Del(key []byte) error

func (*PebbleDB) Flush

func (p *PebbleDB) Flush() error

func (*PebbleDB) Get

func (p *PebbleDB) Get(key []byte) (value []byte, err error)

func (*PebbleDB) Has

func (p *PebbleDB) Has(key []byte) (exists bool, err error)

func (*PebbleDB) NewBatch

func (p *PebbleDB) NewBatch() Batch

NewBatch returns an implementation of Batch interface using the internal database

func (*PebbleDB) NewIterator

func (p *PebbleDB) NewIterator() (Iterator, error)

NewIterator returns an implementation of Iterator interface using the internal database

func (*PebbleDB) NewPrefixIterator

func (p *PebbleDB) NewPrefixIterator(prefix []byte) (Iterator, error)

NewPrefixIterator returns an implementation of Iterator over a specific keys that contains the prefix more info: https://github.com/ChainSafe/gossamer/pull/3434#discussion_r1291503323

func (*PebbleDB) Path

func (p *PebbleDB) Path() string

func (*PebbleDB) Put

func (p *PebbleDB) Put(key, value []byte) error

type Reader

type Reader interface {
	Get(key []byte) ([]byte, error)
	Has(key []byte) (bool, error)
}

type Table

type Table interface {
	Reader
	Writer
	Path() string
	NewBatch() Batch
	NewIterator() (Iterator, error)
}

func NewTable

func NewTable(db Database, prefix string) Table

type Writer

type Writer interface {
	Put(key, value []byte) error
	Del(key []byte) error
	Flush() error
}

Directories

Path Synopsis
Package mock_database is a generated GoMock package.
Package mock_database is a generated GoMock package.

Jump to

Keyboard shortcuts

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