Skip to content

Commit

Permalink
perf: levelDB options tuning (#4218)
Browse files Browse the repository at this point in the history
  • Loading branch information
mrekucci authored Jul 12, 2023
1 parent dc86bad commit 3c5a818
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 5 deletions.
4 changes: 2 additions & 2 deletions pkg/node/statestore.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ func InitStateStore(logger log.Logger, dataDir string, cacheCapacity uint64) (st
} else {
dataDir = filepath.Join(dataDir, "statestore")
}
ldb, err := leveldbstore.New(dataDir, &opt.Options{Compression: opt.NoCompression})
ldb, err := leveldbstore.New(dataDir, nil)
if err != nil {
return nil, nil, err
}
Expand All @@ -52,7 +52,7 @@ func InitStamperStore(logger log.Logger, dataDir string, stateStore storage.Stat
} else {
dataDir = filepath.Join(dataDir, "stamperstore")
}
stamperStore, err := leveldbstore.New(dataDir, &opt.Options{Compression: opt.NoCompression})
stamperStore, err := leveldbstore.New(dataDir, nil)
if err != nil {
return nil, err
}
Expand Down
8 changes: 6 additions & 2 deletions pkg/storage/leveldbstore/store.go
Original file line number Diff line number Diff line change
Expand Up @@ -147,9 +147,13 @@ func (s *Store) Iterate(q storage.Query, fn storage.IterateFn) error {
}
}()

iterOpts := &opt.ReadOptions{
DontFillCache: true,
}

if q.PrefixAtStart {
prefix = q.Factory().Namespace()
iter = s.db.NewIterator(util.BytesPrefix([]byte(prefix)), nil)
iter = s.db.NewIterator(util.BytesPrefix([]byte(prefix)), iterOpts)
exists := iter.Seek([]byte(prefix + separator + q.Prefix))
if !exists {
return nil
Expand All @@ -162,7 +166,7 @@ func (s *Store) Iterate(q storage.Query, fn storage.IterateFn) error {
if q.Factory().Namespace() != "" {
prefix = q.Factory().Namespace() + separator + q.Prefix
}
iter = s.db.NewIterator(util.BytesPrefix([]byte(prefix)), nil)
iter = s.db.NewIterator(util.BytesPrefix([]byte(prefix)), iterOpts)
}

nextF := iter.Next
Expand Down
4 changes: 3 additions & 1 deletion pkg/storer/storer.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ import (
"github.com/prometheus/client_golang/prometheus"
"github.com/spf13/afero"
"github.com/syndtr/goleveldb/leveldb"
"github.com/syndtr/goleveldb/leveldb/filter"
"github.com/syndtr/goleveldb/leveldb/opt"
"resenje.org/multex"
)
Expand Down Expand Up @@ -260,7 +261,8 @@ func initStore(basePath string, opts *Options) (*leveldbstore.Store, error) {
BlockCacheCapacity: int(opts.LdbBlockCacheCapacity),
WriteBuffer: int(opts.LdbWriteBufferSize),
DisableSeeksCompaction: opts.LdbDisableSeeksCompaction,
Compression: opt.NoCompression,
CompactionL0Trigger: 8,
Filter: filter.NewBloomFilter(64),
})
if err != nil {
return nil, fmt.Errorf("failed creating levelDB index store: %w", err)
Expand Down

0 comments on commit 3c5a818

Please sign in to comment.