Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var CacheEvictionBatchSize = 1000
Functions ¶
This section is empty.
Types ¶
type Cache ¶
type Cache struct {
// contains filtered or unexported fields
}
Cache is the part of the localstore which keeps track of the chunks that are not part of the reserve but are potentially useful to store for obtaining bandwidth incentives. In order to avoid GC we will only keep track of a fixed no. of chunks as part of the cache and evict a chunk as soon as we go above capacity.
func New ¶
New creates a new Cache component with the specified capacity. The store is used here only to read the initial state of the cache before shutdown if there was any.
func (*Cache) Getter ¶
Getter returns a Storage.Getter instance which checks if the chunks accessed are part of cache it will update the cache indexes. If the operation to update the cache indexes fail, we need to fail the operation as this should signal the user of this getter to rollback the operation.
func (*Cache) MoveFromReserve ¶
func (c *Cache) MoveFromReserve( ctx context.Context, store internal.Storage, addrs ...swarm.Address, ) error
MoveFromReserve moves the chunks from the reserve to the cache. This is called when the reserve is full and we need to perform eviction. It avoids the need to delete the chunk and re-add it to the cache.