if one object has many `internal keys` at its omap beginning,
it maybe very slow for the underlying seek to reach the first
`user key` when initializing a omapiter.
this may stuck osd when build_push_op, seek recovering
object's first omap key again and again.
Signed-off-by: imtzw <tongzhiwei_yewu@cmss.chinamobile.com>
if (o->onode.has_omap()) {
o->get_omap_key(string(), &head);
o->get_omap_tail(&tail);
+ auto start1 = mono_clock::now();
it->lower_bound(head);
+ c->store->log_latency(
+ __func__,
+ l_bluestore_omap_seek_to_first_lat,
+ mono_clock::now() - start1,
+ c->store->cct->_conf->bluestore_log_omap_iterator_age);
}
}
BlueStore::OmapIteratorImpl::~OmapIteratorImpl()