mirror of
https://github.com/ceph/ceph
synced 2025-03-11 02:39:05 +00:00
osdc: remove Journaler "journaler_batch_*" settings
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>
This commit is contained in:
parent
6d59f15e12
commit
199e5b465a
@ -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)
|
||||
|
@ -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();
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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),
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
@ -37,7 +37,6 @@ protected:
|
||||
MonClient *monc;
|
||||
|
||||
Mutex lock;
|
||||
SafeTimer timer;
|
||||
Finisher finisher;
|
||||
|
||||
Context *waiting_for_mds_map;
|
||||
|
@ -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(
|
||||
|
Loading…
Reference in New Issue
Block a user