]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: optionally avoid zeroing trimmed log on disk
authorSage Weil <sage@newdream.net>
Mon, 1 Dec 2008 15:13:30 +0000 (07:13 -0800)
committerSage Weil <sage@newdream.net>
Mon, 1 Dec 2008 22:03:04 +0000 (14:03 -0800)
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
src/config.h
src/osd/PG.cc

index 75f5a97952aed52feb24264ea1959e29b6d088f5..a8cdc00ba84f4ddb8f314de85e164cf022f55ca5 100644 (file)
@@ -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<const char*>& 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]);
index 04175d507d43c5787b44e822692ef42315afaad2..35c0a4671242263b9d31a8e007ab40a163fb629d 100644 (file)
@@ -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;
index 4f34f0e89b85a5614553f82ed1820c2734142277..7aaa7563b4c14962457f743072cf4c075d951ae3 100644 (file)
@@ -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);
 }