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



    This section is empty.


    This section is empty.


    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
      	// SizeInUse returns the current size of the backend logically in use.
      	// Since the backend can manage free space in a non-byte unit such as
      	// number of pages, the returned value can be not exactly accurate in bytes.
      	SizeInUse() 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