These map directly onto the bluestore_cache_size setting.
Signed-off-by: Sage Weil <sage@redhat.com>
#define DEFINE_MEMORY_POOLS_HELPER(f) \
f(bloom_filter) \
f(bluestore_alloc) \
- f(bluestore_data) \
+ f(bluestore_cache_data) \
+ f(bluestore_cache_onode) \
+ f(bluestore_cache_other) \
f(bluestore_fsck) \
- f(bluestore_meta_onode) \
- f(bluestore_meta_other) \
f(bluefs) \
f(buffer_anon) \
f(buffer_meta) \
#define dout_context cct
#define dout_subsys ceph_subsys_bluestore
-// bluestore_meta_onode
+// bluestore_cache_onode
MEMPOOL_DEFINE_OBJECT_FACTORY(BlueStore::Onode, bluestore_onode,
- bluestore_meta_onode);
+ bluestore_cache_onode);
-// bluestore_meta_other
+// bluestore_cache_other
MEMPOOL_DEFINE_OBJECT_FACTORY(BlueStore::Buffer, bluestore_buffer,
- bluestore_meta_other);
+ bluestore_cache_other);
MEMPOOL_DEFINE_OBJECT_FACTORY(BlueStore::Extent, bluestore_extent,
- bluestore_meta_other);
+ bluestore_cache_other);
MEMPOOL_DEFINE_OBJECT_FACTORY(BlueStore::Blob, bluestore_blob,
- bluestore_meta_other);
+ bluestore_cache_other);
MEMPOOL_DEFINE_OBJECT_FACTORY(BlueStore::SharedBlob, bluestore_shared_blob,
- bluestore_meta_other);
+ bluestore_cache_other);
// kv store prefixes
const string PREFIX_SUPER = "S"; // field -> value
OnodeRef& oldo,
const ghobject_t& old_oid,
const ghobject_t& new_oid,
- const mempool::bluestore_meta_other::string& new_okey)
+ const mempool::bluestore_cache_other::string& new_okey)
{
std::lock_guard<std::recursive_mutex> l(cache->lock);
ldout(cache->cct, 30) << __func__ << " " << old_oid << " -> " << new_oid
if (o)
return o;
- mempool::bluestore_meta_other::string key;
+ mempool::bluestore_cache_other::string key;
get_object_key(store->cct, oid, &key);
ldout(store->cct, 20) << __func__ << " oid " << oid << " key "
{
Mutex::Locker l(lock);
while (!stop) {
- store->mempool_bytes = mempool::bluestore_meta_other::allocated_bytes() +
- mempool::bluestore_meta_onode::allocated_bytes();
- store->mempool_onodes = mempool::bluestore_meta_onode::allocated_items();
+ store->mempool_bytes = mempool::bluestore_cache_other::allocated_bytes() +
+ mempool::bluestore_cache_onode::allocated_bytes();
+ store->mempool_onodes = mempool::bluestore_cache_onode::allocated_items();
++store->mempool_seq;
utime_t wait;
wait += store->cct->_conf->bluestore_cache_trim_interval;
int r;
{
RWLock::RLocker l(c->lock);
- mempool::bluestore_meta_other::string k(name);
+ mempool::bluestore_cache_other::string k(name);
OnodeRef o = c->get_onode(oid, false);
if (!o || !o->exists) {
<< new_oid << dendl;
int r;
ghobject_t old_oid = oldo->oid;
- mempool::bluestore_meta_other::string new_okey;
+ mempool::bluestore_cache_other::string new_okey;
if (newo) {
if (newo->exists) {
boost::intrusive::list_member_hook<>,
&Buffer::state_item> > state_list_t;
- mempool::bluestore_meta_other::map<uint32_t, std::unique_ptr<Buffer>>
+ mempool::bluestore_cache_other::map<uint32_t, std::unique_ptr<Buffer>>
buffer_map;
// we use a bare intrusive list here instead of std::map because
} else {
cache->_add_buffer(b, level, near);
}
- b->data.reassign_to_mempool(mempool::mempool_bluestore_data);
+ b->data.reassign_to_mempool(mempool::mempool_bluestore_cache_data);
cache->_audit("_add_buffer end");
}
void _rm_buffer(Cache* cache, Buffer *b) {
// we use a bare pointer because we don't want to affect the ref
// count
- mempool::bluestore_meta_other::unordered_map<uint64_t,SharedBlob*> sb_map;
+ mempool::bluestore_cache_other::unordered_map<uint64_t,SharedBlob*> sb_map;
SharedBlobRef lookup(uint64_t sbid) {
std::lock_guard<std::mutex> l(lock);
#endif
};
typedef boost::intrusive_ptr<Blob> BlobRef;
- typedef mempool::bluestore_meta_other::map<int,BlobRef> blob_map_t;
+ typedef mempool::bluestore_cache_other::map<int,BlobRef> blob_map_t;
/// a logical extent, pointing to (some portion of) a blob
typedef boost::intrusive::set_base_hook<boost::intrusive::optimize_size<true> > ExtentBase; //making an alias to avoid build warnings
bool loaded = false; ///< true if shard is loaded
bool dirty = false; ///< true if shard is dirty and needs reencoding
};
- mempool::bluestore_meta_other::vector<Shard> shards; ///< shards
+ mempool::bluestore_cache_other::vector<Shard> shards; ///< shards
bufferlist inline_bl; ///< cached encoded map, if unsharded; empty=>dirty
ghobject_t oid;
/// key under PREFIX_OBJ where we are stored
- mempool::bluestore_meta_other::string key;
+ mempool::bluestore_cache_other::string key;
boost::intrusive::list_member_hook<> lru_item;
std::condition_variable flush_cond; ///< wait here for uncommitted txns
Onode(Collection *c, const ghobject_t& o,
- const mempool::bluestore_meta_other::string& k)
+ const mempool::bluestore_cache_other::string& k)
: nref(0),
c(c),
oid(o),
Cache *cache;
/// forward lookups
- mempool::bluestore_meta_other::unordered_map<ghobject_t,OnodeRef> onode_map;
+ mempool::bluestore_cache_other::unordered_map<ghobject_t,OnodeRef> onode_map;
friend class Collection; // for split_cache()
}
void rename(OnodeRef& o, const ghobject_t& old_oid,
const ghobject_t& new_oid,
- const mempool::bluestore_meta_other::string& new_okey);
+ const mempool::bluestore_cache_other::string& new_okey);
void clear();
bool empty();
bool mounted = false;
RWLock coll_lock = {"BlueStore::coll_lock"}; ///< rwlock to protect coll_map
- mempool::bluestore_meta_other::unordered_map<coll_t, CollectionRef> coll_map;
+ mempool::bluestore_cache_other::unordered_map<coll_t, CollectionRef> coll_map;
vector<Cache*> cache_shards;
ostream& operator<<(ostream& out, const bluestore_pextent_t& o);
-typedef mempool::bluestore_meta_other::vector<bluestore_pextent_t> PExtentVector;
+typedef mempool::bluestore_cache_other::vector<bluestore_pextent_t> PExtentVector;
template<>
struct denc_traits<PExtentVector> {
}
};
- typedef mempool::bluestore_meta_other::map<uint64_t,record_t> map_t;
+ typedef mempool::bluestore_cache_other::map<uint64_t,record_t> map_t;
map_t ref_map;
void _check() const;
struct bluestore_onode_t {
uint64_t nid = 0; ///< numeric id (locally unique)
uint64_t size = 0; ///< object size
- map<mempool::bluestore_meta_other::string, bufferptr> attrs; ///< attrs
+ map<mempool::bluestore_cache_other::string, bufferptr> attrs; ///< attrs
struct shard_info {
uint32_t offset = 0; ///< logical offset for start of shard
#if defined(HAVE_LIBAIO)
void get_mempool_stats(uint64_t* total_bytes, uint64_t* total_items)
{
- uint64_t onode_allocated = mempool::bluestore_meta_onode::allocated_bytes();
- uint64_t other_allocated = mempool::bluestore_meta_other::allocated_bytes();
+ uint64_t onode_allocated = mempool::bluestore_cache_onode::allocated_bytes();
+ uint64_t other_allocated = mempool::bluestore_cache_other::allocated_bytes();
- uint64_t onode_items = mempool::bluestore_meta_onode::allocated_items();
- uint64_t other_items = mempool::bluestore_meta_other::allocated_items();
+ uint64_t onode_items = mempool::bluestore_cache_onode::allocated_items();
+ uint64_t other_items = mempool::bluestore_cache_other::allocated_items();
cout << "onode(" << onode_allocated << "/" << onode_items
<< ") other(" << other_allocated << "/" << other_items
<< ")" << std::endl;