Context handling is pretty uniform accross all implementations,
may as well do it in the same place.
ShardedStoreProxy would need to handle it otherwise, since
callbacks need to be handled on the core do_transaction is
invoked on.
Signed-off-by: Samuel Just <sjust@redhat.com>
For now, FuturizedStore implementations assume that methods are invoked
on core 0. Later, we'll adapt each implementation to intelligently
support invocation on any pg core. Until then, this wrapper converts
the existing implementations to a safe, if not particuarly performant,
proxy behavior.
AlienStore should be safe as is.
Signed-off-by: Samuel Just <sjust@redhat.com>
OSDSingletonState will now only be responsible for the spg_t->core
mapping for pgs, the individual PerShardState's will hold local
PGMap's. PG management operations are now proxied from PGShardManager
to PerShardState. Subsequent patches will shard PerShardState.
Signed-off-by: Samuel Just <sjust@redhat.com>
The op will actually be run generally on a different core, so we don't
want to be returning a reference to it.
Signed-off-by: Samuel Just <sjust@redhat.com>
OSDMaps can occupy significant space in memory. Duplicating OSDMaps
across cores would multiply that memory usage as well as complicate
the internal structure sharing we do when applying OSDMap incrementals.
Because PeeringState and other interfaces expect efficient copying of
OSDMapRef objects we don't want to use foreign_ptr directly.
Instead, maintain a single cache and distribute local_shared_foreign_ptrs
to other cores. ShardServices becomes the only OSDMapService.
Signed-off-by: Samuel Just <sjust@redhat.com>
Can't access pg_shard_manager state here without invoking
start(). Instead, let's just be explicit about meta_coll
etc.
Signed-off-by: Samuel Just <sjust@redhat.com>
Introduce crimson::submit_to wrapper to transparently deal with
vanilla and errorated futures, adds helpers to errorator.h.
Signed-off-by: Samuel Just <sjust@redhat.com>
crimson: fix for pgs stuck in +wait along with some debug improvements
Reviewed-by: Yingxin Cheng <yingxin.cheng@intel.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
mgr/dashboard: use service call instead of form component
Reviewed-by: Aashish Sharma <aasharma@redhat.com>
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Signed-off-by: Avan Thakkar <athakkar@redhat.com>
Fixes issue when pid file config comes empty from config dump which prevents to add metrics. Also get process metrics only if
pid_path isn't empty.
For creating the silence from the notification sidebar, instead of using
the silence form which will require initializing the whole component on
the landing page, we can just call the prometheus service and pass on
the required data to the service call. This will fix showing the
`Prometheus not configured` error everytime we visit the landing page when
the prometheus is not configured
Fixes: https://tracker.ceph.com/issues/57576
Signed-off-by: Nizamudeen A <nia@redhat.com>
If threadhold count is 2, existing code always returns true
even though reference count is 1 actually because it additionally
adds one via ++.
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>