int new_min_size,
unsigned old_pg_num,
unsigned new_pg_num,
+ bool old_sort_bitwise,
+ bool new_sort_bitwise,
pg_t pgid) {
return old_acting_primary != new_acting_primary ||
new_acting != old_acting ||
new_up != old_up ||
old_min_size != new_min_size ||
old_size != new_size ||
- pgid.is_split(old_pg_num, new_pg_num, 0);
+ pgid.is_split(old_pg_num, new_pg_num, 0) ||
+ old_sort_bitwise != new_sort_bitwise;
}
bool pg_interval_t::is_new_interval(
osdmap->get_pools().find(pgid.pool())->second.min_size,
lastmap->get_pg_num(pgid.pool()),
osdmap->get_pg_num(pgid.pool()),
+ lastmap->test_flag(CEPH_OSDMAP_SORTBITWISE),
+ osdmap->test_flag(CEPH_OSDMAP_SORTBITWISE),
pgid);
}
vector<int> up, acting;
osdmap->pg_to_up_acting_osds(pgid, &up, &up_primary,
&acting, &acting_primary);
+ bool sort_bitwise = osdmap->test_flag(CEPH_OSDMAP_SORTBITWISE);
if (any_change && pg_interval_t::is_new_interval(
t->acting_primary,
acting_primary,
min_size,
t->pg_num,
pg_num,
+ t->sort_bitwise,
+ sort_bitwise,
pi->raw_pg_to_pg(pgid))) {
force_resend = true;
}
t->size = size;
t->min_size = min_size;
t->pg_num = pg_num;
+ t->sort_bitwise = sort_bitwise;
ldout(cct, 10) << __func__ << " "
<< " pgid " << pgid << " acting " << acting << dendl;
t->used_replica = false;
int acting_primary; ///< primary for last pg we mapped to based on the acting set
int size; ///< the size of the pool when were were last mapped
int min_size; ///< the min size of the pool when were were last mapped
+ bool sort_bitwise; ///< whether the hobject_t sort order is bitwise
bool used_replica;
bool paused;
acting_primary(-1),
size(-1),
min_size(-1),
+ sort_bitwise(false),
used_replica(false),
paused(false),
osd(-1)