backend - ActiveState ActiveGo 1.8

Package backend

import ""

Overview ▾

Package backend defines a standard interface for etcd's backend MVCC storage.

func NewDefaultTmpBackend

func NewDefaultTmpBackend() (*backend, string)

func NewTmpBackend

func NewTmpBackend(batchInterval time.Duration, batchLimit int) (*backend, string)

NewTmpBackend creates a backend implementation for testing.

type Backend

type Backend interface {
    ReadTx() ReadTx
    BatchTx() BatchTx

    Snapshot() Snapshot
    Hash(ignores map[IgnoreKey]struct{}) (uint32, error)
    // Size returns the current size of the backend.
    Size() int64
    Defrag() error
    Close() error

func New

func New(bcfg BackendConfig) Backend

func NewDefaultBackend

func NewDefaultBackend(path string) Backend

type BackendConfig

type BackendConfig struct {
    // Path is the file path to the backend file.
    Path string
    // BatchInterval is the maximum time before flushing the BatchTx.
    BatchInterval time.Duration
    // BatchLimit is the maximum puts before flushing the BatchTx.
    BatchLimit int
    // MmapSize is the number of bytes to mmap for the backend.
    MmapSize uint64

func DefaultBackendConfig

func DefaultBackendConfig() BackendConfig

type BatchTx

type BatchTx interface {
    UnsafeCreateBucket(name []byte)
    UnsafePut(bucketName []byte, key []byte, value []byte)
    UnsafeSeqPut(bucketName []byte, key []byte, value []byte)
    UnsafeDelete(bucketName []byte, key []byte)
    // Commit commits a previous tx and begins a new writable one.
    // CommitAndStop commits the previous tx and does not create a new one.

type IgnoreKey

type IgnoreKey struct {
    Bucket string
    Key    string

type ReadTx

type ReadTx interface {

    UnsafeRange(bucketName []byte, key, endKey []byte, limit int64) (keys [][]byte, vals [][]byte)
    UnsafeForEach(bucketName []byte, visitor func(k, v []byte) error) error

type Snapshot

type Snapshot interface {
    // Size gets the size of the snapshot.
    Size() int64
    // WriteTo writes the snapshot into the given writer.
    WriteTo(w io.Writer) (n int64, err error)
    // Close closes the snapshot.
    Close() error