From c4c9fb69f169054ec15003b6114f261d2f51a150 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Sun, 7 Jun 2009 15:18:23 -0700 Subject: [PATCH] mds: allow online changes in mds_log_max_segments, events --- src/mds/MDCache.cc | 3 +-- src/mds/MDLog.cc | 7 ++++++- src/mds/MDLog.h | 8 +------- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index a5c07a1b7f115..a4518e4a249c1 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -5233,8 +5233,7 @@ bool MDCache::shutdown_pass() } // flush what we can from the log - mds->mdlog->set_max_events(0); - mds->mdlog->trim(); + mds->mdlog->trim(0); if (mds->mdlog->get_num_segments() > 1) { dout(7) << "still >1 segments, waiting for log to trim" << dendl; diff --git a/src/mds/MDLog.cc b/src/mds/MDLog.cc index e257494c44ab8..fd777c77df776 100644 --- a/src/mds/MDLog.cc +++ b/src/mds/MDLog.cc @@ -299,8 +299,13 @@ void MDLog::_logged_subtree_map(loff_t off) -void MDLog::trim() +void MDLog::trim(int m) { + int max_segments = g_conf.mds_log_max_segments; + int max_events = g_conf.mds_log_max_events; + if (m >= 0) + max_events = m; + // trim! dout(10) << "trim " << segments.size() << " / " << max_segments << " segments, " diff --git a/src/mds/MDLog.h b/src/mds/MDLog.h index 3443d2f378d6e..569d975ece3c8 100644 --- a/src/mds/MDLog.h +++ b/src/mds/MDLog.h @@ -66,8 +66,6 @@ class MDLog { protected: MDS *mds; int num_events; // in events - int max_events; - int max_segments; int unflushed; @@ -148,8 +146,6 @@ public: public: MDLog(MDS *m) : mds(m), num_events(0), - max_events(g_conf.mds_log_max_events), - max_segments(g_conf.mds_log_max_segments), unflushed(0), capped(false), journaler(0), @@ -176,9 +172,7 @@ public: void flush_logger(); size_t get_num_events() { return num_events; } - void set_max_events(int m) { max_events = m; } size_t get_num_segments() { return segments.size(); } - void set_max_segments(int m) { max_segments = m; } loff_t get_read_pos(); loff_t get_write_pos(); @@ -212,7 +206,7 @@ private: void _expired(LogSegment *ls); public: - void trim(); + void trim(int max=-1); private: void write_head(Context *onfinish); -- 2.39.5