store

package
v2.3.0-alpha.1+incompa... Latest Latest
Warning

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

Go to latest
Published: Feb 17, 2016 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Overview

Package store defines etcd's in-memory key/value store.

Index

Constants

View Source
const (
	Get              = "get"
	Create           = "create"
	Set              = "set"
	Update           = "update"
	Delete           = "delete"
	CompareAndSwap   = "compareAndSwap"
	CompareAndDelete = "compareAndDelete"
	Expire           = "expire"
)
View Source
const (
	CompareMatch = iota
	CompareIndexNotMatch
	CompareValueNotMatch
	CompareNotMatch
)

explanations of Compare function result

View Source
const (
	SetSuccess = iota
	SetFail
	DeleteSuccess
	DeleteFail
	CreateSuccess
	CreateFail
	UpdateSuccess
	UpdateFail
	CompareAndSwapSuccess
	CompareAndSwapFail
	GetSuccess
	GetFail
	ExpireCount
	CompareAndDeleteSuccess
	CompareAndDeleteFail
)
View Source
const (
	GetRecursive = "getRecursive"
)

Variables

View Source
var Permanent time.Time

Functions

This section is empty.

Types

type Event added in v0.2.0

type Event struct {
	Action    string      `json:"action"`
	Node      *NodeExtern `json:"node,omitempty"`
	PrevNode  *NodeExtern `json:"prevNode,omitempty"`
	EtcdIndex uint64      `json:"-"`
}

func (*Event) Clone

func (e *Event) Clone() *Event

func (*Event) Index added in v0.2.0

func (e *Event) Index() uint64

func (*Event) IsCreated added in v0.2.0

func (e *Event) IsCreated() bool

type EventHistory added in v0.2.0

type EventHistory struct {
	Queue      eventQueue
	StartIndex uint64
	LastIndex  uint64
	// contains filtered or unexported fields
}

type NodeExtern added in v0.2.0

type NodeExtern struct {
	Key           string      `json:"key,omitempty"`
	Value         *string     `json:"value,omitempty"`
	Dir           bool        `json:"dir,omitempty"`
	Expiration    *time.Time  `json:"expiration,omitempty"`
	TTL           int64       `json:"ttl,omitempty"`
	Nodes         NodeExterns `json:"nodes,omitempty"`
	ModifiedIndex uint64      `json:"modifiedIndex,omitempty"`
	CreatedIndex  uint64      `json:"createdIndex,omitempty"`
}

NodeExtern is the external representation of the internal node with additional fields PrevValue is the previous value of the node TTL is time to live in second

func (*NodeExtern) Clone

func (eNode *NodeExtern) Clone() *NodeExtern

type NodeExterns added in v0.2.0

type NodeExterns []*NodeExtern

func (NodeExterns) Len added in v0.2.0

func (ns NodeExterns) Len() int

interfaces for sorting

func (NodeExterns) Less added in v0.2.0

func (ns NodeExterns) Less(i, j int) bool

func (NodeExterns) Swap added in v0.2.0

func (ns NodeExterns) Swap(i, j int)

type Stats added in v0.2.0

type Stats struct {

	// Number of get requests
	GetSuccess uint64 `json:"getsSuccess"`
	GetFail    uint64 `json:"getsFail"`

	// Number of sets requests
	SetSuccess uint64 `json:"setsSuccess"`
	SetFail    uint64 `json:"setsFail"`

	// Number of delete requests
	DeleteSuccess uint64 `json:"deleteSuccess"`
	DeleteFail    uint64 `json:"deleteFail"`

	// Number of update requests
	UpdateSuccess uint64 `json:"updateSuccess"`
	UpdateFail    uint64 `json:"updateFail"`

	// Number of create requests
	CreateSuccess uint64 `json:"createSuccess"`
	CreateFail    uint64 `json:"createFail"`

	// Number of testAndSet requests
	CompareAndSwapSuccess uint64 `json:"compareAndSwapSuccess"`
	CompareAndSwapFail    uint64 `json:"compareAndSwapFail"`

	// Number of compareAndDelete requests
	CompareAndDeleteSuccess uint64 `json:"compareAndDeleteSuccess"`
	CompareAndDeleteFail    uint64 `json:"compareAndDeleteFail"`

	ExpireCount uint64 `json:"expireCount"`

	Watchers uint64 `json:"watchers"`
}

func (*Stats) Inc added in v0.2.0

func (s *Stats) Inc(field int)

type Store

type Store interface {
	Version() int
	Index() uint64

	Get(nodePath string, recursive, sorted bool) (*Event, error)
	Set(nodePath string, dir bool, value string, expireOpts TTLOptionSet) (*Event, error)
	Update(nodePath string, newValue string, expireOpts TTLOptionSet) (*Event, error)
	Create(nodePath string, dir bool, value string, unique bool,
		expireOpts TTLOptionSet) (*Event, error)
	CompareAndSwap(nodePath string, prevValue string, prevIndex uint64,
		value string, expireOpts TTLOptionSet) (*Event, error)
	Delete(nodePath string, dir, recursive bool) (*Event, error)
	CompareAndDelete(nodePath string, prevValue string, prevIndex uint64) (*Event, error)

	Watch(prefix string, recursive, stream bool, sinceIndex uint64) (Watcher, error)

	Save() ([]byte, error)
	Recovery(state []byte) error

	Clone() Store
	SaveNoCopy() ([]byte, error)

	JsonStats() []byte
	DeleteExpiredKeys(cutoff time.Time)
}

func New added in v0.2.0

func New(namespaces ...string) Store

The given namespaces will be created as initial directories in the returned store.

func NewNop

func NewNop() Store

type StoreRecorder

type StoreRecorder struct {
	Store
	testutil.Recorder
}

StoreRecorder provides a Store interface with a testutil.Recorder

func NewErrRecorder

func NewErrRecorder(err error) *StoreRecorder

func NewRecorder

func NewRecorder() *StoreRecorder

func NewRecorderStream

func NewRecorderStream() *StoreRecorder

type TTLOptionSet

type TTLOptionSet struct {
	ExpireTime time.Time
	Refresh    bool
}

type Watcher

type Watcher interface {
	EventChan() chan *Event
	StartIndex() uint64 // The EtcdIndex at which the Watcher was created
	Remove()
}

func NewNopWatcher

func NewNopWatcher() Watcher

Jump to

Keyboard shortcuts

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