From: changtao Date: Mon, 1 Feb 2016 17:23:37 +0000 (+0800) Subject: CacheTier: set cache_min_evict_age is effective X-Git-Tag: v10.0.4~48^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ab7d3decbfa5e854ab761e29c0ac2341186a3c9a;p=ceph.git CacheTier: set cache_min_evict_age is effective Signed-off-by: Tao Chang --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 752ef73b5c1..ae4b2a36c11 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;