go-ethereum: github.com/axiomzen/go-ethereum/ethdb/leveldb Index | Files

package leveldb

import "github.com/axiomzen/go-ethereum/ethdb/leveldb"

Package leveldb implements the key-value database layer based on LevelDB.

Index

Package Files

leveldb.go

type Database Uses

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

Database is a persistent 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 Uses

func New(file string, cache int, handles int, namespace string) (*Database, error)

New returns a wrapped LevelDB object. The namespace is the prefix that the metrics reporting should use for surfacing internal stats.

func (*Database) Close Uses

func (db *Database) Close() error

Close stops the metrics collection, flushes any pending data to disk and closes all io accesses to the underlying key-value store.

func (*Database) Compact Uses

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

Compact flattens the underlying data store for the given key range. In essence, deleted and overwritten versions are discarded, and the data is rearranged to reduce the cost of operations needed to access them.

A nil start is treated as a key before all keys in the data store; a nil limit is treated as a key after all keys in the data store. If both is nil then it will compact entire data store.

func (*Database) Delete Uses

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

Delete removes the key from the key-value store.

func (*Database) Get Uses

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 Uses

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

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

func (*Database) NewBatch Uses

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) NewIterator Uses

func (db *Database) NewIterator() ethdb.Iterator

NewIterator creates a binary-alphabetical iterator over the entire keyspace contained within the leveldb database.

func (*Database) NewIteratorWithPrefix Uses

func (db *Database) NewIteratorWithPrefix(prefix []byte) ethdb.Iterator

NewIteratorWithPrefix creates a binary-alphabetical iterator over a subset of database content with a particular key prefix.

func (*Database) NewIteratorWithStart Uses

func (db *Database) NewIteratorWithStart(start []byte) ethdb.Iterator

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

func (*Database) Path Uses

func (db *Database) Path() string

Path returns the path to the database directory.

func (*Database) Put Uses

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

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

func (*Database) Stat Uses

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

Stat returns a particular internal stat of the database.

Package leveldb imports 14 packages (graph). Updated 2019-09-29. Refresh now. Tools for package owners.