store - ActiveState ActiveGo 1.8
...

Package store

import "github.com/coreos/etcd/store"
Overview
Index

Overview ▾

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

Constants

const (
    Get              = "get"
    Create           = "create"
    Set              = "set"
    Update           = "update"
    Delete           = "delete"
    CompareAndSwap   = "compareAndSwap"
    CompareAndDelete = "compareAndDelete"
    Expire           = "expire"
)

explanations of Compare function result

const (
    CompareMatch = iota
    CompareIndexNotMatch
    CompareValueNotMatch
    CompareNotMatch
)
const (
    SetSuccess = iota
    SetFail
    DeleteSuccess
    DeleteFail
    CreateSuccess
    CreateFail
    UpdateSuccess
    UpdateFail
    CompareAndSwapSuccess
    CompareAndSwapFail
    GetSuccess
    GetFail
    ExpireCount
    CompareAndDeleteSuccess
    CompareAndDeleteFail
)
const (
    GetRecursive = "getRecursive"
)

Variables

var Permanent time.Time

type Event

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

func (*Event) Clone

func (e *Event) Clone() *Event

func (*Event) Index

func (e *Event) Index() uint64

func (*Event) IsCreated

func (e *Event) IsCreated() bool

func (*Event) SetRefresh

func (e *Event) SetRefresh()

type EventHistory

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

type NodeExtern

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

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"`
}

func (*NodeExtern) Clone

func (eNode *NodeExtern) Clone() *NodeExtern

type NodeExterns

type NodeExterns []*NodeExtern

func (NodeExterns) Len

func (ns NodeExterns) Len() int

func (NodeExterns) Less

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

func (NodeExterns) Swap

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

type Stats

type Stats struct {
    GetSuccess uint64 `json:"getsSuccess"`
    GetFail    uint64 `json:"getsFail"`

    SetSuccess uint64 `json:"setsSuccess"`
    SetFail    uint64 `json:"setsFail"`

    DeleteSuccess uint64 `json:"deleteSuccess"`
    DeleteFail    uint64 `json:"deleteFail"`

    UpdateSuccess uint64 `json:"updateSuccess"`
    UpdateFail    uint64 `json:"updateFail"`

    CreateSuccess uint64 `json:"createSuccess"`
    CreateFail    uint64 `json:"createFail"`

    CompareAndSwapSuccess uint64 `json:"compareAndSwapSuccess"`
    CompareAndSwapFail    uint64 `json:"compareAndSwapFail"`

    CompareAndDeleteSuccess uint64 `json:"compareAndDeleteSuccess"`
    CompareAndDeleteFail    uint64 `json:"compareAndDeleteFail"`

    ExpireCount uint64 `json:"expireCount"`

    Watchers uint64 `json:"watchers"`
}

func (*Stats) Inc

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)

    HasTTLKeys() bool
}

func New

func New(namespaces ...string) Store

New creates a store where the given namespaces will be created as initial directories.

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