]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: Revert use of dmclock message feature bit since not yet finalized 21398/head
authorJ. Eric Ivancich <ivancich@redhat.com>
Tue, 10 Apr 2018 18:28:39 +0000 (14:28 -0400)
committerJ. Eric Ivancich <ivancich@redhat.com>
Fri, 13 Apr 2018 14:27:26 +0000 (10:27 -0400)
Because the updated use of dmclock is not yet finalized and the
unfinished functionality uses a valuable messaging feature bit that we
don't want to waste, we're removing it for the mimic release and from
master.

Reverts most of the following commits for mimic:

  de8110ebb39401d3e09cb871f843776421ccd56f
  739d7e462f3a03c4e188fcfa48eb05c0063970c9
  2361e9c790306e789393323ef349d8b4a20bc70d
  9b702cf8fc2ff881ca16edc78874f2118a2e4641

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
18 files changed:
src/CMakeLists.txt
src/common/legacy_config_opts.h
src/common/mClockCommon.h [deleted file]
src/common/mClockPriorityQueue.h
src/common/options.cc
src/include/ceph_features.h
src/messages/MOSDOp.h
src/messages/MOSDOpReply.h
src/osd/OSD.cc
src/osd/OpQueueItem.h
src/osd/OpRequest.cc
src/osd/OpRequest.h
src/osd/PrimaryLogPG.cc
src/osd/mClockClientQueue.cc
src/osdc/CMakeLists.txt
src/osdc/Objecter.cc
src/osdc/Objecter.h
src/test/osd/TestMClockClientQueue.cc

index 2bf655c7d1ef43176930157400c9a63096888025..315777e72ee63bee45af18d5897758270c71285e 100644 (file)
@@ -532,8 +532,6 @@ set(libcommon_files
   common/Cycles.cc
   common/scrub_types.cc
   common/bit_str.cc
-  dmclock/src/dmclock_util.cc
-  dmclock/support/src/run_every.cc
   osdc/Striper.cc
   osdc/Objecter.cc
   common/Graylog.cc
index f79ddc1ad040cf486aa7c3d06bb3c507287bffc1..69fbc51c1935ef24ba09cb80a00b86199346f960 100644 (file)
@@ -385,7 +385,6 @@ OPTION(objecter_completion_locks_per_session, OPT_U64) // num of completion lock
 OPTION(objecter_inject_no_watch_ping, OPT_BOOL)   // suppress watch pings
 OPTION(objecter_retry_writes_after_first_reply, OPT_BOOL)   // ignore the first reply for each write, and resend the osd op instead
 OPTION(objecter_debug_inject_relock_delay, OPT_BOOL)
-OPTION(objecter_mclock_service_tracker, OPT_BOOL)
 
 // Max number of deletes at once in a single Filer::purge call
 OPTION(filer_max_purge_ops, OPT_U32)
diff --git a/src/common/mClockCommon.h b/src/common/mClockCommon.h
deleted file mode 100644 (file)
index 7904cd8..0000000
+++ /dev/null
@@ -1,50 +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) 2017 SK Telecom
- *
- * 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.
- *
- */
-
-#pragma once
-
-#include <cstdint>
-#include "include/encoding.h"
-#include "dmclock/src/dmclock_recs.h"
-
-// the following is done to unclobber _ASSERT_H so it returns to the
-// way ceph likes it
-#include "include/assert.h"
-
-
-namespace ceph {
-namespace dmc = ::crimson::dmclock;
-}
-
-namespace crimson {
-namespace dmclock {
-
-WRITE_RAW_ENCODER(ReqParams)
-
-inline void encode(const PhaseType &phase, bufferlist& bl,
-                   uint64_t features=0)
-{
-  using ceph::encode;
-  encode(static_cast<std::uint8_t>(phase), bl);
-}
-
-inline void decode(PhaseType &phase, bufferlist::iterator& p)
-{
-  using ceph::decode;
-  std::uint8_t int_phase;
-  decode((std::uint8_t&)int_phase, p);
-  phase = static_cast<dmc::PhaseType>(int_phase);
-}
-}
-}
index 124273b398b62e86f4182c2d11df395668977ed5..6a24dfcb9a2600c5664a46ce4f77e1019d95de79 100644 (file)
@@ -39,7 +39,6 @@ namespace ceph {
 
     using priority_t = unsigned;
     using cost_t = unsigned;
-    using Retn = std::pair<T, dmc::PhaseType>;
 
     typedef std::list<std::pair<cost_t, T> > ListPairs;
 
@@ -311,12 +310,6 @@ namespace ceph {
       queue.add_request(std::move(item), cl, cost);
     }
 
-    void enqueue_distributed(K cl, unsigned priority, unsigned cost, T&& item,
-                            const dmc::ReqParams& req_params) {
-      // priority is ignored
-      queue.add_request(std::move(item), cl, req_params, cost);
-    }
-
     void enqueue_front(K cl,
                       unsigned priority,
                       unsigned cost,
@@ -352,32 +345,6 @@ namespace ceph {
       return std::move(*(retn.request));
     }
 
-    Retn dequeue_distributed() {
-      assert(!empty());
-      dmc::PhaseType resp_params = dmc::PhaseType();
-
-      if (!high_queue.empty()) {
-       T ret = std::move(high_queue.rbegin()->second.front().second);
-       high_queue.rbegin()->second.pop_front();
-       if (high_queue.rbegin()->second.empty()) {
-         high_queue.erase(high_queue.rbegin()->first);
-       }
-       return std::make_pair(std::move(ret), resp_params);
-      }
-
-      if (!queue_front.empty()) {
-       T ret = std::move(queue_front.front().second);
-       queue_front.pop_front();
-       return std::make_pair(std::move(ret), resp_params);
-      }
-
-      auto pr = queue.pull_request();
-      assert(pr.is_retn());
-      auto& retn = pr.get_retn();
-      resp_params = retn.phase;
-      return std::make_pair(std::move(*(retn.request)), resp_params);
-    }
-
     void dump(ceph::Formatter *f) const override final {
       f->open_array_section("high_queues");
       for (typename SubQueues::const_iterator p = high_queue.begin();
index fb6914d0dda679f3ede491af561ccdb15c1d0ac4..c66b3427721f8e484c6c0eb64dcba8ddb832cb90 100644 (file)
@@ -1904,12 +1904,6 @@ std::vector<Option> get_global_options() {
     .set_default(false)
     .set_description(""),
 
-    Option("objecter_mclock_service_tracker", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-    .set_default(false)
-    .set_description("whether to enable mclock service tracker for tracking completed IOs in a distributed environment")
-    .set_long_description("When using the client-side dmclock qos service in a distributed environment, you must enable mclock service tracker for tracking completed IOs.")
-    .add_see_also("osd_op_queue"),
-
     Option("filer_max_purge_ops", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
     .set_default(10)
     .set_description("Max in-flight operations for purging a striped range (e.g., MDS journal)"),
index 3f6c86585ae9cc9e661e5c579c81901003b70b27..3da42d203e8ec0c5fe2e8eb94fb20a70ada8df4e 100644 (file)
@@ -91,7 +91,6 @@ DEFINE_CEPH_FEATURE(15, 1, MONENC)
 DEFINE_CEPH_FEATURE_RETIRED(16, 1, QUERY_T, JEWEL, LUMINOUS)
 DEFINE_CEPH_FEATURE(16, 3, SERVER_O)
 DEFINE_CEPH_FEATURE_RETIRED(17, 1, INDEP_PG_MAP, JEWEL, LUMINOUS)
-DEFINE_CEPH_FEATURE(17, 2, QOS_DMC)
 DEFINE_CEPH_FEATURE(17, 2, OS_PERF_STAT_NS)
 
 DEFINE_CEPH_FEATURE(18, 1, CRUSH_TUNABLES)
@@ -188,7 +187,6 @@ DEFINE_CEPH_FEATURE_DEPRECATED(63, 1, RESERVED_BROKEN, LUMINOUS) // client-facin
         CEPH_FEATURE_OSDREPLYMUX |      \
         CEPH_FEATURE_OSDENC |           \
         CEPH_FEATURE_MONENC |           \
-        CEPH_FEATURE_QOS_DMC |          \
         CEPH_FEATURE_CRUSH_TUNABLES |   \
         CEPH_FEATURE_MSG_AUTH |             \
         CEPH_FEATURE_CRUSH_TUNABLES2 |      \
index 6526ea2c4f094805ad79eb6e869b1bc806f8a48d..f84c4529726a4a116c88700ad6f0506190ceb2dd 100644 (file)
@@ -20,7 +20,6 @@
 #include "include/ceph_features.h"
 #include "common/hobject.h"
 #include <atomic>
-#include "common/mClockCommon.h"
 
 /*
  * OSD op
@@ -34,7 +33,7 @@ class OSD;
 
 class MOSDOp : public MOSDFastDispatchOp {
 
-  static const int HEAD_VERSION = 9;
+  static const int HEAD_VERSION = 8;
   static const int COMPAT_VERSION = 3;
 
 private:
@@ -62,7 +61,6 @@ private:
   uint64_t features;
   bool bdata_encode;
   osd_reqid_t reqid; // reqid explicitly set by sender
-  dmc::ReqParams qos_params;
 
 public:
   friend class MOSDOpReply;
@@ -81,7 +79,6 @@ public:
   void set_spg(spg_t p) {
     pgid = p;
   }
-  void set_qos_params(const dmc::ReqParams& p) { qos_params = p; }
 
   // Fields decoded in partial decoding
   pg_t get_pg() const {
@@ -116,10 +113,6 @@ public:
                         header.tid);
     }
   }
-  const dmc::ReqParams& get_qos_params() const {
-    assert(!partial_decode_needed);
-    return qos_params;
-  }
 
   // Fields decoded in final decoding
   int get_client_inc() const {
@@ -365,23 +358,15 @@ struct ceph_osd_request_head {
       encode(retry_attempt, payload);
       encode(features, payload);
     } else {
-      // v9 encoding for dmclock use, otherwise v8.
-      // v8 encoding with hobject_t hash separate from pgid, no
-      // reassert version.
-      if (HAVE_FEATURE(features, QOS_DMC)) {
-       header.version = HEAD_VERSION;
-      } else {
-       header.version = 8;
-      }
+      // latest v8 encoding with hobject_t hash separate from pgid, no
+      // reassert version
+      header.version = HEAD_VERSION;
 
       encode(pgid, payload);
       encode(hobj.get_hash(), payload);
       encode(osdmap_epoch, payload);
       encode(flags, payload);
       encode(reqid, payload);
-      if (header.version >= 9) {
-       encode(qos_params, payload);
-      }
       encode_trace(payload, features);
 
       // -- above decoded up front; below decoded post-dispatch thread --
@@ -410,7 +395,7 @@ struct ceph_osd_request_head {
     p = payload.begin();
 
     // Always keep here the newest version of decoding order/rule
-    if (header.version >= 8) {
+    if (header.version == HEAD_VERSION) {
       decode(pgid, p);      // actual pgid
       uint32_t hash;
       decode(hash, p); // raw hash value
@@ -418,8 +403,6 @@ struct ceph_osd_request_head {
       decode(osdmap_epoch, p);
       decode(flags, p);
       decode(reqid, p);
-      if (header.version >= 9)
-       decode(qos_params, p);
       decode_trace(p);
     } else if (header.version == 7) {
       decode(pgid.pgid, p);      // raw pgid
index 5f8a8b8dee2a135e39bef02c27c95350c3f1fce8..a042eeb6be3a1814ed4ed047ee21a7361405a77e 100644 (file)
@@ -21,7 +21,6 @@
 #include "MOSDOp.h"
 #include "os/ObjectStore.h"
 #include "common/errno.h"
-#include "common/mClockCommon.h"
 
 /*
  * OSD op reply
@@ -33,7 +32,7 @@
 
 class MOSDOpReply : public Message {
 
-  static const int HEAD_VERSION = 9;
+  static const int HEAD_VERSION = 8;
   static const int COMPAT_VERSION = 2;
 
   object_t oid;
@@ -49,7 +48,6 @@ class MOSDOpReply : public Message {
   int32_t retry_attempt = -1;
   bool do_redirect;
   request_redirect_t redirect;
-  dmc::PhaseType qos_resp;
 
 public:
   const object_t& get_oid() const { return oid; }
@@ -96,8 +94,6 @@ public:
   void set_redirect(const request_redirect_t& redir) { redirect = redir; }
   const request_redirect_t& get_redirect() const { return redirect; }
   bool is_redirect_reply() const { return do_redirect; }
-  void set_qos_resp(const dmc::PhaseType qresp) { qos_resp = qresp; }
-  dmc::PhaseType get_qos_resp() const { return qos_resp; }
 
   void add_flags(int f) { flags |= f; }
 
@@ -135,11 +131,11 @@ public:
     bdata_encode(false) {
     do_redirect = false;
   }
-  MOSDOpReply(const MOSDOp *req, int r, epoch_t e, int acktype, bool ignore_out_data,
-              dmc::PhaseType qresp = dmc::PhaseType::reservation)
+  MOSDOpReply(const MOSDOp *req, int r, epoch_t e, int acktype,
+             bool ignore_out_data)
     : Message(CEPH_MSG_OSD_OPREPLY, HEAD_VERSION, COMPAT_VERSION),
       oid(req->hobj.oid), pgid(req->pgid.pgid), ops(req->ops),
-      bdata_encode(false), qos_resp(qresp) {
+      bdata_encode(false) {
 
     set_tid(req->get_tid());
     result = r;
@@ -214,11 +210,6 @@ public:
         if (do_redirect) {
           encode(redirect, payload);
         }
-        if ((features & CEPH_FEATURE_QOS_DMC) == 0) {
-          header.version = 8;
-        } else {
-          encode(qos_resp, payload);
-        }
       }
       encode_trace(payload, features);
     }
@@ -253,7 +244,6 @@ public:
       decode(do_redirect, p);
       if (do_redirect)
        decode(redirect, p);
-      decode(qos_resp, p);
       decode_trace(p);
     } else if (header.version < 2) {
       ceph_osd_reply_head head;
@@ -315,9 +305,6 @@ public:
         }
       }
       if (header.version >= 8) {
-       if (header.version >= 9) {
-         decode(qos_resp, p);
-       }
         decode_trace(p);
       }
     }
index e3b79082133c69e1da57f55e9f88138b80da46ae..164972f7e6b43b94875a57a7a1bb680add05b143 100644 (file)
@@ -1514,8 +1514,7 @@ void OSDService::reply_op_error(OpRequestRef op, int err, eversion_t v,
   int flags;
   flags = m->get_flags() & (CEPH_OSD_FLAG_ACK|CEPH_OSD_FLAG_ONDISK);
 
-  MOSDOpReply *reply = new MOSDOpReply(m, err, osdmap->get_epoch(), flags,
-                                      true, op->qos_resp);
+  MOSDOpReply *reply = new MOSDOpReply(m, err, osdmap->get_epoch(), flags, true);
   reply->set_reply_versions(v, uv);
   m->get_connection()->send_message(reply);
 }
index a678560f141744fbeb6a0b59fe7dc944b57bfaf1..306c57cdcd5e57ec261e28d75eb905bd91867682 100644 (file)
@@ -20,8 +20,6 @@
 #include "include/utime.h"
 #include "osd/OpRequest.h"
 #include "osd/PG.h"
-#include "common/mClockCommon.h"
-#include "messages/MOSDOp.h"
 #include "PGPeeringEvent.h"
 
 class OSD;
@@ -88,7 +86,6 @@ public:
 private:
   OpQueueable::Ref qitem;
   int cost;
-  dmc::ReqParams qos_params;
   unsigned priority;
   utime_t start_time;
   uint64_t owner;  ///< global id (e.g., client.XXX)
@@ -108,15 +105,7 @@ public:
       start_time(start_time),
       owner(owner),
       map_epoch(e)
-  {
-    if (auto op = maybe_get_op()) {
-      auto req = (*op)->get_req();
-      if (req->get_type() == CEPH_MSG_OSD_OP) {
-       const MOSDOp *m = static_cast<const MOSDOp*>(req);
-       qos_params = m->get_qos_params();
-      }
-    }
-  }
+  {}
   OpQueueItem(OpQueueItem &&) = default;
   OpQueueItem(const OpQueueItem &) = delete;
   OpQueueItem &operator=(OpQueueItem &&) = default;
@@ -149,8 +138,6 @@ public:
   utime_t get_start_time() const { return start_time; }
   uint64_t get_owner() const { return owner; }
   epoch_t get_map_epoch() const { return map_epoch; }
-  dmc::ReqParams get_qos_params() const { return qos_params; }
-  void set_qos_params(dmc::ReqParams qparams) { qos_params =  qparams; }
 
   bool is_peering() const {
     return qitem->is_peering();
index 39d174e71060e838c2a3335496cdc852178d9ed7..51d54c6ad5f4d8a0cab73c086c6c43e9797071c0 100644 (file)
@@ -27,7 +27,8 @@ OpRequest::OpRequest(Message *req, OpTracker *tracker) :
   TrackedOp(tracker, req->get_recv_stamp()),
   rmw_flags(0), request(req),
   hit_flag_points(0), latest_flag_point(0),
-  hitset_inserted(false), qos_resp(dmc::PhaseType::reservation) {
+  hitset_inserted(false)
+{
   if (req->get_priority() < tracker->cct->_conf->osd_client_op_priority) {
     // don't warn as quickly for low priority ops
     warn_interval_multiplier = tracker->cct->_conf->osd_recovery_op_warn_multiple;
index 8a07f6388eb1a7791280bfb935c65e236dddd3b2..5281a3ba9816be1151e104f21ed404f2ddee08f0 100644 (file)
@@ -16,7 +16,6 @@
 
 #include "osd/osd_types.h"
 #include "common/TrackedOp.h"
-#include "common/mClockCommon.h"
 
 /**
  * The OpRequest takes in a Message* and takes over a single reference
@@ -111,7 +110,6 @@ public:
   epoch_t min_epoch = 0;      ///< min epoch needed to handle this msg
 
   bool hitset_inserted;
-  dmc::PhaseType qos_resp;
   const Message *get_req() const { return request; }
   Message *get_nonconst_req() { return request; }
 
index a82fb1075449e1d36d26caaf805c64ea1d6fcf56..c4d88d8e7308867d9dac9b8ce4d499fdac902975 100644 (file)
@@ -1567,7 +1567,7 @@ void PrimaryLogPG::do_pg_op(OpRequestRef op)
   // reply
   MOSDOpReply *reply = new MOSDOpReply(m, 0, get_osdmap()->get_epoch(),
                                       CEPH_OSD_FLAG_ACK | CEPH_OSD_FLAG_ONDISK,
-                                      false, op->qos_resp);
+                                      false);
   reply->claim_op_out_data(ops);
   reply->set_result(result);
   reply->set_reply_versions(info.last_update, info.last_user_version);
@@ -2685,7 +2685,7 @@ void PrimaryLogPG::record_write_error(OpRequestRef op, const hobject_t &soid,
       MOSDOpReply *reply = orig_reply.detach();
       if (reply == nullptr) {
        reply = new MOSDOpReply(m, r, pg->get_osdmap()->get_epoch(),
-                               flags, true, op->qos_resp);
+                               flags, true);
       }
       ldpp_dout(pg, 10) << " sending commit on " << *m << " " << reply << dendl;
       pg->osd->send_message_osd_client(reply, m->get_connection());
@@ -2971,7 +2971,7 @@ void PrimaryLogPG::do_cache_redirect(OpRequestRef op)
   const MOSDOp *m = static_cast<const MOSDOp*>(op->get_req());
   int flags = m->get_flags() & (CEPH_OSD_FLAG_ACK|CEPH_OSD_FLAG_ONDISK);
   MOSDOpReply *reply = new MOSDOpReply(m, -ENOENT, get_osdmap()->get_epoch(),
-                                       flags, false, op->qos_resp);
+                                       flags, false);
   request_redirect_t redir(m->get_object_locator(), pool.info.tier_of);
   reply->set_redirect(redir);
   dout(10) << "sending redirect to pool " << pool.info.tier_of << " for op "
@@ -3185,8 +3185,7 @@ void PrimaryLogPG::finish_proxy_read(hobject_t oid, ceph_tid_t tid, int r)
 
   const MOSDOp *m = static_cast<const MOSDOp*>(op->get_req());
   OpContext *ctx = new OpContext(op, m->get_reqid(), &prdop->ops, this);
-  ctx->reply = new MOSDOpReply(m, 0, get_osdmap()->get_epoch(), 0, false,
-                               op->qos_resp);
+  ctx->reply = new MOSDOpReply(m, 0, get_osdmap()->get_epoch(), 0, false);
   ctx->user_at_version = prdop->user_version;
   ctx->data_off = prdop->data_offset;
   ctx->ignore_log_op_stats = true;
@@ -3559,8 +3558,7 @@ void PrimaryLogPG::finish_proxy_write(hobject_t oid, ceph_tid_t tid, int r)
     if (reply)
       pwop->ctx->reply = NULL;
     else {
-      reply = new MOSDOpReply(m, r, get_osdmap()->get_epoch(), 0, true,
-                             pwop->op->qos_resp);
+      reply = new MOSDOpReply(m, r, get_osdmap()->get_epoch(), 0, true);
       reply->set_reply_versions(eversion_t(), pwop->user_version);
     }
     reply->add_flags(CEPH_OSD_FLAG_ACK | CEPH_OSD_FLAG_ONDISK);
@@ -3826,7 +3824,7 @@ void PrimaryLogPG::execute_ctx(OpContext *ctx)
   bool successful_write = !ctx->op_t->empty() && op->may_write() && result >= 0;
   // prepare the reply
   ctx->reply = new MOSDOpReply(m, 0, get_osdmap()->get_epoch(), 0,
-                              successful_write, op->qos_resp);
+                              successful_write);
 
   // Write operations aren't allowed to return a data payload because
   // we can't do so reliably. If the client has to resend the request
@@ -3914,8 +3912,7 @@ void PrimaryLogPG::execute_ctx(OpContext *ctx)
        if (reply)
          ctx->reply = nullptr;
        else {
-         reply = new MOSDOpReply(m, 0, get_osdmap()->get_epoch(), 0, true,
-                                 ctx->op->qos_resp);
+         reply = new MOSDOpReply(m, 0, get_osdmap()->get_epoch(), 0, true);
          reply->set_reply_versions(ctx->at_version,
                                    ctx->user_at_version);
        }
@@ -8543,8 +8540,7 @@ void PrimaryLogPG::fill_in_copy_get_noent(OpRequestRef& op, hobject_t oid,
   dout(20) << __func__ << " got reqids " << reply_obj.reqids << dendl;
   encode(reply_obj, osd_op.outdata, features);
   osd_op.rval = -ENOENT;
-  MOSDOpReply *reply = new MOSDOpReply(m, 0, get_osdmap()->get_epoch(), 0, false,
-                                       op->qos_resp);
+  MOSDOpReply *reply = new MOSDOpReply(m, 0, get_osdmap()->get_epoch(), 0, false);
   reply->claim_op_out_data(m->ops);
   reply->set_result(-ENOENT);
   reply->add_flags(CEPH_OSD_FLAG_ACK | CEPH_OSD_FLAG_ONDISK);
index a86b1f92b1331f537a61f5c1a1e00beeaa8b710f..72db27a07b0c8f3aa38957629f19f7ef533ef041 100644 (file)
@@ -78,9 +78,7 @@ namespace ceph {
                                         unsigned priority,
                                         unsigned cost,
                                         Request&& item) {
-    auto qos_params = item.get_qos_params();
-    queue.enqueue_distributed(get_inner_client(cl, item), priority, cost,
-                             std::move(item), qos_params);
+    queue.enqueue(get_inner_client(cl, item), priority, cost, std::move(item));
   }
 
   // Enqueue the op in the front of the regular queue
@@ -94,11 +92,6 @@ namespace ceph {
 
   // Return an op to be dispatched
   inline Request mClockClientQueue::dequeue() {
-    std::pair<Request, dmc::PhaseType> retn = queue.dequeue_distributed();
-
-    if (boost::optional<OpRequestRef> _op = retn.first.maybe_get_op()) {
-      (*_op)->qos_resp = retn.second;
-    }
-    return std::move(retn.first);
+    return queue.dequeue();
   }
 } // namespace ceph
index e804098f9118bd3310c34938a61eeac6a1176920..ef34e62975d7ae410a34d3b90ac8e72473d94607 100644 (file)
@@ -7,4 +7,3 @@ add_library(osdc STATIC ${osdc_files})
 if(WITH_LTTNG AND WITH_EVENTTRACE)
   add_dependencies(osdc eventtrace_tp)
 endif()
-target_link_libraries(osdc dmclock)
index 65e4a94d6a2a93e46d042d423730a4a6d75e9a37..cac603416541e558c41d20f33718b9415c0eb14b 100644 (file)
@@ -151,7 +151,6 @@ enum {
 
 static const char *config_keys[] = {
   "crush_location",
-  "objecter_mclock_service_tracker",
   NULL
 };
 
@@ -223,9 +222,6 @@ void Objecter::handle_conf_change(const struct md_config_t *conf,
   if (changed.count("crush_location")) {
     update_crush_location();
   }
-  if (changed.count("objecter_mclock_service_tracker")) {
-    update_mclock_service_tracker();
-  }
 }
 
 void Objecter::update_crush_location()
@@ -234,17 +230,6 @@ void Objecter::update_crush_location()
   crush_location = cct->crush_location.get_location();
 }
 
-void Objecter::update_mclock_service_tracker()
-{
-  unique_lock wl(rwlock);
-  if (cct->_conf->objecter_mclock_service_tracker && (!mclock_service_tracker)) {
-    qos_trk = std::make_unique<dmc::ServiceTracker<int>>();
-  } else if (!cct->_conf->objecter_mclock_service_tracker) {
-    qos_trk.reset();
-  }
-  mclock_service_tracker = cct->_conf->objecter_mclock_service_tracker;
-}
-
 // messages ------------------------------
 
 /*
@@ -3219,11 +3204,6 @@ MOSDOp *Objecter::_prepare_osd_op(Op *op)
     m->set_reqid(op->reqid);
   }
 
-  if (mclock_service_tracker) {
-    dmc::ReqParams rp = qos_trk->get_req_params(op->target.osd);
-    m->set_qos_params(rp);
-  }
-
   logger->inc(l_osdc_op_send);
   ssize_t sum = 0;
   for (unsigned i = 0; i < m->ops.size(); i++) {
@@ -3541,9 +3521,6 @@ void Objecter::handle_osd_op_reply(MOSDOpReply *m)
   /* get it before we call _finish_op() */
   auto completion_lock = s->get_lock(op->target.base_oid);
 
-  if (mclock_service_tracker) {
-    qos_trk->track_resp(op->target.osd, m->get_qos_resp());
-  }
   ldout(cct, 15) << "handle_osd_op_reply completed tid " << tid << dendl;
   _finish_op(op, 0);
 
index d2507dcb6b5ec76ad99de7e85912c3e5bf39e59b..3adaca33adc98f8c42809cb69e4ee45372d754d4 100644 (file)
@@ -25,8 +25,6 @@
 
 #include <boost/thread/shared_mutex.hpp>
 
-#include "dmclock/src/dmclock_client.h"
-
 #include "include/assert.h"
 #include "include/buffer.h"
 #include "include/types.h"
@@ -1208,8 +1206,6 @@ public:
   MonClient *monc;
   Finisher *finisher;
   ZTracer::Endpoint trace_endpoint;
-  std::unique_ptr<dmc::ServiceTracker<int>> qos_trk;
-  std::atomic<bool> mclock_service_tracker;
 private:
   OSDMap    *osdmap;
 public:
@@ -1259,7 +1255,6 @@ private:
   void start_tick();
   void tick();
   void update_crush_location();
-  void update_mclock_service_tracker();
 
   class RequestStateHook;
 
@@ -2029,7 +2024,6 @@ private:
           double osd_timeout) :
     Dispatcher(cct_), messenger(m), monc(mc), finisher(fin),
     trace_endpoint("0.0.0.0", 0, "Objecter"),
-    mclock_service_tracker(cct->_conf->objecter_mclock_service_tracker),
     osdmap(new OSDMap),
     max_linger_id(0),
     keep_balanced_budget(false), honor_osdmap_full(true), osdmap_full_try(false),
@@ -2044,11 +2038,7 @@ private:
     op_throttle_ops(cct, "objecter_ops", cct->_conf->objecter_inflight_ops),
     epoch_barrier(0),
     retry_writes_after_first_reply(cct->_conf->objecter_retry_writes_after_first_reply)
-  {
-    if (cct->_conf->objecter_mclock_service_tracker) {
-      qos_trk = std::make_unique<dmc::ServiceTracker<int>>();
-    }
-  }
+  { }
   ~Objecter() override;
 
   void init();
index 3799a7e26b6baae76cae06c9ed63e830caebe794..82490e594d2f10cb26ee670c3458b5ccb13a2c73 100644 (file)
@@ -131,40 +131,6 @@ TEST_F(MClockClientQueueTest, TestEnqueue) {
 }
 
 
-TEST_F(MClockClientQueueTest, TestDistributedEnqueue) {
-  Request r1 = create_snaptrim(100, client1);
-  Request r2 = create_snaptrim(101, client2);
-  Request r3 = create_snaptrim(102, client3);
-  Request r4 = create_snaptrim(103, client1);
-  Request r5 = create_snaptrim(104, client2);
-  Request r6 = create_snaptrim(105, client3);
-
-  r4.set_qos_params(dmc::ReqParams(50,1));
-  r5.set_qos_params(dmc::ReqParams(30,1));
-  r6.set_qos_params(dmc::ReqParams(10,1));
-
-  q.enqueue(client1, 12, 0, std::move(r1));
-  q.enqueue(client2, 12, 0, std::move(r2));
-  q.enqueue(client3, 12, 0, std::move(r3));
-  q.enqueue(client1, 12, 0, std::move(r4));
-  q.enqueue(client2, 12, 0, std::move(r5));
-  q.enqueue(client3, 12, 0, std::move(r6));
-
-  Request r = q.dequeue();
-  r = q.dequeue();
-  r = q.dequeue();
-
-  r = q.dequeue();
-  ASSERT_EQ(105u, r.get_map_epoch());
-
-  r = q.dequeue();
-  ASSERT_EQ(104u, r.get_map_epoch());
-
-  r = q.dequeue();
-  ASSERT_EQ(103u, r.get_map_epoch());
-}
-
-
 TEST_F(MClockClientQueueTest, TestEnqueueStrict) {
   q.enqueue_strict(client1, 12, create_snaptrim(100, client1));
   q.enqueue_strict(client2, 13, create_snaptrim(101, client2));