From b6b100fe04c2c6c0f797d1e2222e9f2160437184 Mon Sep 17 00:00:00 2001 From: Mark Callaghan Date: Fri, 1 May 2015 14:17:45 -0700 Subject: [PATCH] Remove iter_refresh_interval_us Summary: The default, use one iter for the whole test, isn't good. This cost me a few hours of debugging and a few days of tessting. For readonly that isn't realistic and for read-write that keeps a lot of old sst files around. I remove the option because nothing uses it and not calling gettimeofday per loop iteration adds about 3% to QPS at 20 threads. Task ID: # Blame Rev: Test Plan: run db_bench Revert Plan: Database Impact: Memcache Impact: Other Notes: EImportant: - begin *PUBLIC* platform impact section - Bugzilla: # - end platform impact - Reviewers: igor Reviewed By: igor Subscribers: dhruba Differential Revision: https://reviews.facebook.net/D37965 --- db/db_bench.cc | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/db/db_bench.cc b/db/db_bench.cc index d5633db12a..dfe466e314 100644 --- a/db/db_bench.cc +++ b/db/db_bench.cc @@ -550,8 +550,6 @@ DEFINE_string(flashcache_dev, "", "Path to flashcache device"); DEFINE_bool(use_tailing_iterator, false, "Use tailing iterator to access a series of keys instead of get"); -DEFINE_int64(iter_refresh_interval_us, -1, - "How often to refresh iterators. Disable refresh when -1"); DEFINE_bool(use_adaptive_mutex, rocksdb::Options().use_adaptive_mutex, "Use adaptive mutex"); @@ -2697,7 +2695,6 @@ class Benchmark { multi_iters.push_back(db_with_cfh.db->NewIterator(options)); } } - uint64_t last_refresh = FLAGS_env->NowMicros(); std::unique_ptr key_guard; Slice key = AllocateKey(&key_guard); @@ -2705,23 +2702,19 @@ class Benchmark { Duration duration(FLAGS_duration, reads_); char value_buffer[256]; while (!duration.Done(1)) { - if (!FLAGS_use_tailing_iterator && FLAGS_iter_refresh_interval_us >= 0) { - uint64_t now = FLAGS_env->NowMicros(); - if (now - last_refresh > (uint64_t)FLAGS_iter_refresh_interval_us) { - if (db_.db != nullptr) { - delete single_iter; - single_iter = db_.db->NewIterator(options); - } else { - for (auto iter : multi_iters) { - delete iter; - } - multi_iters.clear(); - for (const auto& db_with_cfh : multi_dbs_) { - multi_iters.push_back(db_with_cfh.db->NewIterator(options)); - } + if (!FLAGS_use_tailing_iterator) { + if (db_.db != nullptr) { + delete single_iter; + single_iter = db_.db->NewIterator(options); + } else { + for (auto iter : multi_iters) { + delete iter; + } + multi_iters.clear(); + for (const auto& db_with_cfh : multi_dbs_) { + multi_iters.push_back(db_with_cfh.db->NewIterator(options)); } } - last_refresh = now; } // Pick a Iterator to use Iterator* iter_to_use = single_iter;