]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
logging changes; hooks for bencharmking journaling;
authorsageweil <sageweil@29311d96-e01e-0410-9327-a35deaab8ce9>
Fri, 24 Aug 2007 16:39:16 +0000 (16:39 +0000)
committersageweil <sageweil@29311d96-e01e-0410-9327-a35deaab8ce9>
Fri, 24 Aug 2007 16:39:16 +0000 (16:39 +0000)
git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@1674 29311d96-e01e-0410-9327-a35deaab8ce9

trunk/ceph/mds/Locker.cc
trunk/ceph/mds/MDLog.cc
trunk/ceph/mds/MDS.cc
trunk/ceph/mds/MDS.h
trunk/ceph/mds/Server.cc
trunk/ceph/mds/events/EMetaBlob.h
trunk/ceph/mds/journal.cc

index 96847bbaa26e8e1c6f1e5096d075b9da2cf1bde8..ca330a7a5f825ed56c114b000cb1614d5e687553 100644 (file)
@@ -2637,8 +2637,6 @@ void Locker::file_loner(FileLock *lock)
 
 void Locker::handle_file_lock(FileLock *lock, MLock *m)
 {
-  if (mds->logger) mds->logger->inc("lif");
-
   CInode *in = (CInode*)lock->get_parent();
   int from = m->get_asker();
 
index bb3144edef93c5d0466f34e1d0ef83888ca814c2..2d54f34f9575ff3f3c89222e337100cee35f9da0 100644 (file)
@@ -50,14 +50,15 @@ void MDLog::init_journaler()
   if (!didit) {
     didit = true;
     mdlog_logtype.add_inc("add");
-    mdlog_logtype.add_inc("expire");    
     mdlog_logtype.add_inc("obs");    
-    mdlog_logtype.add_inc("trim");    
+    mdlog_logtype.add_inc("trims");
+    mdlog_logtype.add_inc("trimf");
+    mdlog_logtype.add_inc("trimng");    
     mdlog_logtype.add_set("size");
-    mdlog_logtype.add_set("read");
-    mdlog_logtype.add_set("append");
-    mdlog_logtype.add_inc("lsum");
-    mdlog_logtype.add_inc("lnum");
+    mdlog_logtype.add_set("rdpos");
+    mdlog_logtype.add_set("wrpos");
+    mdlog_logtype.add_inc("jlsum");
+    mdlog_logtype.add_inc("jlnum");
   }
 
   // inode
@@ -135,7 +136,7 @@ void MDLog::submit_entry( LogEvent *le, Context *c )
 
     logger->inc("add");
     logger->set("size", num_events);
-    logger->set("append", journaler->get_write_pos());
+    logger->set("wrpos", journaler->get_write_pos());
 
     if (c) {
       unflushed = 0;
@@ -246,8 +247,9 @@ void MDLog::_trimmed(LogEvent *le)
   trimming.erase(le->_end_off);
   delete le;
  
-  logger->set("trim", trimming.size());
-  logger->set("read", journaler->get_read_pos());
+  logger->inc("trimf");
+  logger->set("trimng", trimming.size());
+  logger->set("rdpos", journaler->get_read_pos());
  
   trim(0);
 }
@@ -306,10 +308,10 @@ void MDLog::trim(Context *c)
        dout(7) << "trim  expiring : " << le->get_start_off() << " : " << *le << endl;
         trimming[le->_end_off] = le;
         le->expire(mds, new C_MDL_Trimmed(this, le));
-        logger->inc("expire");
-        logger->set("trim", trimming.size());
+        logger->inc("trims");
+        logger->set("trimng", trimming.size());
       }
-      logger->set("read", journaler->get_read_pos());
+      logger->set("rdpos", journaler->get_read_pos());
       logger->set("size", num_events);
     } else {
       // need to read!
@@ -324,7 +326,7 @@ void MDLog::trim(Context *c)
     }
   }
 
-  dout(5) << "trim num_events " << num_events << " <= max " << max_events
+  dout(10) << "trim num_events " << num_events << " <= max " << max_events
          << ", trimming " << trimming.size()
          << ", done for now."
          << endl;
index d1e7f32f05dcdc65dc0a6d16581ef2e00c430ed8..0d85117e07d435d2353ad8800ce3fbb5b814ef91 100644 (file)
@@ -151,13 +151,9 @@ void MDS::reopen_logger()
     mds_logtype.add_inc("fw");
     mds_logtype.add_inc("cfw");
     
-    mds_logtype.add_set("l");
-    mds_logtype.add_set("q");
-    mds_logtype.add_set("popanyd");
-    mds_logtype.add_set("popnest");
-    
-    mds_logtype.add_inc("lih");
-    mds_logtype.add_inc("lif");
+    mds_logtype.add_inc("dir_f");
+    mds_logtype.add_inc("dir_c");
+    mds_logtype.add_inc("mkdir");
     
     mds_logtype.add_set("c");
     mds_logtype.add_set("ctop");
@@ -168,9 +164,12 @@ void MDS::reopen_logger()
     mds_logtype.add_inc("dis");
     mds_logtype.add_inc("cmiss");
     
+    mds_logtype.add_set("l");
+    mds_logtype.add_set("q");
+    mds_logtype.add_set("popanyd");
+    mds_logtype.add_set("popnest");
+    
     mds_logtype.add_set("buf");
-    mds_logtype.add_inc("cdir");
-    mds_logtype.add_inc("fdir");
     
     mds_logtype.add_inc("iex");
     mds_logtype.add_inc("iim");
index 9122e10e90f310332a3d9a7150a5bc34aa3e5cf2..8e61291d9cc27b213cac087da4a2dd4c5de37f3f 100644 (file)
@@ -173,8 +173,11 @@ class MDS : public Dispatcher {
   public:
     C_MDS_BeaconKiller(MDS *m, utime_t l) : mds(m), lab(l) {}
     void finish(int r) {
-      mds->beacon_killer = 0;
-      mds->beacon_kill(lab);
+      if (mds->beacon_killer) {
+       mds->beacon_killer = 0;
+       mds->beacon_kill(lab);
+      } 
+      // else mds is pbly already shutting down
     }
   } *beacon_killer;
 
index 36e117850dbef27aa0e2926db378d840406515ff..b43598db78ac3dc79ee17f4d2ea4f18ca5470ed0 100644 (file)
@@ -1682,6 +1682,8 @@ void Server::handle_client_mkdir(MDRequest *mdr)
   newdir->mark_complete();
   newdir->mark_dirty(newdir->pre_dirty());
 
+  if (mds->logger) mds->logger->inc("mkdir");
+
   // prepare finisher
   EUpdate *le = new EUpdate(mdlog, "mkdir");
   le->metablob.add_client_req(req->get_reqid());
@@ -2921,7 +2923,7 @@ void Server::_rename_prepare(MDRequest *mdr,
       mdr->pvmap[srcdn->dir->inode] = predirty_dn_diri(mdr, srcdn, metablob); 
   }
 
-  inode_t *ji; // journaled inode getting nlink--
+  inode_t *ji = 0;     // journaled inode getting nlink--
   version_t ipv = 0;   // it's version
   
   if (linkmerge) {
index 48b03fa7a4949bc6c10a923def8355e21e36da4b..9a904be05fe73ff49fef9c9a81e085da8687a41f 100644 (file)
@@ -397,11 +397,14 @@ private:
       return;
 
     if (mode == TO_AUTH_SUBTREE_ROOT) {
+      //return;  // hack: for comparison purposes.. what if NO context?
+
       // subtree root?
       if (dir->is_subtree_root() && dir->is_auth())
        return;
       // was the inode journaled since the last subtree_map?
-      if (last_subtree_map &&
+      if (//false &&  // for benchmarking
+         last_subtree_map &&
          dir->inode->last_journaled >= last_subtree_map) 
        return;
     }
index 4d57008b584d934ec41578eb768d3d0bf1b3d92d..066ca724c8129d6c1dff52651678b069ede0f948 100644 (file)
@@ -106,7 +106,10 @@ bool EMetaBlob::has_expired(MDS *mds)
               << " for " << *dir << endl;
       continue;       // not our problem
     }
+    // FIXME HACK: this makes logger stats more accurage, for journal stats, 
+    //             but is not perfectly safe.  for benchmarking ONLY!
     if (dir->get_committed_version() >= lp->second.dirv ||
+       //if (dir->get_committing_version() >= lp->second.dirv ||  
        dir->get_committed_version_equivalent() >= lp->second.dirv) {
       dout(10) << "EMetaBlob.has_expired have dirv " << lp->second.dirv
               << " for " << *dir << endl;
@@ -337,6 +340,8 @@ void EMetaBlob::expire(MDS *mds, Context *c)
     }
   }
 
+  dout(10) << "my gather finsher is " << gather << " with " << gather->get_num() << endl;
+
 }
 
 void EMetaBlob::replay(MDS *mds)