X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Fcommon%2FDecayCounter.cc;fp=src%2Fceph%2Fsrc%2Fcommon%2FDecayCounter.cc;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=67a129ccd0965e470f9096772704122869dafb30;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/common/DecayCounter.cc b/src/ceph/src/common/DecayCounter.cc deleted file mode 100644 index 67a129c..0000000 --- a/src/ceph/src/common/DecayCounter.cc +++ /dev/null @@ -1,82 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab -/* - * Ceph - scalable distributed file system - * - * Copyright (C) 2004-2006 Sage Weil - * - * This is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License version 2.1, as published by the Free Software - * Foundation. See file COPYING. - * - */ - -#include "DecayCounter.h" -#include "Formatter.h" - -void DecayCounter::encode(bufferlist& bl) const -{ - ENCODE_START(4, 4, bl); - ::encode(val, bl); - ::encode(delta, bl); - ::encode(vel, bl); - ENCODE_FINISH(bl); -} - -void DecayCounter::decode(const utime_t &t, bufferlist::iterator &p) -{ - DECODE_START_LEGACY_COMPAT_LEN(4, 4, 4, p); - if (struct_v < 2) { - double half_life; - ::decode(half_life, p); - } - if (struct_v < 3) { - double k; - ::decode(k, p); - } - ::decode(val, p); - ::decode(delta, p); - ::decode(vel, p); - DECODE_FINISH(p); -} - -void DecayCounter::dump(Formatter *f) const -{ - f->dump_float("value", val); - f->dump_float("delta", delta); - f->dump_float("velocity", vel); -} - -void DecayCounter::generate_test_instances(list& ls) -{ - utime_t fake_time; - DecayCounter *counter = new DecayCounter(fake_time); - counter->val = 3.0; - counter->delta = 2.0; - counter->vel = 1.0; - ls.push_back(counter); - counter = new DecayCounter(fake_time); - ls.push_back(counter); -} - -void DecayCounter::decay(utime_t now, const DecayRate &rate) -{ - utime_t el = now; - el -= last_decay; - - if (el.sec() >= 1) { - // calculate new value - double newval = (val+delta) * exp((double)el * rate.k); - if (newval < .01) - newval = 0.0; - - // calculate velocity approx - vel += (newval - val) * (double)el; - vel *= exp((double)el * rate.k); - - val = newval; - delta = 0; - last_decay = now; - } -}