From 4ecc03c039a23f9a52a6b6abdf932a1d7bd915c4 Mon Sep 17 00:00:00 2001 From: SherlockNoMad Date: Thu, 17 Mar 2016 14:28:41 -0700 Subject: [PATCH] Fix in HistogramWindowingImpl --- util/histogram_windowing.cc | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/util/histogram_windowing.cc b/util/histogram_windowing.cc index 9d8f5429a..165d6592b 100644 --- a/util/histogram_windowing.cc +++ b/util/histogram_windowing.cc @@ -14,10 +14,6 @@ namespace rocksdb { -namespace { - const HistogramBucketMapper bucketMapper; -} - HistogramWindowingImpl::HistogramWindowingImpl() { env_ = Env::Default(); window_stats_.reset(new HistogramStat[num_windows_]); @@ -36,8 +32,7 @@ HistogramWindowingImpl::HistogramWindowingImpl( Clear(); } -HistogramWindowingImpl::~HistogramWindowingImpl(){ - window_stats_.release(); +HistogramWindowingImpl::~HistogramWindowingImpl() { } void HistogramWindowingImpl::Clear() { @@ -85,7 +80,7 @@ void HistogramWindowingImpl::Merge(const HistogramWindowingImpl& other) { uint64_t cur_window = current_window(); uint64_t other_cur_window = other.current_window(); // going backwards for alignment - for (unsigned int i = 0; + for (unsigned int i = 0; i < std::min(num_windows_, other.num_windows_); i++) { uint64_t window_index = (cur_window + num_windows_ - i) % num_windows_; @@ -147,7 +142,7 @@ void HistogramWindowingImpl::SwapHistoryBucket() { last_swap_time_.store(env_->NowMicros(), std::memory_order_relaxed); uint64_t curr_window = current_window(); - uint64_t next_window = (curr_window == num_windows_ - 1) ? + uint64_t next_window = (curr_window == num_windows_ - 1) ? 0 : curr_window + 1; // subtract next buckets from totals and swap to next buckets @@ -160,7 +155,7 @@ void HistogramWindowingImpl::SwapHistoryBucket() { } if (stats_.min() == stats_to_drop.min()) { - uint64_t new_min = bucketMapper.LastValue(); + uint64_t new_min = std::numeric_limits::max(); for (unsigned int i = 0; i < num_windows_; i++) { if (i != next_window) { uint64_t m = window_stats_[i].min();