From: sage Date: Tue, 14 Jun 2005 16:05:36 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: v0.1~2070 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=85e25b900042a3bafa04ea6cc863348686e64969;p=ceph.git *** empty log message *** git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@311 29311d96-e01e-0410-9327-a35deaab8ce9 --- diff --git a/ceph/config.cc b/ceph/config.cc index 1ab8d99ea13..12866bdc0d0 100644 --- a/ceph/config.cc +++ b/ceph/config.cc @@ -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, diff --git a/ceph/mds/LogStream.cc b/ceph/mds/LogStream.cc index 55e1b698918..b72bacabd9f 100644 --- a/ceph/mds/LogStream.cc +++ b/ceph/mds/LogStream.cc @@ -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. } diff --git a/ceph/mds/LogStream.h b/ceph/mds/LogStream.h index 2aecc9dbe2a..6c9846d3624 100644 --- a/ceph/mds/LogStream.h +++ b/ceph/mds/LogStream.h @@ -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); diff --git a/ceph/mds/MDLog.cc b/ceph/mds/MDLog.cc index 1fbcedd9618..bd056ce97ed 100644 --- a/ceph/mds/MDLog.cc +++ b/ceph/mds/MDLog.cc @@ -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 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); } diff --git a/ceph/mds/MDS.cc b/ceph/mds/MDS.cc index b20b2db1336..7d663ebe325 100644 --- a/ceph/mds/MDS.cc +++ b/ceph/mds/MDS.cc @@ -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);