Documentation
¶
Index ¶
- Constants
- func IteratePrefix(db DB, prefix []byte) (corestore.Iterator, error)
- type DB
- type GoLevelDB
- func (db *GoLevelDB) Close() error
- func (db *GoLevelDB) Delete(key []byte) error
- func (db *GoLevelDB) DeleteSync(key []byte) error
- func (db *GoLevelDB) ForceCompact(start, limit []byte) error
- func (db *GoLevelDB) Get(key []byte) ([]byte, error)
- func (db *GoLevelDB) Has(key []byte) (bool, error)
- func (db *GoLevelDB) Iterator(start, end []byte) (corestore.Iterator, error)
- func (db *GoLevelDB) NewBatch() corestore.Batch
- func (db *GoLevelDB) NewBatchWithSize(size int) corestore.Batch
- func (db *GoLevelDB) Print() error
- func (db *GoLevelDB) RawDB() *leveldb.DB
- func (db *GoLevelDB) ReverseIterator(start, end []byte) (corestore.Iterator, error)
- func (db *GoLevelDB) Set(key, value []byte) error
- func (db *GoLevelDB) SetSync(key, value []byte) error
- func (db *GoLevelDB) Stats() map[string]string
- type MemDB
- func (db *MemDB) Close() error
- func (db *MemDB) Delete(key []byte) error
- func (db *MemDB) DeleteSync(key []byte) error
- func (db *MemDB) Get(key []byte) ([]byte, error)
- func (db *MemDB) Has(key []byte) (bool, error)
- func (db *MemDB) Iterator(start, end []byte) (corestore.Iterator, error)
- func (db *MemDB) IteratorNoMtx(start, end []byte) (corestore.Iterator, error)
- func (db *MemDB) NewBatch() corestore.Batch
- func (db *MemDB) NewBatchWithSize(_ int) corestore.Batch
- func (db *MemDB) Print() error
- func (db *MemDB) ReverseIterator(start, end []byte) (corestore.Iterator, error)
- func (db *MemDB) ReverseIteratorNoMtx(start, end []byte) (corestore.Iterator, error)
- func (db *MemDB) Set(key []byte, value []byte) error
- func (db *MemDB) SetSync(key []byte, value []byte) error
- func (db *MemDB) Stats() map[string]string
- type PrefixDB
- func (pdb *PrefixDB) Close() error
- func (pdb *PrefixDB) Delete(key []byte) error
- func (pdb *PrefixDB) Get(key []byte) ([]byte, error)
- func (pdb *PrefixDB) Has(key []byte) (bool, error)
- func (pdb *PrefixDB) Iterator(start, end []byte) (corestore.Iterator, error)
- func (pdb *PrefixDB) NewBatch() corestore.Batch
- func (pdb *PrefixDB) NewBatchWithSize(size int) corestore.Batch
- func (pdb *PrefixDB) Print() error
- func (pdb *PrefixDB) ReverseIterator(start, end []byte) (corestore.Iterator, error)
- func (pdb *PrefixDB) Set(key, value []byte) error
Constants ¶
const DBFileSuffix string = ".db"
Variables ¶
This section is empty.
Functions ¶
Types ¶
type DB ¶
type DB interface { // Get fetches the value of the given key, or nil if it does not exist. // CONTRACT: key, value readonly []byte Get([]byte) ([]byte, error) // Has checks if a key exists. // CONTRACT: key, value readonly []byte Has(key []byte) (bool, error) // Iterator returns an iterator over a domain of keys, in ascending order. The caller must call // Close when done. End is exclusive, and start must be less than end. A nil start iterates // from the first key, and a nil end iterates to the last key (inclusive). Empty keys are not // valid. // CONTRACT: No writes may happen within a domain while an iterator exists over it. // CONTRACT: start, end readonly []byte Iterator(start, end []byte) (corestore.Iterator, error) // ReverseIterator returns an iterator over a domain of keys, in descending order. The caller // must call Close when done. End is exclusive, and start must be less than end. A nil end // iterates from the last key (inclusive), and a nil start iterates to the first key (inclusive). // Empty keys are not valid. // CONTRACT: No writes may happen within a domain while an iterator exists over it. // CONTRACT: start, end readonly []byte ReverseIterator(start, end []byte) (corestore.Iterator, error) // Close closes the database connection. Close() error // NewBatch creates a batch for atomic updates. The caller must call Batch.Close. NewBatch() corestore.Batch // NewBatchWithSize create a new batch for atomic updates, but with pre-allocated size. // This will does the same thing as NewBatch if the batch implementation doesn't support pre-allocation. NewBatchWithSize(int) corestore.Batch }
DB is the main interface for all database backends. DBs are concurrency-safe. Callers must call Close on the database when done.
Keys cannot be nil or empty, while values cannot be nil. Keys and values should be considered read-only, both when returned and when given, and must be copied before they are modified.
type GoLevelDB ¶ added in v1.3.0
type GoLevelDB struct {
// contains filtered or unexported fields
}
GoLevelDB implements corestore.KVStore using github.com/syndtr/goleveldb/leveldb. It is used for only store v2 migration, since some clients use goleveldb as the IAVL v0/v1 backend.
func NewGoLevelDB ¶ added in v1.3.0
func NewGoLevelDBWithOpts ¶ added in v1.3.0
func (*GoLevelDB) DeleteSync ¶ added in v1.3.0
DeleteSync implements corestore.KVStore.
func (*GoLevelDB) ForceCompact ¶ added in v1.3.0
func (*GoLevelDB) NewBatchWithSize ¶ added in v1.3.0
NewBatchWithSize implements corestore.BatchCreator.
func (*GoLevelDB) ReverseIterator ¶ added in v1.3.0
ReverseIterator implements corestore.KVStore.
type MemDB ¶
type MemDB struct {
// contains filtered or unexported fields
}
MemDB is an in-memory database backend using a B-tree for the test purpose.
For performance reasons, all given and returned keys and values are pointers to the in-memory database, so modifying them will cause the stored values to be modified as well. All DB methods already specify that keys and values should be considered read-only, but this is especially important with MemDB.
func (*MemDB) Iterator ¶
Iterator implements DB. Takes out a read-lock on the database until the iterator is closed.
func (*MemDB) IteratorNoMtx ¶
IteratorNoMtx makes an iterator with no mutex.
func (*MemDB) NewBatchWithSize ¶
NewBatchWithSize implements DB. It does the same thing as NewBatch because we can't pre-allocate memDBBatch
func (*MemDB) ReverseIterator ¶
ReverseIterator implements DB. Takes out a read-lock on the database until the iterator is closed.
func (*MemDB) ReverseIteratorNoMtx ¶
ReverseIteratorNoMtx makes an iterator with no mutex.
type PrefixDB ¶ added in v1.3.0
type PrefixDB struct {
// contains filtered or unexported fields
}
PrefixDB wraps a namespace of another database as a logical database.
func NewPrefixDB ¶ added in v1.3.0
func NewPrefixDB(db corestore.KVStoreWithBatch, prefix []byte) *PrefixDB
NewPrefixDB lets you namespace multiple corestore.KVStores within a single corestore.KVStore.
func (*PrefixDB) NewBatchWithSize ¶ added in v1.3.0
NewBatchWithSize implements corestore.BatchCreator.
func (*PrefixDB) ReverseIterator ¶ added in v1.3.0
ReverseIterator implements corestore.KVStore.