OPTION(osd_max_attr_size, OPT_U64, 0)
OPTION(osd_objectstore, OPT_STR, "filestore") // ObjectStore backend type
+// Override maintaining compatibility with older OSDs
+// Set to true for testing. Users should NOT set this.
+OPTION(osd_debug_override_acting_compat, OPT_BOOL, false)
/// filestore wb throttle limits
OPTION(filestore_wbthrottle_enable, OPT_BOOL, true)
return false;
}
+ // TODO: Add check of osdmap for all OSDs to be able to handle new acting
+ // Determine if compatibility needed
+ bool compat_mode = !cct->_conf->osd_debug_override_acting_compat;
+
+ if (compat_mode) {
+ // May not be necessary, but the old mechanism only did one at a time
+ if (!backfill.empty())
+ backfill.resize(1);
+
+ want.insert(want.end(), backfill.begin(), backfill.end());
+ }
+
if (want != acting) {
dout(10) << "choose_acting want " << want << " != acting " << acting
<< ", requesting pg_temp change" << dendl;
// we've accepted the acting set. Now we can create
// actingbackfill and backfill_targets vectors.
actingbackfill = acting;
- actingbackfill.insert(actingbackfill.end(), backfill.begin(), backfill.end());
+ if (!compat_mode)
+ actingbackfill.insert(actingbackfill.end(), backfill.begin(), backfill.end());
assert(backfill_targets.empty() || backfill_targets == backfill);
if (backfill_targets.empty()) {
backfill_targets = backfill;