Documentation
¶
Overview ¶
Package kvstore defines a shared, minimal key/value store API used across gomap engines (HashDB, TreeDB, BTreeOnHashDB) and tooling like cmd/unified_bench.
Iterator semantics (performance-first):
- Key() and Value() may return read-only views into underlying storage.
- Returned slices are valid until the next Next()/Close() call on that iterator.
- Callers must not modify returned slices; use KeyCopy/ValueCopy for stable bytes.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrUnsupported = errors.New("kvstore: unsupported")
ErrUnsupported is returned by optional capabilities that are not implemented by a particular engine (e.g. ordered iteration for HashDB).
Functions ¶
This section is empty.
Types ¶
type Batch ¶
type Batch interface {
Set(key, value []byte) error
Delete(key []byte) error
Commit() error
CommitSync() error
Close() error
}
Batch is a buffered write unit.
type DB ¶
type DB interface {
Name() string
Close() error
Get(key []byte) ([]byte, error)
Set(key, value []byte) error
Delete(key []byte) error
}
DB is the minimal common interface shared across all engines.
type ForEacher ¶
ForEacher is an optional capability for visiting all live key/value pairs. Iteration order is engine-defined and may be arbitrary.
type Iterator ¶
type Iterator interface {
Valid() bool
Next()
Key() []byte
Value() []byte
KeyCopy(dst []byte) []byte
ValueCopy(dst []byte) []byte
Error() error
Close() error
}
Iterator is a forward-only iterator over key/value pairs.
type Printer ¶
type Printer interface {
Print() error
}
Printer is an optional capability for debug printing.
type RangeScanner ¶
type RangeScanner interface {
Iterator(start, end []byte) (Iterator, error)
ReverseIterator(start, end []byte) (Iterator, error)
}
RangeScanner is an optional capability for ordered iteration over a key domain. Start is inclusive, End is exclusive; nil means unbounded.
type StatsProvider ¶
StatsProvider is an optional capability for exposing engine stats.