]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
*** empty log message ***
authorsage <sage@29311d96-e01e-0410-9327-a35deaab8ce9>
Tue, 14 Jun 2005 16:05:36 +0000 (16:05 +0000)
committersage <sage@29311d96-e01e-0410-9327-a35deaab8ce9>
Tue, 14 Jun 2005 16:05:36 +0000 (16:05 +0000)
git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@311 29311d96-e01e-0410-9327-a35deaab8ce9

ceph/config.cc
ceph/mds/LogStream.cc
ceph/mds/LogStream.h
ceph/mds/MDLog.cc
ceph/mds/MDS.cc

index 1ab8d99ea138d7cfd6091816f9c81979153e70e3..12866bdc0d0de0a84caba72b781e5e5c419b0751 100644 (file)
@@ -24,7 +24,7 @@ md_config_t g_conf = {
   fake_clock: false,
   fakemessenger_serialize: true,
 
-  debug: 15,
+  debug: 5,
   debug_mds_balancer: 1,
   debug_mds_log: 1,
   
@@ -47,7 +47,7 @@ md_config_t g_conf = {
 
   mds_bal_replicate_threshold: 500,
   mds_bal_unreplicate_threshold: 200,
-  mds_bal_interval: 500,
+  mds_bal_interval: 10000,
 
   mds_commit_on_shutdown: true,
 
index 55e1b6989189baf9bbda7de34686a0abd35376be..b72bacabd9f53aae320be5fa411ca60703de6e2a 100644 (file)
@@ -203,6 +203,7 @@ void LogStream::wait_for_next_event(Context *c)
   size_t size = g_conf.mds_log_read_inc;
   if (tail + size > sync_pos) {
        size = sync_pos - tail;
+       dout(15) << "wait_for_next_event ugh.. read_pos is " << read_pos << ", tail is " << tail << ", sync_pos only " << sync_pos << ", flush_pos " << flush_pos << ", append_pos " << append_pos << endl;
        assert(size > 0);   // bleh, wait for sync, etc.
   }
 
index 2aecc9dbe2a54eb000f1162aced424deaca40d91..6c9846d362429a1e0ca472d8559febad4870e43d 100644 (file)
@@ -54,6 +54,9 @@ class LogStream {
        reading = false;
   }
 
+  off_t get_read_pos() { return read_pos; }
+  off_t get_append_pos() { return append_pos; }
+
   // write (append to end)
   off_t append(LogEvent *e);          // returns offset it will be written to
   void  _append_2(off_t off);     
index 1fbcedd96188b618a770a4fa74110ff8056badf3..bd056ce97eda86ea2c28ecf4dfc9c0cc0fe9f304 100644 (file)
@@ -125,18 +125,20 @@ void MDLog::trim(Context *c)
   if (c) trim_waiters.push_back(c);
 
   // trim!
-  while (num_events - trimming.size() > max_events) {
-       dout(5) << "trim: num_events " << num_events << " - trimming " << trimming.size() << " > max " << max_events << endl;
+  while (num_events > max_events) {
+       off_t gap = logstream->get_append_pos() - logstream->get_read_pos();
+       dout(5) << "trim: num_events " << num_events << " - trimming " << trimming.size() << " > max " << max_events << " .. gap " << gap << endl;
        
        LogEvent *le = logstream->get_next_event();
 
        if (le) {
+         num_events--;
+
          // we just read an event.
          if (le->obsolete(mds) == true) {
                // obsolete
                dout(7) << "  obsolete " << le << endl;
                delete le;
-               num_events--;
                logger->inc("obs");
          } else {
                if (trimming.size() < g_conf.mds_log_max_trimming) {
@@ -163,7 +165,7 @@ void MDLog::trim(Context *c)
        }
   }
   
-  // done!
+  // trimmed!
   list<Context*> finished;
   finished.splice(finished.begin(), trim_waiters);
   
@@ -175,7 +177,6 @@ void MDLog::_trimmed(LogEvent *le)
   dout(7) << "  trimmed " << le << endl;
   trimming.erase(le);
   delete le;
-  num_events--;
   
   trim(0);
 }
index b20b2db1336e49febfc0707d4c07a0ba46da3a2f..7d663ebe32571327110221ea3bba6891243ae3a3 100644 (file)
@@ -125,6 +125,25 @@ MDS::MDS(MDCluster *mdc, int whoami, Messenger *m) {
 
   logger = new Logger(name, (LogType*)&mds_logtype);
 
+  mds_logtype.add_inc("req");
+  mds_logtype.add_inc("reply");
+  mds_logtype.add_inc("fw");
+  mds_logtype.add_inc("cfw");
+
+  mds_logtype.add_set("c");
+  mds_logtype.add_set("cmax");
+  mds_logtype.add_inc("dis");
+  mds_logtype.add_inc("cmiss");
+
+  mds_logtype.add_inc("iex");
+  mds_logtype.add_inc("iim");
+  mds_logtype.add_inc("ex");
+  mds_logtype.add_inc("im");
+  mds_logtype.add_inc("imex");  
+  mds_logtype.add_set("nex");
+  mds_logtype.add_set("nim");
+
+
   // alloc
   idalloc = new IdAllocator(this);