}
const md_config_t *conf = cct->_conf;
- loff_t p = in->layout.stripe_count * in->layout.object_size;
f->readahead.set_trigger_requests(1);
f->readahead.set_min_readahead_size(conf->client_readahead_min);
uint64_t max_readahead = Readahead::NO_LIMIT;
max_readahead = MIN(max_readahead, (uint64_t)conf->client_readahead_max_bytes);
}
if (conf->client_readahead_max_periods) {
- max_readahead = MIN(max_readahead, ((uint64_t)conf->client_readahead_max_periods) * p);
+ max_readahead = MIN(max_readahead, in->layout.get_period()*(uint64_t)conf->client_readahead_max_periods);
}
f->readahead.set_max_readahead_size(max_readahead);
vector<uint64_t> alignments;
- alignments.push_back(p);
+ alignments.push_back(in->layout.get_period());
alignments.push_back(in->layout.stripe_unit);
f->readahead.set_alignments(alignments);
uint64_t Striper::get_num_objects(const file_layout_t& layout,
uint64_t size)
{
- __u32 object_size = layout.object_size;
__u32 stripe_unit = layout.stripe_unit;
__u32 stripe_count = layout.stripe_count;
- uint64_t period = (uint64_t)stripe_count * object_size;
+ uint64_t period = layout.get_period();
uint64_t num_periods = (size + period - 1) / period;
uint64_t remainder_bytes = size % period;
uint64_t remainder_objs = 0;