Documentation ¶
Index ¶
- func NewFullHistoryTriePruningStorer(args FullHistoryStorerArgs) (*fullHistoryTriePruningStorer, error)
- func NewPersistersTracker(args EpochArgs) *normalPersistersTracker
- func NewTriePersisterTracker(args EpochArgs) *triePersistersTracker
- func NewTriePruningStorer(args StorerArgs) (*triePruningStorer, error)
- type DbFactoryHandler
- type EpochArgs
- type EpochStartNotifier
- type FullHistoryPruningStorer
- func (fhps *FullHistoryPruningStorer) Close() error
- func (fhps *FullHistoryPruningStorer) GetBulkFromEpoch(keys [][]byte, epoch uint32) ([]data.KeyValuePair, error)
- func (fhps *FullHistoryPruningStorer) GetFromEpoch(key []byte, epoch uint32) ([]byte, error)
- func (fhps *FullHistoryPruningStorer) IsInterfaceNil() bool
- func (fhps *FullHistoryPruningStorer) PutInEpoch(key []byte, data []byte, epoch uint32) error
- type FullHistoryStorerArgs
- type PersistersTracker
- type PruningStorer
- func (ps *PruningStorer) ClearCache()
- func (ps *PruningStorer) Close() error
- func (ps *PruningStorer) DestroyUnit() error
- func (ps *PruningStorer) Get(key []byte) ([]byte, error)
- func (ps *PruningStorer) GetBulkFromEpoch(keys [][]byte, epoch uint32) ([]data.KeyValuePair, error)
- func (ps *PruningStorer) GetFromEpoch(key []byte, epoch uint32) ([]byte, error)
- func (ps *PruningStorer) GetOldestEpoch() (uint32, error)
- func (ps *PruningStorer) Has(key []byte) error
- func (ps *PruningStorer) IsInterfaceNil() bool
- func (ps *PruningStorer) Put(key, data []byte) error
- func (ps *PruningStorer) PutInEpoch(key, data []byte, epoch uint32) error
- func (ps *PruningStorer) RangeKeys(_ func(key []byte, val []byte) bool)
- func (ps *PruningStorer) Remove(key []byte) error
- func (ps *PruningStorer) RemoveFromCurrentEpoch(key []byte) error
- func (ps *PruningStorer) SearchFirst(key []byte) ([]byte, error)
- func (ps *PruningStorer) SetEpochForPutOperation(epoch uint32)
- type StorerArgs
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewFullHistoryTriePruningStorer ¶
func NewFullHistoryTriePruningStorer(args FullHistoryStorerArgs) (*fullHistoryTriePruningStorer, error)
NewFullHistoryTriePruningStorer will return a new instance of PruningStorer without sharded directories' naming scheme
func NewPersistersTracker ¶
func NewPersistersTracker(args EpochArgs) *normalPersistersTracker
NewPersistersTracker creates a new instance of normalPersistersTracker. It is not safe to use in a concurrent manner
func NewTriePersisterTracker ¶
func NewTriePersisterTracker(args EpochArgs) *triePersistersTracker
NewTriePersisterTracker creates a new instance of triePersistersTracker. It is not safe to use in a concurrent manner
func NewTriePruningStorer ¶
func NewTriePruningStorer(args StorerArgs) (*triePruningStorer, error)
NewTriePruningStorer will return a new instance of NewTriePruningStorer
Types ¶
type DbFactoryHandler ¶
type DbFactoryHandler interface { Create(filePath string) (storage.Persister, error) CreateDisabled() storage.Persister IsInterfaceNil() bool }
DbFactoryHandler defines what a db factory implementation should do
type EpochArgs ¶
type EpochArgs struct { NumOfEpochsToKeep uint32 NumOfActivePersisters uint32 StartingEpoch uint32 }
EpochArgs will hold the arguments needed for persistersTracker
type EpochStartNotifier ¶
type EpochStartNotifier interface { RegisterHandler(handler epochStart.ActionHandler) IsInterfaceNil() bool }
EpochStartNotifier defines what a component which will handle registration to epoch start event should do
type FullHistoryPruningStorer ¶
type FullHistoryPruningStorer struct { *PruningStorer // contains filtered or unexported fields }
FullHistoryPruningStorer represents a storer for full history nodes which creates a new persister for each epoch and removes older activePersisters
func NewFullHistoryPruningStorer ¶
func NewFullHistoryPruningStorer(args FullHistoryStorerArgs) (*FullHistoryPruningStorer, error)
NewFullHistoryPruningStorer will return a new instance of PruningStorer without sharded directories' naming scheme
func NewShardedFullHistoryPruningStorer ¶
func NewShardedFullHistoryPruningStorer( args FullHistoryStorerArgs, shardID uint32, ) (*FullHistoryPruningStorer, error)
NewShardedFullHistoryPruningStorer will return a new instance of PruningStorer with sharded directories' naming scheme
func (*FullHistoryPruningStorer) Close ¶
func (fhps *FullHistoryPruningStorer) Close() error
Close will try to close all opened persisters, including the ones in the LRU cache
func (*FullHistoryPruningStorer) GetBulkFromEpoch ¶
func (fhps *FullHistoryPruningStorer) GetBulkFromEpoch(keys [][]byte, epoch uint32) ([]data.KeyValuePair, error)
GetBulkFromEpoch will search a bulk of keys in the persister for the given epoch doesn't return an error if a key or any isn't found
func (*FullHistoryPruningStorer) GetFromEpoch ¶
func (fhps *FullHistoryPruningStorer) GetFromEpoch(key []byte, epoch uint32) ([]byte, error)
GetFromEpoch will search a key only in the persister for the given epoch
func (*FullHistoryPruningStorer) IsInterfaceNil ¶
func (fhps *FullHistoryPruningStorer) IsInterfaceNil() bool
IsInterfaceNil returns true if there is no value under the interface
func (*FullHistoryPruningStorer) PutInEpoch ¶
func (fhps *FullHistoryPruningStorer) PutInEpoch(key []byte, data []byte, epoch uint32) error
PutInEpoch will set the key-value pair in the given epoch
type FullHistoryStorerArgs ¶
type FullHistoryStorerArgs struct { StorerArgs NumOfOldActivePersisters uint32 }
FullHistoryStorerArgs will hold the arguments needed for full history PruningStorer
type PersistersTracker ¶
type PersistersTracker interface { HasInitializedEnoughPersisters(epoch int64) bool ShouldClosePersister(epoch int64) bool CollectPersisterData(p storage.Persister) IsInterfaceNil() bool }
PersistersTracker defines what a persisters tracker should do
type PruningStorer ¶
type PruningStorer struct {
// contains filtered or unexported fields
}
PruningStorer represents a storer which creates a new persister for each epoch and removes older activePersisters TODO unexport PruningStorer
func NewPruningStorer ¶
func NewPruningStorer(args StorerArgs) (*PruningStorer, error)
NewPruningStorer will return a new instance of PruningStorer without sharded directories' naming scheme
func (*PruningStorer) ClearCache ¶
func (ps *PruningStorer) ClearCache()
ClearCache cleans up the entire cache
func (*PruningStorer) DestroyUnit ¶
func (ps *PruningStorer) DestroyUnit() error
DestroyUnit cleans up the cache and the dbs
func (*PruningStorer) Get ¶
func (ps *PruningStorer) Get(key []byte) ([]byte, error)
Get searches the key in the cache. In case it is not found, the key may be in the db.
func (*PruningStorer) GetBulkFromEpoch ¶
func (ps *PruningStorer) GetBulkFromEpoch(keys [][]byte, epoch uint32) ([]data.KeyValuePair, error)
GetBulkFromEpoch will return a slice of keys only in the persister for the given epoch
func (*PruningStorer) GetFromEpoch ¶
func (ps *PruningStorer) GetFromEpoch(key []byte, epoch uint32) ([]byte, error)
GetFromEpoch will search a key only in the persister for the given epoch
func (*PruningStorer) GetOldestEpoch ¶
func (ps *PruningStorer) GetOldestEpoch() (uint32, error)
GetOldestEpoch returns the oldest epoch from current configuration
func (*PruningStorer) Has ¶
func (ps *PruningStorer) Has(key []byte) error
Has checks if the key is in the Unit. It first checks the cache. If it is not found, it checks the db
func (*PruningStorer) IsInterfaceNil ¶
func (ps *PruningStorer) IsInterfaceNil() bool
IsInterfaceNil returns true if there is no value under the interface
func (*PruningStorer) Put ¶
func (ps *PruningStorer) Put(key, data []byte) error
Put adds data to both cache and persistence medium
func (*PruningStorer) PutInEpoch ¶
func (ps *PruningStorer) PutInEpoch(key, data []byte, epoch uint32) error
PutInEpoch adds data to specified epoch
func (*PruningStorer) RangeKeys ¶
func (ps *PruningStorer) RangeKeys(_ func(key []byte, val []byte) bool)
RangeKeys does nothing as it is unable to iterate over multiple persisters RangeKeys -
func (*PruningStorer) Remove ¶
func (ps *PruningStorer) Remove(key []byte) error
Remove removes the data associated to the given key from both cache and persistence medium
func (*PruningStorer) RemoveFromCurrentEpoch ¶
func (ps *PruningStorer) RemoveFromCurrentEpoch(key []byte) error
RemoveFromCurrentEpoch removes the data associated to the given key from both cache and the current epoch persistence medium
func (*PruningStorer) SearchFirst ¶
func (ps *PruningStorer) SearchFirst(key []byte) ([]byte, error)
SearchFirst will search a given key in all the active persisters, from the newest to the oldest
func (*PruningStorer) SetEpochForPutOperation ¶
func (ps *PruningStorer) SetEpochForPutOperation(epoch uint32)
SetEpochForPutOperation will set the epoch to be used when using the put operation
type StorerArgs ¶
type StorerArgs struct { Identifier string ShardCoordinator storage.ShardCoordinator CacheConf storageunit.CacheConfig PathManager storage.PathManagerHandler DbPath string PersisterFactory DbFactoryHandler Notifier EpochStartNotifier OldDataCleanerProvider clean.OldDataCleanerProvider CustomDatabaseRemover storage.CustomDatabaseRemoverHandler MaxBatchSize int EpochsData EpochArgs PruningEnabled bool EnabledDbLookupExtensions bool PersistersTracker PersistersTracker StateStatsHandler common.StateStatisticsHandler }
StorerArgs will hold the arguments needed for PruningStorer