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
* 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()