On Wed, 18 Nov 2015, Ning Yao wrote: > 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; > } This seems like a reasonable hack. We never store any byte data in it. And if/when that changes, we can change this at the same time. sage -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html