From ca4e754b217fe191e4253ba753809eaa8eaa4c27 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 1 Dec 2008 07:13:30 -0800 Subject: [PATCH] osd: optionally avoid zeroing trimmed log on disk This is a half-hearted attempt to keep old PG log content around. It'll still be lost if a PG moves to another node or the entire log is written to disk for some other reason. --- src/config.cc | 6 +++--- src/config.h | 2 +- src/osd/PG.cc | 4 +++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/config.cc b/src/config.cc index 75f5a97952aed..a8cdc00ba84f4 100644 --- a/src/config.cc +++ b/src/config.cc @@ -421,7 +421,7 @@ md_config_t g_conf = { osd_mon_report_interval: 5, // pg stats, failures, up_thru, boot. osd_replay_window: 45, osd_max_pull: 2, - osd_pad_pg_log: false, + osd_preserve_trimmed_log: true, osd_recovery_delay_start: 15, osd_recovery_max_active: 5, @@ -1045,8 +1045,8 @@ void parse_config_options(std::vector& args, bool open) g_conf.osd_maxthreads = atoi(args[++i]); else if (strcmp(args[i], "--osd_max_pull") == 0) g_conf.osd_max_pull = atoi(args[++i]); - else if (strcmp(args[i], "--osd_pad_pg_log") == 0) - g_conf.osd_pad_pg_log = atoi(args[++i]); + else if (strcmp(args[i], "--osd_preserve_trimmed_log") == 0) + g_conf.osd_preserve_trimmed_log = atoi(args[++i]); else if (strcmp(args[i], "--osd_recovery_delay_start") == 0) g_conf.osd_recovery_delay_start = atof(args[++i]); diff --git a/src/config.h b/src/config.h index 04175d507d43c..35c0a46712422 100644 --- a/src/config.h +++ b/src/config.h @@ -287,7 +287,7 @@ struct md_config_t { int osd_mon_report_interval; int osd_replay_window; int osd_max_pull; - bool osd_pad_pg_log; + bool osd_preserve_trimmed_log; float osd_recovery_delay_start; int osd_recovery_max_active; diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 4f34f0e89b85a..7aaa7563b4c14 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -1515,7 +1515,9 @@ void PG::trim_ondisklog_to(ObjectStore::Transaction& t, eversion_t v) t.collection_setattr(info.pgid.to_coll(), "ondisklog_bottom", &ondisklog.bottom, sizeof(ondisklog.bottom)); t.collection_setattr(info.pgid.to_coll(), "ondisklog_top", &ondisklog.top, sizeof(ondisklog.top)); - t.zero(0, info.pgid.to_pobject(), 0, ondisklog.bottom); + + if (!g_conf.osd_preserve_trimmed_log) + t.zero(0, info.pgid.to_pobject(), 0, ondisklog.bottom); } -- 2.39.5