mirror of
https://gitlab.com/pulsechaincom/erigon-pulse.git
synced 2024-12-26 05:27:19 +00:00
26ccde4614
* use lmdb.Append method * linter happiness
77 lines
1.8 KiB
Go
77 lines
1.8 KiB
Go
package ethdb
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/ledgerwatch/turbo-geth/common"
|
|
)
|
|
|
|
type KV interface {
|
|
View(ctx context.Context, f func(tx Tx) error) error
|
|
Update(ctx context.Context, f func(tx Tx) error) error
|
|
Close()
|
|
|
|
Begin(ctx context.Context, writable bool) (Tx, error)
|
|
IdealBatchSize() int
|
|
}
|
|
|
|
type NativeGet interface {
|
|
Get(ctx context.Context, bucket, key []byte) ([]byte, error)
|
|
Has(ctx context.Context, bucket, key []byte) (bool, error)
|
|
}
|
|
|
|
type Tx interface {
|
|
Bucket(name []byte) Bucket
|
|
|
|
Commit(ctx context.Context) error
|
|
Rollback() error
|
|
}
|
|
|
|
type Bucket interface {
|
|
Get(key []byte) (val []byte, err error)
|
|
Put(key []byte, value []byte) error
|
|
Delete(key []byte) error
|
|
Cursor() Cursor
|
|
|
|
Size() (uint64, error)
|
|
Clear() error
|
|
}
|
|
|
|
type Cursor interface {
|
|
Prefix(v []byte) Cursor
|
|
MatchBits(uint) Cursor
|
|
Prefetch(v uint) Cursor
|
|
NoValues() NoValuesCursor
|
|
|
|
First() ([]byte, []byte, error)
|
|
Seek(seek []byte) ([]byte, []byte, error)
|
|
SeekTo(seek []byte) ([]byte, []byte, error)
|
|
Next() ([]byte, []byte, error)
|
|
Walk(walker func(k, v []byte) (bool, error)) error
|
|
|
|
Put(key []byte, value []byte) error
|
|
Delete(key []byte) error
|
|
Append(key []byte, value []byte) error // Danger: if provided data will not sorted (or bucket have old records which mess with new in sorting manner) - db will corrupt. Method also doesn't tolerate duplicates.
|
|
}
|
|
|
|
type NoValuesCursor interface {
|
|
First() ([]byte, uint32, error)
|
|
Seek(seek []byte) ([]byte, uint32, error)
|
|
Next() ([]byte, uint32, error)
|
|
Walk(walker func(k []byte, vSize uint32) (bool, error)) error
|
|
}
|
|
|
|
type HasStats interface {
|
|
DiskSize(context.Context) (common.StorageSize, error) // db size
|
|
BucketsStat(context.Context) (map[string]common.StorageBucketWriteStats, error)
|
|
}
|
|
|
|
type DbProvider uint8
|
|
|
|
const (
|
|
Bolt DbProvider = iota
|
|
Badger
|
|
Remote
|
|
Lmdb
|
|
)
|