memorydb

package
v0.0.0-...-8b90792 Latest Latest
Warning

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

Go to latest
Published: Sep 3, 2024 License: GPL-3.0 Imports: 6 Imported by: 0

Documentation

Overview

Package memorydb implements the key-value database layer based on memory maps.

Index

Constants

This section is empty.

Variables

View Source
var (

	// ErrMemorydbNotFound is returned if a key is requested that is not found in
	// the provided memory database.
	ErrMemorydbNotFound = errors.New("not found")
)

Functions

This section is empty.

Types

type Database

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

Database is an ephemeral key-value store. Apart from basic data storage functionality it also supports batch writes and iterating over the keyspace in binary-alphabetical order.

func New

func New() *Database

New returns a wrapped map with all the required database interface methods implemented.

func NewWithCap

func NewWithCap(size int) *Database

NewWithCap returns a wrapped map pre-allocated to the provided capacity with all the required database interface methods implemented.

func (*Database) Close

func (db *Database) Close() error

Close deallocates the internal map and ensures any consecutive data access op fails with an error.

func (*Database) Compact

func (db *Database) Compact(start []byte, limit []byte) error

Compact is not supported on a memory database, but there's no need either as a memory database doesn't waste space anyway.

func (*Database) Delete

func (db *Database) Delete(key []byte) error

Delete removes the key from the key-value store.

func (*Database) Get

func (db *Database) Get(key []byte) ([]byte, error)

Get retrieves the given key if it's present in the key-value store.

func (*Database) Has

func (db *Database) Has(key []byte) (bool, error)

Has retrieves if a key is present in the key-value store.

func (*Database) Len

func (db *Database) Len() int

Len returns the number of entries currently present in the memory database.

Note, this method is only used for testing (i.e. not public in general) and does not have explicit checks for closed-ness to allow simpler testing code.

func (*Database) NewBatch

func (db *Database) NewBatch() ethdb.Batch

NewBatch creates a write-only key-value store that buffers changes to its host database until a final write is called.

func (*Database) NewBatchWithSize

func (db *Database) NewBatchWithSize(size int) ethdb.Batch

NewBatchWithSize creates a write-only database batch with pre-allocated buffer.

func (*Database) NewIterator

func (db *Database) NewIterator(prefix []byte, start []byte) ethdb.Iterator

NewIterator creates a binary-alphabetical iterator over a subset of database content with a particular key prefix, starting at a particular initial key (or after, if it does not exist).

func (*Database) NewSnapshot

func (db *Database) NewSnapshot() (ethdb.Snapshot, error)

NewSnapshot creates a database snapshot based on the current state. The created snapshot will not be affected by all following mutations happened on the database.

func (*Database) Put

func (db *Database) Put(key []byte, value []byte) error

Put inserts the given value into the key-value store.

func (*Database) Stat

func (db *Database) Stat(property string) (string, error)

Stat returns a particular internal stat of the database.

Jump to

Keyboard shortcuts

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