Skip to content

Commit

Permalink
goleveldb: bound iterator range for improved performance (#134)
Browse files Browse the repository at this point in the history
  • Loading branch information
Klimov Sergey authored and erikgrinaker committed Nov 10, 2020
1 parent 8ca6b8e commit 52e57bf
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 2 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

## Unreleased

- [\#134](https://github.com/tendermint/tm-db/pull/134) Improve GoLevelDB iterator performance by bounding underlying iterator range (@klim0v)

## 0.5.1

**2020-03-30**
Expand Down
5 changes: 3 additions & 2 deletions goleveldb.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"github.com/syndtr/goleveldb/leveldb"
"github.com/syndtr/goleveldb/leveldb/errors"
"github.com/syndtr/goleveldb/leveldb/opt"
"github.com/syndtr/goleveldb/leveldb/util"
)

func init() {
Expand Down Expand Up @@ -158,12 +159,12 @@ func (db *GoLevelDB) NewBatch() Batch {

// Iterator implements DB.
func (db *GoLevelDB) Iterator(start, end []byte) (Iterator, error) {
itr := db.db.NewIterator(nil, nil)
itr := db.db.NewIterator(&util.Range{Start: start, Limit: end}, nil)
return newGoLevelDBIterator(itr, start, end, false), nil
}

// ReverseIterator implements DB.
func (db *GoLevelDB) ReverseIterator(start, end []byte) (Iterator, error) {
itr := db.db.NewIterator(nil, nil)
itr := db.db.NewIterator(&util.Range{Start: start, Limit: end}, nil)
return newGoLevelDBIterator(itr, start, end, true), nil
}

0 comments on commit 52e57bf

Please sign in to comment.