nearcache

package
v0.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 18, 2020 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	NotReserved   int64 = -1
	Reserved      int64 = -2
	UpdateStarted int64 = -3
	ReadPermitted int64 = -4
)

Variables

View Source
var AlwaysFresh = &alwaysFresh{}
View Source
var TimeNotSet = time.Now()

Functions

This section is empty.

Types

type Manager

type Manager interface {
	NearCache(name string) (NearCache, bool)
	GetOrCreateNearCache(name string, config *config.NearCacheConfig) NearCache
	DestroyNearCache(name string) bool
	DestroyAllNearCaches()
	ListAllNearCaches() []NearCache
}

type MetaDataContainer

type MetaDataContainer interface {
	UUID() string
	SetUUID(uuid string)
	CompareAndSetUUID(prevUUID string, newUUID string) bool
	SetSequence(sequence int64)
	Sequence() int64
	CompareAndSetSequence(prevSequence int64, newSequence int64) bool
	ResetSequence()
	StaleSequence() int64
	CompareAndSetStaleSequence(lastKnownStaleSeq int64, lastReceivedSeq int64) bool
	ResetStaleSequence()
	AddAndGetMissedSequenceCount(missCount int64) int64
	MissedSequenceCount() int64
}

type NearCache

type NearCache interface {
	Get(key interface{}) interface{}
	Put(key interface{}, value interface{})
	TryReserveForUpdate(key interface{}, keyData serialization.Data) (int64, bool)
	TryPublishReserved(key interface{}, value interface{}, reservationID int64, deserialize bool) (interface{}, bool)
	Initialize()
	Destroy()
	Size() int
	Clear()
	Invalidate(key interface{})
	SetStaleReadDetector(detector StaleReadDetector)
}

type Record

type Record interface {
	eviction.Evictable
	eviction.Expirable
	SetKey(key interface{})
	Key() interface{}
	SetValue(value interface{})
	SetCreationTime(time time.Time)
	SetAccessTime(time time.Time)
	IsIdleAt(maxIdle time.Duration, now time.Time) bool
	IncrementAccessHit()
	RecordState() int64
	CasRecordState(expect int64, update int64) bool
	PartitionID() int32
	SetPartitionID(partitionID int32)
	InvalidationSequence() int64
	SetInvalidationSequence(sequence int64)
	SetUUID(UUID string)
	HasSameUUID(UUID string) bool
	LessThan(comparator RecordComparator, record Record) bool
}

type RecordComparator

type RecordComparator interface {
	CompareRecords(record1 Record, record2 Record) bool
}

type RepairingHandler

type RepairingHandler interface {
	HandleSingleInvalidation(key serialization.Data, sourceUUID string,
		partitionUUID *proto.UUID, sequence int64)

	HandleBatchInvalidation(keys []serialization.Data, sourceUUIDs []string,
		partitionUUIDs []*proto.UUID, sequences []int64)
}

type RepairingTask

type RepairingTask interface {
	RegisterAndGetHandler(dataStructureName string, cache NearCache) RepairingHandler
	Shutdown()
}

type StaleReadDetector

type StaleReadDetector interface {
	IsStaleRead(key interface{}, record Record) bool
	PartitionID(keyData serialization.Data) int32
	MetaDataContainer(partitionID int32) MetaDataContainer
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL