Mnwa / ReconEngine

Fast library realised lsm tree key value store.

Repository from Github https://github.comMnwa/ReconEngineRepository from Github https://github.comMnwa/ReconEngine

ReconEngine

Github all releases Go Report Card GitHub license Repository Size

It is the storage engine realised the lsm tree structure, used by ReconDB

Usage

Interface MemStorage

//Base mem interface, you can implement own realisation
type MemStorage interface {
	Get(key string) ([]byte, error)
	Set(key string, value []byte)
	Del(key string) error
	Sync() error
	Len() int
	SsTable() SsTableStorage
}
// Mem constructor, create structure realised MemStorage interface
// ssTable argument may be a nil
// Dir is the link to directory for data storing
func NewMem(ssTable SsTableStorage, dir *string) MemStorage

Interface SsTableStorage

//Base SsTable interface, you can implement own realisation
type SsTableStorage interface {
	Get(key string) ([]byte, error)
	Set(key string, value []byte) error
	Del(key string) error
	CreatePartition() SsTablePartitionStorage
	ClosePartition(partition SsTablePartitionStorage) error
	OpenPartition(createdAt int64) SsTablePartitionStorage
	Range(cb func(createdAt int64, partitionStorage SsTablePartitionStorage) bool)
	Len() int
	CloseAll() error
	MergeSort() error
}
// SsTable constructor, create structure realised SsTableStorage interface
// Dir is the link to directory for data storing
func NewSsTable(dir *string) SsTableStorage

Interface SsTablePartitionStorage

//Base ss table partition interface, you can implement own realisation
type SsTablePartitionStorage interface {
	Get(key string) ([]byte, error)
	Set(key string, value []byte) error
	Del(key string) error
	Range(cb func(key string, value []byte) bool)
	Key() int64
	Close() error
}
// SsTable partition constructor, create structure realised SsTablePartitionStorage interface
// Dir is the link to directory for data storing
func NewSStablePartition(createdAt int64, dir *string) SsTablePartitionStorage

Errors

// Error used when key don't exists
var KeyNotFoundErr = errors.New("can't found value by that key")
// Error used when key removed
var KeyRemovedErr = errors.New("that key was removed")

About

Fast library realised lsm tree key value store.

License:Apache License 2.0


Languages

Language:Go 100.0%