I encountered continous disk reads during trimming even though there are sufficient
cache available, in 4K random write test with RBM (RBD).
This is because metadata is note cached if its source is background transaction
within touch_extent(). So, seastore, including the trimming process, needs to
constantly retrieve metadata (e.g., BACKREF_LEAF).
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
CachedExtent &ext,
const Transaction::src_t* p_src=nullptr)
{
- if (p_src && is_background_transaction(*p_src))
+ if (p_src &&
+ is_background_transaction(*p_src) &&
+ is_logical_type(ext.get_type())) {
return;
+ }
if (ext.is_stable_clean() && !ext.is_placeholder()) {
lru.move_to_top(ext);
}