// ids generated by different shards are disjoint
static_cast<ceph_tid_t>(seastar::this_shard_id()) <<
(std::numeric_limits<ceph_tid_t>::digits - 8)),
- startup_time(startup_time)
+ startup_time(startup_time),
+ ec_extent_cache_lru(crimson::common::local_conf().get_val<uint64_t>("ec_extent_cache_size"))
{}
seastar::future<> PerShardState::dump_ops_in_flight(Formatter *f) const
#include "common/AsyncReserver.h"
#include "crimson/net/Connection.h"
#include "mgr/OSDPerfMetricTypes.h"
+#include "osd/ECExtentCache.h"
namespace crimson::net {
class Messenger;
std::list<OSDPerfMetricQuery> m_perf_queries;
std::map<OSDPerfMetricQuery, OSDPerfMetricLimits> m_perf_limits;
+ // This is an extent cache for the erasure coding. Specifically, this acts as
+ // a least-recently-used cache invalidator, allowing for cache shards to last
+ // longer than the most recent IO in each object.
+ ECExtentCache::LRU ec_extent_cache_lru;
+
public:
PerShardState(
int whoami,
});
}
+ ECExtentCache::LRU &lookup_ec_extent_cache_lru() {
+ return local_state.ec_extent_cache_lru;
+ }
+
FORWARD_TO_OSD_SINGLETON(get_pool_info)
FORWARD(get_throttle, get_throttle, local_state.throttler)