Documentation ¶
Index ¶
- Variables
- type CommitKVStoreCache
- type CommitKVStoreCacheManager
- func (cmgr *CommitKVStoreCacheManager) GetStoreCache(key types.StoreKey, store types.CommitKVStore) types.CommitKVStore
- func (cmgr *CommitKVStoreCacheManager) Reset()
- func (cmgr *CommitKVStoreCacheManager) SetCacheSize(size uint)
- func (cmgr *CommitKVStoreCacheManager) Unwrap(key types.StoreKey) types.CommitKVStore
Constants ¶
This section is empty.
Variables ¶
var ( // DefaultCommitKVStoreCacheSize defines the number of persistent ARC cache item for a // CommitKVStoreCache, which is supposed to be 10MB size. // Each cache item consumes 128 bytes, 64 bytes for the left sibling, and 64 bytes for the right sibling. // The number of cache item is calculated as 10 MB = 10,000,000 / 128 = 78_125 DefaultCommitKVStoreCacheSize uint = 78_125 )
Functions ¶
This section is empty.
Types ¶
type CommitKVStoreCache ¶
type CommitKVStoreCache struct { types.CommitKVStore // contains filtered or unexported fields }
CommitKVStoreCache implements an inter-block (persistent) cache that wraps a CommitKVStore. Reads first hit the internal ARC (Adaptive Replacement Cache). During a cache miss, the read is delegated to the underlying CommitKVStore and cached. Deletes and writes always happen to both the cache and the CommitKVStore in a write-through manner. Caching performed in the CommitKVStore and below is completely irrelevant to this layer.
func NewCommitKVStoreCache ¶
func NewCommitKVStoreCache(store types.CommitKVStore, size uint) *CommitKVStoreCache
func (*CommitKVStoreCache) CacheWrap ¶
func (ckv *CommitKVStoreCache) CacheWrap() types.CacheWrap
CacheWrap implements the CacheWrapper interface
func (*CommitKVStoreCache) Delete ¶
func (ckv *CommitKVStoreCache) Delete(key []byte)
Delete removes a key/value pair from both the write-through cache and the underlying CommitKVStore.
func (*CommitKVStoreCache) Get ¶
func (ckv *CommitKVStoreCache) Get(key []byte) []byte
Get retrieves a value by key. It will first look in the write-through cache. If the value doesn't exist in the write-through cache, the query is delegated to the underlying CommitKVStore.
func (*CommitKVStoreCache) Set ¶
func (ckv *CommitKVStoreCache) Set(key, value []byte)
Set inserts a key/value pair into both the write-through cache and the underlying CommitKVStore.
type CommitKVStoreCacheManager ¶
type CommitKVStoreCacheManager struct {
// contains filtered or unexported fields
}
CommitKVStoreCacheManager maintains a mapping from a StoreKey to a CommitKVStoreCache. Each CommitKVStore, per StoreKey, is meant to be used in an inter-block (persistent) manner and typically provided by a CommitMultiStore.
func NewCommitKVStoreCacheManager ¶
func NewCommitKVStoreCacheManager(size uint) *CommitKVStoreCacheManager
func (*CommitKVStoreCacheManager) GetStoreCache ¶
func (cmgr *CommitKVStoreCacheManager) GetStoreCache(key types.StoreKey, store types.CommitKVStore) types.CommitKVStore
GetStoreCache returns a Cache from the CommitStoreCacheManager for a given StoreKey. If no Cache exists for the StoreKey, then one is created and set. The returned Cache is meant to be used in a persistent manner.
func (*CommitKVStoreCacheManager) Reset ¶
func (cmgr *CommitKVStoreCacheManager) Reset()
Reset resets in the internal caches.
func (*CommitKVStoreCacheManager) SetCacheSize ¶
func (cmgr *CommitKVStoreCacheManager) SetCacheSize(size uint)
SetCacheSize sets the cache size of the CommitKVStore.
func (*CommitKVStoreCacheManager) Unwrap ¶
func (cmgr *CommitKVStoreCacheManager) Unwrap(key types.StoreKey) types.CommitKVStore
Unwrap returns the underlying CommitKVStore for a given StoreKey.