From ab7d3decbfa5e854ab761e29c0ac2341186a3c9a Mon Sep 17 00:00:00 2001 From: changtao Date: Tue, 2 Feb 2016 01:23:37 +0800 Subject: [PATCH] CacheTier: set cache_min_evict_age is effective Signed-off-by: Tao Chang --- src/osd/ReplicatedPG.cc | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 752ef73b5c1c..ae4b2a36c110 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -11766,6 +11766,19 @@ bool ReplicatedPG::agent_maybe_evict(ObjectContextRef& obc, bool after_flush) } if (agent_state->evict_mode != TierAgentState::EVICT_MODE_FULL) { + // is this object old than cache_min_evict_age? + utime_t now = ceph_clock_now(NULL); + utime_t ob_local_mtime; + if (obc->obs.oi.local_mtime != utime_t()) { + ob_local_mtime = obc->obs.oi.local_mtime; + } else { + ob_local_mtime = obc->obs.oi.mtime; + } + if (ob_local_mtime + utime_t(pool.info.cache_min_evict_age, 0) > now) { + dout(20) << __func__ << " skip (too young) " << obc->obs.oi << dendl; + osd->logger->inc(l_osd_agent_skip); + return false; + } // is this object old and/or cold enough? int temp = 0; uint64_t temp_upper = 0, temp_lower = 0; -- 2.47.3