Documentation
¶
Index ¶
- type MemDBBackend
- func (m *MemDBBackend) Close() error
- func (m *MemDBBackend) DeleteVersion(target uint64) error
- func (m *MemDBBackend) PendingTxCount() int32
- func (m *MemDBBackend) Print() error
- func (m *MemDBBackend) ReadWriter() tplgcmm.DBReadWriter
- func (m *MemDBBackend) Reader() tplgcmm.DBReader
- func (m *MemDBBackend) ReaderAt(version uint64) (tplgcmm.DBReader, error)
- func (m *MemDBBackend) Revert() error
- func (m *MemDBBackend) SaveNextVersion() (uint64, error)
- func (m *MemDBBackend) SaveVersion(target uint64) error
- func (m *MemDBBackend) Stats() map[string]string
- func (m *MemDBBackend) Versions() (tplgcmm.VersionSet, error)
- func (m *MemDBBackend) Writer() tplgcmm.DBWriter
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type MemDBBackend ¶
type MemDBBackend struct {
// contains filtered or unexported fields
}
MemDBBackend is an in-memory database backend using a B-tree for storage.
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 MemDBBackend.
Versioning is implemented by maintaining references to copy-on-write clones of the backing btree.
Note: Currently, transactions do not detect write conflicts, so multiple writers cannot be safely committed to overlapping domains. Because of this, the number of open writers is limited to 1.
func NewMemDBBackend ¶
func NewMemDBBackend(log tplog.Logger) *MemDBBackend
NewDB creates a new in-memory database.
func (*MemDBBackend) Close ¶
func (m *MemDBBackend) Close() error
Close implements DB. Close is a noop since for an in-memory database, we don't have a destination to flush contents to nor do we want any data loss on invoking Close(). See the discussion in https://github.com/tendermint/tendermint/libs/pull/56
func (*MemDBBackend) DeleteVersion ¶
func (m *MemDBBackend) DeleteVersion(target uint64) error
DeleteVersion implements DBConnection.
func (*MemDBBackend) PendingTxCount ¶
func (m *MemDBBackend) PendingTxCount() int32
func (*MemDBBackend) Print ¶
func (m *MemDBBackend) Print() error
Print prints the database contents.
func (*MemDBBackend) ReadWriter ¶
func (m *MemDBBackend) ReadWriter() tplgcmm.DBReadWriter
ReadWriter implements DBConnection.
func (*MemDBBackend) Reader ¶
func (m *MemDBBackend) Reader() tplgcmm.DBReader
Reader implements DBConnection.
func (*MemDBBackend) ReaderAt ¶
func (m *MemDBBackend) ReaderAt(version uint64) (tplgcmm.DBReader, error)
ReaderAt implements DBConnection.
func (*MemDBBackend) Revert ¶
func (m *MemDBBackend) Revert() error
func (*MemDBBackend) SaveNextVersion ¶
func (m *MemDBBackend) SaveNextVersion() (uint64, error)
SaveVersion implements DBConnection.
func (*MemDBBackend) SaveVersion ¶
func (m *MemDBBackend) SaveVersion(target uint64) error
SaveNextVersion implements DBConnection.
func (*MemDBBackend) Stats ¶
func (m *MemDBBackend) Stats() map[string]string
Stats implements DBConnection.
func (*MemDBBackend) Versions ¶
func (m *MemDBBackend) Versions() (tplgcmm.VersionSet, error)
Versions implements DBConnection.
func (*MemDBBackend) Writer ¶
func (m *MemDBBackend) Writer() tplgcmm.DBWriter
Writer implements DBConnection.