Re: How to understand Collection in Bluestore, is it a folder?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux