Signed-off-by: Sage Weil <sage@redhat.com>
}
void OSD::ShardedOpWQ::_enqueue(pair<PGRef, PGQueueable> item) {
-
- uint32_t shard_index = (((item.first)->get_pgid().ps())% shard_list.size());
+ uint32_t shard_index =
+ (item.first)->get_pgid().hash_to_shard(shard_list.size());
ShardData* sdata = shard_list[shard_index];
assert (NULL != sdata);
ghobject_t::NO_GEN,
shard);
}
+
+ unsigned hash_to_shard(unsigned num_shards) const {
+ return ps() % num_shards;
+ }
};
WRITE_CLASS_ENCODER(spg_t)
WRITE_EQ_OPERATORS_2(spg_t, pgid, shard)