f->dump_unsigned("target_max_objects", target_max_objects);
f->dump_unsigned("cache_target_dirty_ratio_micro",
cache_target_dirty_ratio_micro);
+ f->dump_unsigned("cache_target_dirty_high_ratio_micro",
+ cache_target_dirty_high_ratio_micro);
f->dump_unsigned("cache_target_full_ratio_micro",
cache_target_full_ratio_micro);
f->dump_unsigned("cache_min_flush_age", cache_min_flush_age);
return;
}
- ENCODE_START(17, 5, bl);
+ ENCODE_START(19, 5, bl);
::encode(type, bl);
::encode(size, bl);
::encode(crush_ruleset, bl);
::encode(last_force_op_resend, bl);
::encode(min_read_recency_for_promote, bl);
::encode(expected_num_objects, bl);
+ ::encode(cache_target_dirty_high_ratio_micro, bl);
ENCODE_FINISH(bl);
}
void pg_pool_t::decode(bufferlist::iterator& bl)
{
- DECODE_START_LEGACY_COMPAT_LEN(17, 5, 5, bl);
+ DECODE_START_LEGACY_COMPAT_LEN(19, 5, 5, bl);
::decode(type, bl);
::decode(size, bl);
::decode(crush_ruleset, bl);
} else {
expected_num_objects = 0;
}
+ if (struct_v >= 19) {
+ ::decode(cache_target_dirty_high_ratio_micro, bl);
+ } else {
+ cache_target_dirty_high_ratio_micro = cache_target_dirty_ratio_micro;
+ }
DECODE_FINISH(bl);
calc_pg_masks();
}
a.target_max_bytes = 1238132132;
a.target_max_objects = 1232132;
a.cache_target_dirty_ratio_micro = 187232;
+ a.cache_target_dirty_high_ratio_micro = 309856;
a.cache_target_full_ratio_micro = 987222;
a.cache_min_flush_age = 231;
a.cache_min_evict_age = 2321;
target_max_bytes = 0;
target_max_objects = 0;
cache_target_dirty_ratio_micro = 0;
+ cache_target_dirty_high_ratio_micro = 0;
cache_target_full_ratio_micro = 0;
hit_set_params = HitSet::Params();
hit_set_period = 0;
uint64_t target_max_objects; ///< tiering: target max pool size
uint32_t cache_target_dirty_ratio_micro; ///< cache: fraction of target to leave dirty
+ uint32_t cache_target_dirty_high_ratio_micro; ///<cache: fraction of target to flush with high speed
uint32_t cache_target_full_ratio_micro; ///< cache: fraction of target to fill before we evict in earnest
uint32_t cache_min_flush_age; ///< minimum age (seconds) before we can flush
cache_mode(CACHEMODE_NONE),
target_max_bytes(0), target_max_objects(0),
cache_target_dirty_ratio_micro(0),
+ cache_target_dirty_high_ratio_micro(0),
cache_target_full_ratio_micro(0),
cache_min_flush_age(0),
cache_min_evict_age(0),