X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Fosd%2FTierAgentState.h;fp=src%2Fceph%2Fsrc%2Fosd%2FTierAgentState.h;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=e1665e6418688e1e566c5b999abc038b1225d4d0;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/osd/TierAgentState.h b/src/ceph/src/osd/TierAgentState.h deleted file mode 100644 index e1665e6..0000000 --- a/src/ceph/src/osd/TierAgentState.h +++ /dev/null @@ -1,117 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -/* - * Ceph - scalable distributed file system - * - * Copyright (C) 2013 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. - * - */ - -#ifndef CEPH_OSD_TIERAGENT_H -#define CEPH_OSD_TIERAGENT_H - -struct TierAgentState { - /// current position iterating across pool - hobject_t position; - /// Count of agent_work since "start" position of object hash space - int started; - hobject_t start; - bool delaying; - - /// histogram of ages we've encountered - pow2_hist_t temp_hist; - int hist_age; - - /// past HitSet(s) (not current) - map hit_set_map; - - /// a few recent things we've seen that are clean - list recent_clean; - - enum flush_mode_t { - FLUSH_MODE_IDLE, // nothing to flush - FLUSH_MODE_LOW, // flush dirty objects with a low speed - FLUSH_MODE_HIGH, //flush dirty objects with a high speed - } flush_mode; ///< current flush behavior - static const char *get_flush_mode_name(flush_mode_t m) { - switch (m) { - case FLUSH_MODE_IDLE: return "idle"; - case FLUSH_MODE_LOW: return "low"; - case FLUSH_MODE_HIGH: return "high"; - default: assert(0 == "bad flush mode"); - } - } - const char *get_flush_mode_name() const { - return get_flush_mode_name(flush_mode); - } - - enum evict_mode_t { - EVICT_MODE_IDLE, // no need to evict anything - EVICT_MODE_SOME, // evict some things as we are near the target - EVICT_MODE_FULL, // evict anything - } evict_mode; ///< current evict behavior - static const char *get_evict_mode_name(evict_mode_t m) { - switch (m) { - case EVICT_MODE_IDLE: return "idle"; - case EVICT_MODE_SOME: return "some"; - case EVICT_MODE_FULL: return "full"; - default: assert(0 == "bad evict mode"); - } - } - const char *get_evict_mode_name() const { - return get_evict_mode_name(evict_mode); - } - - /// approximate ratio of objects (assuming they are uniformly - /// distributed) that i should aim to evict. - unsigned evict_effort; - - TierAgentState() - : started(0), - delaying(false), - hist_age(0), - flush_mode(FLUSH_MODE_IDLE), - evict_mode(EVICT_MODE_IDLE), - evict_effort(0) - {} - - /// false if we have any work to do - bool is_idle() const { - return - delaying || - (flush_mode == FLUSH_MODE_IDLE && - evict_mode == EVICT_MODE_IDLE); - } - - /// add archived HitSet - void add_hit_set(time_t start, HitSetRef hs) { - hit_set_map.insert(make_pair(start, hs)); - } - - /// remove old/trimmed HitSet - void remove_oldest_hit_set() { - if (!hit_set_map.empty()) - hit_set_map.erase(hit_set_map.begin()); - } - - /// discard all open hit sets - void discard_hit_sets() { - hit_set_map.clear(); - } - - void dump(Formatter *f) const { - f->dump_string("flush_mode", get_flush_mode_name()); - f->dump_string("evict_mode", get_evict_mode_name()); - f->dump_unsigned("evict_effort", evict_effort); - f->dump_stream("position") << position; - f->open_object_section("temp_hist"); - temp_hist.dump(f); - f->close_section(); - } -}; - -#endif