From 59d6953ca05ec05dcf5c36d3e4c370169dea4558 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 22 Apr 2013 14:58:09 -0700 Subject: [PATCH] mon: set threshold to periodically stash_full Set an interval to periodically write a full copy of the map that is lower than the trim point (which is generally a very large number of commits). Signed-off-by: Sage Weil --- src/common/config_opts.h | 1 + src/mon/PaxosService.cc | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/common/config_opts.h b/src/common/config_opts.h index 7b915f2dcc477..cde016c67e780 100644 --- a/src/common/config_opts.h +++ b/src/common/config_opts.h @@ -186,6 +186,7 @@ OPTION(mon_leveldb_block_size, OPT_U64, 4*1024*1024) // monitor's leveldb block OPTION(mon_leveldb_bloom_size, OPT_INT, 0) // monitor's leveldb bloom bits per entry OPTION(mon_leveldb_max_open_files, OPT_INT, 0) // monitor's leveldb max open files OPTION(mon_leveldb_compression, OPT_BOOL, false) // monitor's leveldb uses compression +OPTION(paxos_stash_full_interval, OPT_INT, 25) // how often (in commits) to stash a full copy of the PaxosService state OPTION(paxos_max_join_drift, OPT_INT, 10) // max paxos iterations before we must first sync the monitor stores OPTION(paxos_propose_interval, OPT_DOUBLE, 1.0) // gather updates for this long before proposing a map update OPTION(paxos_min_wait, OPT_DOUBLE, 0.05) // min time to gather updates for after period of inactivity diff --git a/src/mon/PaxosService.cc b/src/mon/PaxosService.cc index 44d53c2072380..dc5c7d6afeea9 100644 --- a/src/mon/PaxosService.cc +++ b/src/mon/PaxosService.cc @@ -178,7 +178,9 @@ bool PaxosService::should_stash_full() * nonetheless because, in that event, * latest_full == get_trim_to() == 0. */ - return (!latest_full || (latest_full <= get_trim_to())); + return (!latest_full || + (latest_full <= get_trim_to()) || + (get_version() - latest_full > (unsigned)g_conf->paxos_stash_full_interval)); } void PaxosService::restart() -- 2.39.5