On Tue, 11 Apr 2017, qi Shi wrote: > struct Collection : public CollectionImpl { > BlueStore *store; > Cache *cache; ///< our cache shard > coll_t cid; > bluestore_cnode_t cnode; > RWLock lock; > > bool exists; > > SharedBlobSet shared_blob_set; ///< open SharedBlobs > > // cache onodes on a per-collection basis to avoid lock > // contention. > OnodeSpace onode_map; > > //pool options > pool_opts_t pool_opts; Mostly. Most of the time you can think of it that way. In reality, though, it is a range of the ghobject_t namespace, as specified by the <shardid,poolid,seed> in coll_t's spg_t and the bits value in bluestore_cnode_t, which ultimately specify a [begin,end) range of ghobject_t that the collection covers. The collection "split" operation (see _split_collection()) allows a collection range to be split by some number of bits into smaller collections, without actually touching any of the object metadata, because the onode keys are already sorted in the same way. See the get_coll_key_range() call in _collection_list to see how the collection range is calculated for the purposes of listing objects. 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