* This appears to be called with nothing locked.
*/
virtual objectstore_perf_stat_t get_cur_stats() = 0;
+ /**
+ * Propagate Object Store performance counters with the actual values
+ *
+ *
+ * Intended primarily for testing purposes
+ */
+ virtual void refresh_perf_counters() = 0;
/**
* Fetch Object Store performance counters.
uint64_t *blobs,
uint64_t *buffers,
uint64_t *bytes) override {
+ std::lock_guard l(lock);
*extents += num_extents;
*blobs += num_blobs;
*buffers += num;
uint64_t *blobs,
uint64_t *buffers,
uint64_t *bytes) override {
+ std::lock_guard l(lock);
*extents += num_extents;
*blobs += num_blobs;
*buffers += num;
_resize_shards(interval_stats_trim);
interval_stats_trim = false;
- store->_update_logger();
+ store->refresh_perf_counters();
auto wait = ceph::make_timespan(
store->cct->_conf->bluestore_cache_trim_interval);
cond.wait_for(l, wait);
}
}
-void BlueStore::_update_logger()
+void BlueStore::refresh_perf_counters()
{
uint64_t num_onodes = 0;
uint64_t num_pinned_onodes = 0;
CollectionRef _get_collection_by_oid(const ghobject_t& oid);
void _queue_reap_collection(CollectionRef& c);
void _reap_collections();
- void _update_logger();
void _assign_nid(TransContext *txc, OnodeRef& o);
uint64_t _assign_blobid(TransContext *txc);
const PerfCounters* get_perf_counters() const override {
return logger;
}
+ void refresh_perf_counters() override;
+
const PerfCounters* get_bluefs_perf_counters() const {
return bluefs->get_perf_counters();
}
objectstore_perf_stat_t get_cur_stats() override {
return objectstore_perf_stat_t();
}
+ void refresh_perf_counters() override {
+ }
const PerfCounters* get_perf_counters() const override {
return logger;
}
}
objectstore_perf_stat_t get_cur_stats() override;
-
+ void refresh_perf_counters() override {
+ }
const PerfCounters* get_perf_counters() const override {
return nullptr;
}