Hi, Sage
pgmeta object is a meta-object (like __head_00000000__2) without
significant information. It is created when in PG::_init() when
handling pg_create and split_coll and always exits there during pg's
life cycle until pg is removed in RemoveWQ. The real content related
to pgmeta-data is stored in omap. we may just treat pgmeta-object as a
logical object and not present it physically so that we can avoid
recursive searching object path by if(hoid.pgmeta())?
such as:
int FileStore::_omap_setkeys(coll_t cid, const ghobject_t &hoid,
const map<string, bufferlist> &aset,
const SequencerPosition &spos) {
dout(15) << __func__ << " " << cid << "/" << hoid << dendl;
Index index;
int r;
if(hoid.pgmeta())
goto out;
***
***
***
out:
r = object_map->set_keys(hoid, aset, &spos);
dout(20) << __func__ << " " << cid << "/" << hoid << " = " << r << dendl;
return r;
}
Regards
Ning Yao
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html