package leveldb
import "github.com/ethereum/go-ethereum/ethdb/leveldb"
Package leveldb implements the key-value database layer based on LevelDB.
Index ¶
- type Database
- func New(file string, cache int, handles int, namespace string, readonly bool) (*Database, error)
- func NewCustom(file string, namespace string, customize func(options *opt.Options)) (*Database, error)
- func (db *Database) Close() error
- func (db *Database) Compact(start []byte, limit []byte) error
- func (db *Database) Delete(key []byte) error
- func (db *Database) DeleteRange(start, end []byte) error
- func (db *Database) Get(key []byte) ([]byte, error)
- func (db *Database) Has(key []byte) (bool, error)
- func (db *Database) NewBatch() ethdb.Batch
- func (db *Database) NewBatchWithSize(size int) ethdb.Batch
- func (db *Database) NewIterator(prefix []byte, start []byte) ethdb.Iterator
- func (db *Database) Path() string
- func (db *Database) Put(key []byte, value []byte) error
- func (db *Database) Stat() (string, error)
- func (db *Database) SyncKeyValue() error
Types ¶
type Database ¶
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 ¶
New returns a wrapped LevelDB object. The namespace is the prefix that the metrics reporting should use for surfacing internal stats.
func NewCustom ¶
func NewCustom(file string, namespace string, customize func(options *opt.Options)) (*Database, error)
NewCustom returns a wrapped LevelDB object. The namespace is the prefix that the metrics reporting should use for surfacing internal stats. The customize function allows the caller to modify the leveldb options.
func (*Database) Close ¶
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 ¶
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 ¶
Delete removes the key from the key-value store.
func (*Database) DeleteRange ¶
DeleteRange deletes all of the keys (and values) in the range [start,end) (inclusive on start, exclusive on end). Note that this is a fallback implementation as leveldb does not natively support range deletion. It can be slow and therefore the number of deleted keys is limited in order to avoid blocking for a very long time. ErrTooManyKeys is returned if the range has only been partially deleted. In this case the caller can repeat the call until it finally succeeds.
func (*Database) Get ¶
Get retrieves the given key if it's present in the key-value store.
func (*Database) Has ¶
Has retrieves if a key is present in the key-value store.
func (*Database) NewBatch ¶
NewBatch creates a write-only key-value store that buffers changes to its host database until a final write is called.
func (*Database) NewBatchWithSize ¶
NewBatchWithSize creates a write-only database batch with pre-allocated buffer.
func (*Database) NewIterator ¶
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) Path ¶
Path returns the path to the database directory.
func (*Database) Put ¶
Put inserts the given value into the key-value store.
func (*Database) Stat ¶
Stat returns the statistic data of the database.
func (*Database) SyncKeyValue ¶
SyncKeyValue flushes all pending writes in the write-ahead-log to disk, ensuring data durability up to that point.
Source Files ¶
- Version
- v1.16.1 (latest)
- Published
- Jul 2, 2025
- Platform
- linux/amd64
- Imports
- 13 packages
- Last checked
- 3 days ago –
Tools for package owners.