From: Sage Weil Date: Tue, 3 Dec 2013 16:49:15 +0000 (-0800) Subject: crush/CrushWrapper: set chooseleaf_tries to 5 for 'simple' indep rules X-Git-Tag: v0.74~16^2~7 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=09ce7a2bd353a8c008f412a2dbc39c53494209f3;p=ceph.git crush/CrushWrapper: set chooseleaf_tries to 5 for 'simple' indep rules When making a generic indep rule, set the recursive retry to 5. This gives better overall results. Signed-off-by: Sage Weil --- diff --git a/src/crush/CrushWrapper.cc b/src/crush/CrushWrapper.cc index 923e8c457d73..edd2b3bb6066 100644 --- a/src/crush/CrushWrapper.cc +++ b/src/crush/CrushWrapper.cc @@ -686,22 +686,28 @@ int CrushWrapper::add_simple_rule(string name, string root_name, } } - crush_rule *rule = crush_make_rule(3, ruleset, 1 /* pg_pool_t::TYPE_REP */, 1, 10); + int steps = 3; + if (mode == "indep") + steps = 4; + crush_rule *rule = crush_make_rule(steps, ruleset, 1 /* pg_pool_t::TYPE_REP */, 1, 10); assert(rule); - crush_rule_set_step(rule, 0, CRUSH_RULE_TAKE, root, 0); + int step = 0; + if (mode == "indep") + crush_rule_set_step(rule, step++, CRUSH_RULE_SET_CHOOSE_LEAF_TRIES, 5, 0); + crush_rule_set_step(rule, step++, CRUSH_RULE_TAKE, root, 0); if (type) - crush_rule_set_step(rule, 1, + crush_rule_set_step(rule, step++, mode == "firstn" ? CRUSH_RULE_CHOOSE_LEAF_FIRSTN : CRUSH_RULE_CHOOSE_LEAF_INDEP, CRUSH_CHOOSE_N, type); else - crush_rule_set_step(rule, 1, + crush_rule_set_step(rule, step++, mode == "firstn" ? CRUSH_RULE_CHOOSE_FIRSTN : CRUSH_RULE_CHOOSE_INDEP, CRUSH_CHOOSE_N, 0); - crush_rule_set_step(rule, 2, CRUSH_RULE_EMIT, 0, 0); + crush_rule_set_step(rule, step++, CRUSH_RULE_EMIT, 0, 0); int rno = crush_add_rule(crush, rule, -1); set_rule_name(rno, name); have_rmaps = false;