#include "crimson/osd/shard_services.h"
+namespace crimson::osd {
+
ECBackend::ECBackend(shard_id_t shard,
ECBackend::CollectionRef coll,
crimson::osd::ShardServices& shard_services,
// todo
return make_ready_future<rep_op_ret_t>(seastar::now(), seastar::now());
}
+
+}
#include "osd/osd_types.h"
#include "pg_backend.h"
+namespace crimson::osd {
+
class ECBackend : public PGBackend
{
public:
return seastar::now();
}
};
+
+}
class MQuery;
class OSDMap;
-class PGBackend;
-class ReplicatedBackend;
class PGPeeringEvent;
class osd_op_params_t;
class OpsExecuter;
class SnapTrimEvent;
class PglogBasedRecovery;
+class PGBackend;
+class ReplicatedBackend;
class PG : public boost::intrusive_ref_counter<
PG,
private:
friend class IOInterruptCondition;
- friend class ::ReplicatedBackend;
+ friend class ReplicatedBackend;
struct log_update_t {
std::set<pg_shard_t> waiting_on;
seastar::shared_promise<> all_committed;
using std::string_view;
using crimson::common::local_conf;
+namespace crimson::osd {
+
std::unique_ptr<PGBackend>
PGBackend::create(pg_t pgid,
const pg_shard_t pg_shard,
txn.rmattr(coll->get_cid(), ghobject_t{to}, SS_ATTR);
}
+}
}
namespace crimson::osd {
- class ShardServices;
- class PG;
- class ObjectContextLoader;
-}
+class ShardServices;
+class PG;
+class ObjectContextLoader;
class PGBackend
{
friend class RecoveryBackend;
};
+
+}
using std::map;
using std::set;
-using PglogBasedRecovery = crimson::osd::PglogBasedRecovery;
+
+namespace crimson::osd {
void PGRecovery::start_pglogbased_recovery()
{
backfill_state->process_event(
BackfillState::Triggered{}.intrusive_from_this());
}
+
+}
#include "osd/object_state.h"
+class MOSDPGBackfillRemove;
+
namespace crimson::osd {
class UrgentRecovery;
class PglogBasedRecovery;
-}
-
-class MOSDPGBackfillRemove;
class PGBackend;
class PGRecovery : public crimson::osd::BackfillState::BackfillListener {
friend crimson::osd::PG;
// backfill end
};
+
+}
#include "osd/osd_types.h"
namespace crimson::osd {
- class ShardServices;
- class PglogBasedRecovery;
-};
-
+class ShardServices;
+class PglogBasedRecovery;
class RecoveryBackend;
class PGRecovery;
virtual void reset_pglog_based_recovery_op() = 0;
virtual void schedule_event_after(PGPeeringEventRef evt, float delay) = 0;
};
+
+}
SET_SUBSYS(osd);
+namespace crimson::osd {
+
hobject_t RecoveryBackend::get_temp_recovery_object(
const hobject_t& target,
eversion_t version) const
(uint16_t)m->get_header().type)));
}
}
+
+}
#include "osd/recovery_types.h"
#include "osd/osd_types.h"
-namespace crimson::osd{
- class PG;
-}
+namespace crimson::osd {
+class PG;
class RecoveryBackend {
public:
crimson::net::ConnectionXcoreRef conn);
interruptible_future<> handle_backfill_remove(MOSDPGBackfillRemove& m);
};
+
+}
SET_SUBSYS(osd);
+namespace crimson::osd {
+
ReplicatedBackend::ReplicatedBackend(pg_t pgid,
pg_shard_t whoami,
crimson::osd::PG& pg,
DEBUGDPP("{}", dpp, m);
pg.peering_state.update_pct(m.pg_committed_to);
}
+
+}
#include "pg_backend.h"
namespace crimson::osd {
- class ShardServices;
- class PG;
-}
+class ShardServices;
+class PG;
class ReplicatedBackend : public PGBackend
{
/// Handle MOSDPGPCT message
void do_pct(const MOSDPGPCT &m);
};
+
+}
using std::map;
using std::string;
+namespace crimson::osd {
+
RecoveryBackend::interruptible_future<>
ReplicatedRecoveryBackend::recover_object(
const hobject_t& soid,
}
return std::make_pair(std::move(oi), std::move(ssc));
}
+
+}
#include "messages/MOSDPGRecoveryDeleteReply.h"
#include "os/ObjectStore.h"
+namespace crimson::osd {
+
class ReplicatedRecoveryBackend : public RecoveryBackend {
public:
ReplicatedRecoveryBackend(crimson::osd::PG& pg,
std::pair<object_info_t, crimson::osd::SnapSetContextRef>
get_md_from_push_op(PushOp &push_op);
};
+
+}