...
Package backend
Overview ▹
Index ▹
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
ForceCommit()
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 { ReadTx 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. Commit() // CommitAndStop commits the previous tx and does not create a new one. CommitAndStop() }
type IgnoreKey ¶
type IgnoreKey struct { Bucket string Key string }
type ReadTx ¶
type ReadTx interface { Lock() Unlock() 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 }