From ba5c935e78f70674e7661576b1c18e211a2f32a2 Mon Sep 17 00:00:00 2001 From: Sam Lang Date: Wed, 6 Mar 2013 11:40:49 -0600 Subject: [PATCH] mds: Add config option for log segment size The mds log segment size is chosen from the default layout object size (4MB). Add a parameter to the config to enable setting the log segment size to an alternate value. If the config option to set the journal log segment size is specified, the log layout must be modified both for the object size and the striping unit size. Signed-off-by: Sam Lang Reviewed-by: Greg Farnum --- src/common/config_opts.h | 4 +++- src/mds/MDCache.cc | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/common/config_opts.h b/src/common/config_opts.h index 8e87f6f07ae27..e99688342b7af 100644 --- a/src/common/config_opts.h +++ b/src/common/config_opts.h @@ -261,7 +261,9 @@ OPTION(mds_default_dir_hash, OPT_INT, CEPH_STR_HASH_RJENKINS) OPTION(mds_log, OPT_BOOL, true) OPTION(mds_log_skip_corrupt_events, OPT_BOOL, false) OPTION(mds_log_max_events, OPT_INT, -1) -OPTION(mds_log_max_segments, OPT_INT, 30) // segment size defined by FileLayout, above +OPTION(mds_log_segment_size, OPT_INT, 0) // segment size for mds log, + // defaults to g_default_file_layout.fl_object_size (4MB) +OPTION(mds_log_max_segments, OPT_INT, 30) OPTION(mds_log_max_expiring, OPT_INT, 20) OPTION(mds_bal_sample_interval, OPT_FLOAT, 3.0) // every 5 seconds OPTION(mds_bal_replicate_threshold, OPT_FLOAT, 8000) diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index de256975651d7..e085ab6c998a1 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -269,6 +269,10 @@ void MDCache::init_layouts() default_log_layout = g_default_file_layout; default_log_layout.fl_pg_pool = mds->mdsmap->get_metadata_pool(); + if (g_conf->mds_log_segment_size > 0) { + default_log_layout.fl_object_size = g_conf->mds_log_segment_size; + default_log_layout.fl_stripe_unit = g_conf->mds_log_segment_size; + } } CInode *MDCache::create_system_inode(inodeno_t ino, int mode) -- 2.39.5