Documentation ¶
Overview ¶
Package leveldb implements the key-value database layer based on LevelDB.
Index ¶
- func NewProducer(datadir string, getCache func(string) int) kvdb.IterableDBProducer
- type Database
- func (db *Database) Close() error
- func (db *Database) Compact(start []byte, limit []byte) error
- func (db *Database) Delete(key []byte) error
- func (db *Database) Drop()
- func (db *Database) Get(key []byte) ([]byte, error)
- func (db *Database) GetSnapshot() (kvdb.Snapshot, error)
- func (db *Database) Has(key []byte) (bool, error)
- func (db *Database) NewBatch() kvdb.Batch
- func (db *Database) NewIterator(prefix []byte, start []byte) kvdb.Iterator
- func (db *Database) Path() string
- func (db *Database) Put(key []byte, value []byte) error
- func (db *Database) Stat(property string) (string, error)
- type Producer
- type Snapshot
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewProducer ¶
func NewProducer(datadir string, getCache func(string) int) kvdb.IterableDBProducer
NewProducer of level db.
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 (*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) GetSnapshot ¶ added in v0.1.2
GetSnapshot returns a latest snapshot of the underlying DB. A snapshot is a frozen snapshot of a DB state at a particular point in time. The content of snapshot are guaranteed to be consistent.
The snapshot must be released after use, by calling Release method.
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) 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).
type Snapshot ¶ added in v0.1.2
type Snapshot struct {
// contains filtered or unexported fields
}
Snapshot is a DB snapshot.
func (*Snapshot) Get ¶ added in v0.1.2
Get retrieves the given key if it's present in the key-value store.
func (*Snapshot) NewIterator ¶ added in v0.1.2
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 (*Snapshot) Release ¶ added in v0.1.2
func (s *Snapshot) Release()
Release releases the snapshot. This will not release any returned iterators, the iterators would still be valid until released or the underlying DB is closed.
Other methods should not be called after the snapshot has been released.