]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osdc: remove Journaler "journaler_batch_*" settings
authorJohn Spray <john.spray@redhat.com>
Sun, 12 Feb 2017 23:24:41 +0000 (23:24 +0000)
committerJohn Spray <john.spray@redhat.com>
Wed, 8 Mar 2017 10:27:00 +0000 (10:27 +0000)
This was an unused code path.  If anyone set a nonzero
value here the MDS would crash because the Timer implementation
has changed since this code was written, and now requires
add_event_after callers to hold the right lock.

Signed-off-by: John Spray <john.spray@redhat.com>
src/common/config_opts.h
src/mds/MDLog.cc
src/osdc/Journaler.cc
src/osdc/Journaler.h
src/tools/cephfs/Dumper.cc
src/tools/cephfs/MDSUtility.cc
src/tools/cephfs/MDSUtility.h
src/tools/cephfs/Resetter.cc

index 36a2624bb89af530e89ff0d7f9f10ae6eadaca9d..8e7e02d15c31e9c64bff8f640b85de06faadb1c0 100644 (file)
@@ -486,8 +486,6 @@ OPTION(journaler_allow_split_entries, OPT_BOOL, true)
 OPTION(journaler_write_head_interval, OPT_INT, 15)
 OPTION(journaler_prefetch_periods, OPT_INT, 10)   // * journal object size
 OPTION(journaler_prezero_periods, OPT_INT, 5)     // * journal object size
-OPTION(journaler_batch_interval, OPT_DOUBLE, .001)   // seconds.. max add latency we artificially incur
-OPTION(journaler_batch_max, OPT_U64, 0)  // max bytes we'll delay flushing; disable, for now....
 OPTION(mds_data, OPT_STR, "/var/lib/ceph/mds/$cluster-$id")
 OPTION(mds_max_file_size, OPT_U64, 1ULL << 40) // Used when creating new CephFS. Change with 'ceph mds set max_file_size <size>' afterwards
 OPTION(mds_cache_size, OPT_INT, 100000)
index dd01419531284291c7dd74637ac347dce67d3178..9069718e31039b8c595f45ca5698f5ad1f3c8d3f 100644 (file)
@@ -159,7 +159,7 @@ void MDLog::create(MDSInternalContextBase *c)
   assert(journaler == NULL);
   journaler = new Journaler("mdlog", ino, mds->mdsmap->get_metadata_pool(),
                             CEPH_FS_ONDISK_MAGIC, mds->objecter, logger,
-                            l_mdl_jlat, &mds->timer, mds->finisher);
+                            l_mdl_jlat, mds->finisher);
   assert(journaler->is_readonly());
   journaler->set_write_error_handler(new C_MDL_WriteError(this));
   journaler->set_writeable();
@@ -954,7 +954,7 @@ void MDLog::_recovery_thread(MDSInternalContextBase *completion)
     dout(1) << "Erasing journal " << jp.back << dendl;
     C_SaferCond erase_waiter;
     Journaler back("mdlog", jp.back, mds->mdsmap->get_metadata_pool(),
-        CEPH_FS_ONDISK_MAGIC, mds->objecter, logger, l_mdl_jlat, &mds->timer,
+        CEPH_FS_ONDISK_MAGIC, mds->objecter, logger, l_mdl_jlat,
         mds->finisher);
 
     // Read all about this journal (header + extents)
@@ -994,7 +994,7 @@ void MDLog::_recovery_thread(MDSInternalContextBase *completion)
   /* Read the header from the front journal */
   Journaler *front_journal = new Journaler("mdlog", jp.front,
       mds->mdsmap->get_metadata_pool(), CEPH_FS_ONDISK_MAGIC, mds->objecter,
-      logger, l_mdl_jlat, &mds->timer, mds->finisher);
+      logger, l_mdl_jlat, mds->finisher);
 
   // Assign to ::journaler so that we can be aborted by ::shutdown while
   // waiting for journaler recovery
@@ -1080,7 +1080,7 @@ void MDLog::_reformat_journal(JournalPointer const &jp_in, Journaler *old_journa
 
   /* Create the new Journaler file */
   Journaler *new_journal = new Journaler("mdlog", jp.back,
-      mds->mdsmap->get_metadata_pool(), CEPH_FS_ONDISK_MAGIC, mds->objecter, logger, l_mdl_jlat, &mds->timer, mds->finisher);
+      mds->mdsmap->get_metadata_pool(), CEPH_FS_ONDISK_MAGIC, mds->objecter, logger, l_mdl_jlat, mds->finisher);
   dout(4) << "Writing new journal header " << jp.back << dendl;
   file_layout_t new_layout = old_journal->get_layout();
   new_journal->set_writeable();
index df92fd807d4c1318fe936e8bc6ee76c1f9b16fdc..45cfecb86256cc46f631d65aced4a93aa70b3b8d 100644 (file)
@@ -717,20 +717,7 @@ void Journaler::_flush(C_OnFinisher *onsafe)
       onsafe->complete(0);
     }
   } else {
-    // maybe buffer
-    if (write_buf.length() < cct->_conf->journaler_batch_max) {
-      // delay!  schedule an event.
-      ldout(cct, 20) << "flush delaying flush" << dendl;
-      if (delay_flush_event) {
-       timer->cancel_event(delay_flush_event);
-      }
-      delay_flush_event = new C_DelayFlush(this);
-      timer->add_event_after(cct->_conf->journaler_batch_interval,
-                            delay_flush_event);
-    } else {
-      ldout(cct, 20) << "flush not delaying flush" << dendl;
-      _do_flush();
-    }
+    _do_flush();
     _wait_for_flush(onsafe);
   }
 
index 5532d5c07c6fc9c732bd2de4d7f4c2008a06a49a..6a731993bc0e0805ed765bc8da14b989fcc7e7b0 100644 (file)
@@ -226,8 +226,6 @@ private:
   PerfCounters *logger;
   int logger_key_lat;
 
-  SafeTimer *timer;
-
   class C_DelayFlush;
   C_DelayFlush *delay_flush_event;
   /*
@@ -381,15 +379,14 @@ private:
 
 public:
   Journaler(const std::string &name_, inodeno_t ino_, int64_t pool,
-      const char *mag, Objecter *obj, PerfCounters *l, int lkey,
-      SafeTimer *tim, Finisher *f) :
+      const char *mag, Objecter *obj, PerfCounters *l, int lkey, Finisher *f) :
     last_committed(mag),
     cct(obj->cct), name(name_), finisher(f), last_written(mag),
     ino(ino_), pg_pool(pool), readonly(true),
     stream_format(-1), journal_stream(-1),
     magic(mag),
     objecter(obj), filer(objecter, f), logger(l), logger_key_lat(lkey),
-    timer(tim), delay_flush_event(0),
+    delay_flush_event(0),
     state(STATE_UNDEF), error(0),
     prezeroing_pos(0), prezero_pos(0), write_pos(0), flush_pos(0), safe_pos(0),
     waiting_for_zero(false),
index 94d470ef64bad62ddc4312f5269a32c65aa94e97..73054c335ff4520f5d72d93748709334829b1c01 100644 (file)
@@ -84,7 +84,7 @@ int Dumper::dump(const char *dump_file)
 
   Journaler journaler("dumper", ino, fs->mds_map.get_metadata_pool(),
                       CEPH_FS_ONDISK_MAGIC, objecter, 0, 0,
-                      &timer, &finisher);
+                      &finisher);
   r = recover_journal(&journaler);
   if (r) {
     return r;
index 1af0b788bfc86acfdc1ecd47b35e3cd7da8e7728..9a345f49d1aa501a6a54219421f52a5157f0a2f2 100644 (file)
@@ -22,7 +22,6 @@ MDSUtility::MDSUtility() :
   Dispatcher(g_ceph_context),
   objecter(NULL),
   lock("MDSUtility::lock"),
-  timer(g_ceph_context, lock),
   finisher(g_ceph_context, "MDSUtility", "fn_mds_utility"),
   waiting_for_mds_map(NULL)
 {
@@ -86,7 +85,6 @@ int MDSUtility::init()
   // Start Objecter and wait for OSD map
   objecter->start();
   objecter->wait_for_osd_map();
-  timer.init();
 
   // Prepare to receive MDS map and request it
   Mutex init_lock("MDSUtility:init");
@@ -118,7 +116,6 @@ void MDSUtility::shutdown()
   finisher.stop();
 
   lock.Lock();
-  timer.shutdown();
   objecter->shutdown();
   lock.Unlock();
   monc->shutdown();
index 7547c0e78c6b09e6b9f6b77521d0267c99aa0758..5df881a7c6cd5534953561a73e118ec308d35bf7 100644 (file)
@@ -37,7 +37,6 @@ protected:
   MonClient *monc;
 
   Mutex lock;
-  SafeTimer timer;
   Finisher finisher;
 
   Context *waiting_for_mds_map;
index 909a2313115893ede1254e6d5420350d90b4f085..58465c2ffc79ed3458afe2d90a5cf1f58ddee8cf 100644 (file)
@@ -48,7 +48,7 @@ int Resetter::reset(mds_role_t role)
   Journaler journaler("resetter", jp.front,
       pool_id,
       CEPH_FS_ONDISK_MAGIC,
-      objecter, 0, 0, &timer, &finisher);
+      objecter, 0, 0, &finisher);
 
   lock.Lock();
   journaler.recover(new C_SafeCond(&mylock, &cond, &done, &r));
@@ -130,7 +130,7 @@ int Resetter::reset_hard(mds_role_t role)
   Journaler journaler("resetter", jp.front,
     pool_id,
     CEPH_FS_ONDISK_MAGIC,
-    objecter, 0, 0, &timer, &finisher);
+    objecter, 0, 0, &finisher);
   journaler.set_writeable();
 
   file_layout_t default_log_layout = MDCache::gen_default_log_layout(