Loading documentation...
Loading documentation...
Loading documentation...
Complete API documentation for the eviction package.
Import Path: github.com/kolosys/synapse/eviction
CombinedPolicy combines multiple eviction policies with weighted scoring
// Create a new CombinedPolicy
combinedpolicy := CombinedPolicy{
}type CombinedPolicy struct {
}NewCombinedPolicy creates a new combined eviction policy
func NewCombinedPolicy(policies []EvictionPolicy, weights []float64) *CombinedPolicyParameters:
policies ([]EvictionPolicy)weights ([]float64)Returns:
Len implements EvictionPolicy
func (*LRU) Len() intParameters: None
Returns:
OnAccess implements EvictionPolicy
func (*LRU) OnAccess(key any)Parameters:
key (any)Returns: None
OnAdd implements EvictionPolicy
func (*LRU) OnAdd(key any, accessCount uint64, createdAt, accessedAt time.Time)Parameters:
key (any)accessCount (uint64)createdAt (time.Time)accessedAt (time.Time)Returns: None
OnRemove implements EvictionPolicy
func (*LRU) OnRemove(key any)Parameters:
key (any)Returns: None
SelectVictim implements EvictionPolicy It uses the first policy's victim selection
func (*LRU) SelectVictim() (any, bool)Parameters: None
Returns:
EvictionPolicy defines the interface for cache eviction strategies
// Example implementation of EvictionPolicy
type MyEvictionPolicy struct {
// Add your fields here
}
func (m MyEvictionPolicy) OnAccess(param1 any) {
// Implement your logic here
return
}
func (m MyEvictionPolicy) OnAdd(param1 any, param2 uint64, param3 time.Time) {
// Implement your logic here
return
}
func (m MyEvictionPolicy) OnRemove(param1 any) {
// Implement your logic here
return
}
func (m MyEvictionPolicy) SelectVictim() any {
// Implement your logic here
return
}
func (m MyEvictionPolicy) Len() int {
// Implement your logic here
return
}
type EvictionPolicy interface {
OnAccess(key any)
OnAdd(key any, accessCount uint64, createdAt, accessedAt time.Time)
OnRemove(key any)
SelectVictim() (any, bool)
Len() int
}| Method | Description |
|---|
LRU implements a Least Recently Used eviction policy
// Create a new LRU
lru := LRU{
}type LRU struct {
}NewLRU creates a new LRU eviction policy
func NewLRU(maxSize int) *LRUParameters:
maxSize (int)Returns:
Len implements EvictionPolicy
func (*CombinedPolicy) Len() intParameters: None
Returns:
OnAccess implements EvictionPolicy
func (*LRU) OnAccess(key any)Parameters:
key (any)Returns: None
OnAdd implements EvictionPolicy
func (*LRU) OnAdd(key any, accessCount uint64, createdAt, accessedAt time.Time)Parameters:
key (any)accessCount (uint64)createdAt (time.Time)accessedAt (time.Time)Returns: None
OnRemove implements EvictionPolicy
func (*LRU) OnRemove(key any)Parameters:
key (any)Returns: None
SelectVictim implements EvictionPolicy
func (*LRU) SelectVictim() (any, bool)Parameters: None
Returns:
Complete API documentation for the eviction package.
Import Path: github.com/kolosys/synapse/eviction
CombinedPolicy combines multiple eviction policies with weighted scoring
// Create a new CombinedPolicy
combinedpolicy := CombinedPolicy{
}type CombinedPolicy struct {
}NewCombinedPolicy creates a new combined eviction policy
func NewCombinedPolicy(policies []EvictionPolicy, weights []float64) *CombinedPolicyParameters:
policies ([]EvictionPolicy)weights ([]float64)Returns:
Len implements EvictionPolicy
func (*LRU) Len() intParameters: None
Returns:
OnAccess implements EvictionPolicy
func (*LRU) OnAccess(key any)Parameters:
key (any)Returns: None
OnAdd implements EvictionPolicy
func (*LRU) OnAdd(key any, accessCount uint64, createdAt, accessedAt time.Time)Parameters:
key (any)accessCount (uint64)createdAt (time.Time)accessedAt (time.Time)Returns: None
OnRemove implements EvictionPolicy
func (*LRU) OnRemove(key any)Parameters:
key (any)Returns: None
SelectVictim implements EvictionPolicy It uses the first policy's victim selection
func (*LRU) SelectVictim() (any, bool)Parameters: None
Returns:
EvictionPolicy defines the interface for cache eviction strategies
// Example implementation of EvictionPolicy
type MyEvictionPolicy struct {
// Add your fields here
}
func (m MyEvictionPolicy) OnAccess(param1 any) {
// Implement your logic here
return
}
func (m MyEvictionPolicy) OnAdd(param1 any, param2 uint64, param3 time.Time) {
// Implement your logic here
return
}
func (m MyEvictionPolicy) OnRemove(param1 any) {
// Implement your logic here
return
}
func (m MyEvictionPolicy) SelectVictim() any {
// Implement your logic here
return
}
func (m MyEvictionPolicy) Len() int {
// Implement your logic here
return
}
type EvictionPolicy interface {
OnAccess(key any)
OnAdd(key any, accessCount uint64, createdAt, accessedAt time.Time)
OnRemove(key any)
SelectVictim() (any, bool)
Len() int
}| Method | Description |
|---|
LRU implements a Least Recently Used eviction policy
// Create a new LRU
lru := LRU{
}type LRU struct {
}NewLRU creates a new LRU eviction policy
func NewLRU(maxSize int) *LRUParameters:
maxSize (int)Returns:
Len implements EvictionPolicy
func (*CombinedPolicy) Len() intParameters: None
Returns:
OnAccess implements EvictionPolicy
func (*LRU) OnAccess(key any)Parameters:
key (any)Returns: None
OnAdd implements EvictionPolicy
func (*LRU) OnAdd(key any, accessCount uint64, createdAt, accessedAt time.Time)Parameters:
key (any)accessCount (uint64)createdAt (time.Time)accessedAt (time.Time)Returns: None
OnRemove implements EvictionPolicy
func (*LRU) OnRemove(key any)Parameters:
key (any)Returns: None
SelectVictim implements EvictionPolicy
func (*LRU) SelectVictim() (any, bool)Parameters: None
Returns:
// Create a new CombinedPolicy
combinedpolicy := CombinedPolicy{
}type CombinedPolicy struct {
}func NewCombinedPolicy(policies []EvictionPolicy, weights []float64) *CombinedPolicyfunc (*LRU) Len() intfunc (*LRU) OnAccess(key any)func (*LRU) OnAdd(key any, accessCount uint64, createdAt, accessedAt time.Time)func (*LRU) OnRemove(key any)func (*LRU) SelectVictim() (any, bool)// Example implementation of EvictionPolicy
type MyEvictionPolicy struct {
// Add your fields here
}
func (m MyEvictionPolicy) OnAccess(param1 any) {
// Implement your logic here
return
}
func (m MyEvictionPolicy) OnAdd(param1 any, param2 uint64, param3 time.Time) {
// Implement your logic here
return
}
func (m MyEvictionPolicy) OnRemove(param1 any) {
// Implement your logic here
return
}
func (m MyEvictionPolicy) SelectVictim() any {
// Implement your logic here
return
}
func (m MyEvictionPolicy) Len() int {
// Implement your logic here
return
}
type EvictionPolicy interface {
OnAccess(key any)
OnAdd(key any, accessCount uint64, createdAt, accessedAt time.Time)
OnRemove(key any)
SelectVictim() (any, bool)
Len() int
}// Create a new LRU
lru := LRU{
}type LRU struct {
}func NewLRU(maxSize int) *LRUfunc (*CombinedPolicy) Len() intfunc (*LRU) OnAccess(key any)func (*LRU) OnAdd(key any, accessCount uint64, createdAt, accessedAt time.Time)func (*LRU) OnRemove(key any)func (*LRU) SelectVictim() (any, bool)// Create a new CombinedPolicy
combinedpolicy := CombinedPolicy{
}type CombinedPolicy struct {
}func NewCombinedPolicy(policies []EvictionPolicy, weights []float64) *CombinedPolicyfunc (*LRU) Len() intfunc (*LRU) OnAccess(key any)func (*LRU) OnAdd(key any, accessCount uint64, createdAt, accessedAt time.Time)func (*LRU) OnRemove(key any)func (*LRU) SelectVictim() (any, bool)// Example implementation of EvictionPolicy
type MyEvictionPolicy struct {
// Add your fields here
}
func (m MyEvictionPolicy) OnAccess(param1 any) {
// Implement your logic here
return
}
func (m MyEvictionPolicy) OnAdd(param1 any, param2 uint64, param3 time.Time) {
// Implement your logic here
return
}
func (m MyEvictionPolicy) OnRemove(param1 any) {
// Implement your logic here
return
}
func (m MyEvictionPolicy) SelectVictim() any {
// Implement your logic here
return
}
func (m MyEvictionPolicy) Len() int {
// Implement your logic here
return
}
type EvictionPolicy interface {
OnAccess(key any)
OnAdd(key any, accessCount uint64, createdAt, accessedAt time.Time)
OnRemove(key any)
SelectVictim() (any, bool)
Len() int
}// Create a new LRU
lru := LRU{
}type LRU struct {
}func NewLRU(maxSize int) *LRUfunc (*CombinedPolicy) Len() intfunc (*LRU) OnAccess(key any)func (*LRU) OnAdd(key any, accessCount uint64, createdAt, accessedAt time.Time)func (*LRU) OnRemove(key any)func (*LRU) SelectVictim() (any, bool)