Skip to content

Mnwa/ReconEngine

Repository files navigation

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")