bench

package module
v0.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 18, 2024 License: Apache-2.0 Imports: 16 Imported by: 7

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RootCommand

func RootCommand(cmds ...*cobra.Command) (*cobra.Command, error)

Types

type ChangesetGenerator

type ChangesetGenerator struct {
	StoreKey         string
	Seed             int64
	KeyMean          int
	KeyStdDev        int
	ValueMean        int
	ValueStdDev      int
	InitialSize      int
	FinalSize        int
	Versions         int64
	ChangePerVersion int
	DeleteFraction   float64
}

func BankLikeGenerator

func BankLikeGenerator(seed int64, versions int64) ChangesetGenerator

func LockupLikeGenerator

func LockupLikeGenerator(seed int64, versions int64) ChangesetGenerator

func OsmoLikeGenerators added in v0.0.3

func OsmoLikeGenerators() []ChangesetGenerator

func StakingLikeGenerator

func StakingLikeGenerator(seed int64, versions int64) ChangesetGenerator

func (ChangesetGenerator) Iterator

func (c ChangesetGenerator) Iterator() (ChangesetIterator, error)

type ChangesetIterator

type ChangesetIterator interface {
	Next() error
	Valid() bool
	Nodes() api.NodeIterator
	Version() int64
}

func OsmoLikeIterator added in v0.0.3

func OsmoLikeIterator() ChangesetIterator

type ChangesetIterators

type ChangesetIterators struct {
	NodeItr *multiNodeIterator
	// contains filtered or unexported fields
}

func NewChangesetIterators

func NewChangesetIterators(gens []ChangesetGenerator) (*ChangesetIterators, error)

func (*ChangesetIterators) Next

func (itr *ChangesetIterators) Next() error

func (*ChangesetIterators) Nodes

func (itr *ChangesetIterators) Nodes() api.NodeIterator

func (*ChangesetIterators) StoreKeys added in v0.0.3

func (itr *ChangesetIterators) StoreKeys() []string

func (*ChangesetIterators) Valid

func (itr *ChangesetIterators) Valid() bool

func (*ChangesetIterators) Version

func (itr *ChangesetIterators) Version() int64

type ChangesetItr

type ChangesetItr struct {
	NodeItr *generatingNodeItr
	// contains filtered or unexported fields
}

func (*ChangesetItr) Next

func (itr *ChangesetItr) Next() error

func (*ChangesetItr) Nodes

func (itr *ChangesetItr) Nodes() api.NodeIterator

func (*ChangesetItr) Valid

func (itr *ChangesetItr) Valid() bool

func (*ChangesetItr) Version

func (itr *ChangesetItr) Version() int64

type MultiTree

type MultiTree interface {
	GetTree(key string) (Tree, error)
	SaveVersions() ([]byte, int64, error)
	V2Hash() []byte
}

type NaiveMultiTree

type NaiveMultiTree struct {
	Trees map[string]Tree
}

func NewMultiTree

func NewMultiTree() *NaiveMultiTree

func (*NaiveMultiTree) GetTree

func (nmt *NaiveMultiTree) GetTree(key string) (Tree, error)

func (*NaiveMultiTree) SaveVersions

func (nmt *NaiveMultiTree) SaveVersions() ([]byte, int64, error)

func (*NaiveMultiTree) V2Hash added in v0.0.4

func (nmt *NaiveMultiTree) V2Hash() []byte

type Tree

type Tree interface {
	Set(key, value []byte) (bool, error)
	Get(key []byte) ([]byte, error)
	Remove(key []byte) ([]byte, bool, error)
	SaveVersion() ([]byte, int64, error)
	Size() int64
	Height() int8
	Hash() ([]byte, error)
}

type TreeContext

type TreeContext struct {
	context.Context

	Log               zerolog.Logger
	IndexDir          string
	LogDir            string
	Iterator          ChangesetIterator
	VersionLimit      int64
	MetricLeafCount   prometheus.Counter
	MetricTreeSize    prometheus.Gauge
	MetricsTreeHeight prometheus.Gauge
	HashLog           *os.File

	// hack to use a single tree instead of per storekey
	OneTree string
}

func (*TreeContext) BuildLegacyIAVL

func (c *TreeContext) BuildLegacyIAVL(multiTree MultiTree) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL