We need a place to hold the obc for in-progress, multi message pushes
on the replica side in order to lock the obc during the final commit.
This could be introduced as a ReplicatedRecoveryBackend concept, but
that seems unnecessarily complicated.
Signed-off-by: Samuel Just <sjust@redhat.com>
});
clear_temp_objs();
+ replica_push_targets.clear();
+
for (auto& [soid, recovery_waiter] : recovering) {
if ((recovery_waiter->pull_info
&& recovery_waiter->pull_info->is_complete())
virtual interruptible_future<> handle_backfill_op(
Ref<MOSDFastDispatchOp> m,
crimson::net::ConnectionXcoreRef conn);
+
+ /**
+ * replica_push_targets
+ *
+ * Holds obc on replica for in-progress pushes, see
+ * ReplicatedRecoveryBackend::handle_push
+ */
+ std::map<hobject_t, crimson::osd::ObjectContextRef> replica_push_targets;
private:
void handle_backfill_finish(
MOSDPGBackfill& m,