Re-use RocksDB iterators for scans

This commit is contained in:
Daniel Smith 2020-06-18 18:01:21 +00:00
parent 01e7b5356e
commit 90060ac29f
1 changed files with 5 additions and 1 deletions

View File

@ -257,7 +257,11 @@ struct RocksDBKeyValueStore : IKeyValueStore {
virtual double getTimeEstimate() { return SERVER_KNOBS->READ_RANGE_TIME_ESTIMATE; }
};
void action(ReadRangeAction& a) {
auto cursor = std::unique_ptr<rocksdb::Iterator>(db->NewIterator(readOptions));
if (cursor == nullptr) {
cursor = std::unique_ptr<rocksdb::Iterator>(db->NewIterator(readOptions));
} else {
cursor->Refresh();
}
Standalone<RangeResultRef> result;
int accumulatedBytes = 0;
if (a.rowLimit >= 0) {