From 52e57bf7b4845abfa28e2839ae76b7d34f09e0b6 Mon Sep 17 00:00:00 2001 From: Klimov Sergey Date: Mon, 9 Nov 2020 18:57:20 +0300 Subject: [PATCH] goleveldb: bound iterator range for improved performance (#134) --- CHANGELOG.md | 2 ++ goleveldb.go | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d0c60ba46..84ced3267 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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** diff --git a/goleveldb.go b/goleveldb.go index eadc83606..885c17689 100644 --- a/goleveldb.go +++ b/goleveldb.go @@ -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() { @@ -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 }