Help us shape the future of Go! Take the 2026 Go Developer Survey

datastore

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Aug 1, 2023 License: Apache-2.0 Imports: 18 Imported by: 0

README

Datastore

Statistics

L1 down 

local cache not found -> 
  no l1 => 
  l1 cache not found -> + noKey
    no l2 =>
    l2 cache not found => + L2NoKey
    l2 cache timeout => + timeout 
    l2 cache error => + timeout + error
    l2 cache found => + L1Copy + hasValue
  l1 cache timeout => + timeout + error
  l1 cache error => + error
  l1 cache found => + hasValue

local cache found ->
  expired -> expired
	no l1 => 
	l1 cache not found -> + noKey
	  no l2 =>
	  l2 cache not found => + L2NoKey
	  l2 cache timeout => + timeout
	  l2 cache error => + timeout + error
	  l2 cache found => + L1Copy + hasValue
	l1 cache timeout => + timeout + error
	l1 cache error => + error
	l1 cache found => + hasValue

  no such value => cacheHit + noKey

  found => cacheHit + hasValue

  collision -> collision
	no l1 => 
	l1 cache not found -> + noKey
	  no l2 =>
	  l2 cache not found => + L2NoKey
	  l2 cache timeout => + timeout
	  l2 cache error => + timeout + error
	  l2 cache found => + L1Copy + hasValue
	l1 cache timeout => + timeout + error
	l1 cache error => + error
	l1 cache found => + hasValue
  

Documentation

Index

Constants

View Source
const (
	// CacheStatusFoundNoSuchKey we cache the status that we did not find a cache; this no-cache value has a shorter expiry
	CacheStatusFoundNoSuchKey = CacheStatus(iota)
	// CacheStatusNotFound no such key status
	CacheStatusNotFound
	// CacheStatusFound entry found status
	CacheStatusFound
)
View Source
const (
	//ModeServer server mode
	ModeServer = StoreMode(0)
	//ModeClient client mode
	ModeClient = StoreMode(1)
)

Variables

This section is empty.

Functions

func NewStores

func NewStores(cfg *config.DatastoreList, gmetrics *gmetric.Service) (map[string]*Service, error)

NewStores creates new stores

func NewStoresV2 added in v0.6.0

func NewStoresV2(cfg *config.DatastoreList, gmetrics *gmetric.Service, verbose bool) (map[string]*Service, error)

Types

type CacheStatus

type CacheStatus int

type Entry

type Entry struct {
	Key      string
	Data     EntryData
	Hash     int
	NotFound bool
	Expiry   time.Time
}

Entry represents data entry

func (*Entry) DecodeBinary

func (e *Entry) DecodeBinary(stream *bintly.Reader) error

DecodeBinary decodes data to binary stream

func (*Entry) EncodeBinary

func (e *Entry) EncodeBinary(stream *bintly.Writer) error

EncodeBinary encodes data from binary stream

type EntryData

type EntryData interface{}

EntryData

type Key

type Key struct {
	Namespace string
	Set       string
	Value     interface{}
	*aero.GenerationPolicy
	TimeToLive time.Duration
	L2         *Key
}

Key represents a datastore key

func NewKey

func NewKey(cfg *config.Datastore, key string) *Key

func (*Key) AsString

func (k *Key) AsString() string

func (*Key) Key

func (k *Key) Key() (*aero.Key, error)

func (*Key) WritePolicy

func (k *Key) WritePolicy(generation uint32) *aero.WritePolicy

type Service

type Service struct {
	// contains filtered or unexported fields
}

Service datastore service

func NewWithCache

func NewWithCache(config *config.Datastore, l1Client, l2Client client.Service, counter *gmetric.Operation) (*Service, error)

NewWithCache creates a cache optionally

func (*Service) Config

func (s *Service) Config() *config.Datastore

func (*Service) Enabled

func (s *Service) Enabled() bool

func (*Service) GetInto

func (s *Service) GetInto(ctx context.Context, key *Key, storable Value) (dictHash int, err error)

GetInto gets data into storable or error

func (*Service) Key

func (s *Service) Key(key string) *Key

func (*Service) Mode

func (s *Service) Mode() StoreMode

func (*Service) Put

func (s *Service) Put(ctx context.Context, key *Key, value Value, dictHash int) error

Put puts entry to the datastore

func (*Service) SetMode

func (s *Service) SetMode(mode StoreMode)

type StoreMode

type StoreMode int

StoreMode represents service mode

type Storer

type Storer interface {
	Put(ctx context.Context, key *Key, value Value, dictHash int) error
	GetInto(ctx context.Context, key *Key, storable Value) (dictHash int, err error)
	Key(key string) *Key
	Enabled() bool
	Mode() StoreMode
	SetMode(mode StoreMode)
	Config() *config.Datastore
}

type Value

type Value interface{}

Value represents a datastore value

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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