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
+OPTION(paxos_min, OPT_INT, 500) // minimum number of paxos states to keep around
OPTION(paxos_trim_min, OPT_INT, 250) // number of extra proposals tolerated before trimming
OPTION(paxos_trim_max, OPT_INT, 500) // max number of extra proposals to trim at a time
OPTION(paxos_trim_disabled_max_versions, OPT_INT, 108000) // maximum amount of versions we shall allow passing by without trimming
void Paxos::trim()
{
assert(should_trim());
- version_t end = MIN(get_version() - g_conf->paxos_max_join_drift,
- get_first_committed() + g_conf->paxos_trim_max);
+ version_t end = MIN(get_version() - g_conf->paxos_min,
+ get_first_committed() + g_conf->paxos_trim_max);
if (first_committed >= end)
return;
* @returns true if we should trim; false otherwise.
*/
bool should_trim() {
- int available_versions = (get_version() - get_first_committed());
- int maximum_versions =
- (g_conf->paxos_max_join_drift + g_conf->paxos_trim_min);
+ int available_versions = get_version() - get_first_committed();
+ int maximum_versions = g_conf->paxos_min + g_conf->paxos_trim_min;
if (trimming || (available_versions <= maximum_versions))
return false;