From 890e5bc49913153a16b02dbb30f51cb90cc85bcc Mon Sep 17 00:00:00 2001 From: Andi Skrgat Date: Mon, 26 Feb 2024 08:01:32 +0100 Subject: [PATCH] AF backed by RAFT --- src/coordination/coordinator_instance.cpp | 19 +------------------ .../coordination/coordinator_instance.hpp | 4 ---- 2 files changed, 1 insertion(+), 22 deletions(-) diff --git a/src/coordination/coordinator_instance.cpp b/src/coordination/coordinator_instance.cpp index 3183f0d33..d440d2621 100644 --- a/src/coordination/coordinator_instance.cpp +++ b/src/coordination/coordinator_instance.cpp @@ -542,24 +542,6 @@ auto CoordinatorInstance::SetReplicationInstanceToMain(std::string instance_name return SetInstanceToMainCoordinatorStatus::NO_INSTANCE_WITH_NAME; } - if (!raft_state_.RequestLeadership()) { - return SetInstanceToMainCoordinatorStatus::NOT_LEADER; - } - - auto const res = raft_state_.AppendSetInstanceAsMain(instance_name); - if (!res->get_accepted()) { - spdlog::error( - "Failed to accept request for promoting instance {}. Most likely the reason is that the instance is not " - "the leader.", - instance_name); - return SetInstanceToMainCoordinatorStatus::RAFT_COULD_NOT_ACCEPT; - } - - if (res->get_result_code() != nuraft::cmd_result_code::OK) { - spdlog::error("Failed to promote instance {} with error code {}", instance_name, res->get_result_code()); - return SetInstanceToMainCoordinatorStatus::RAFT_COULD_NOT_APPEND; - } - new_main->PauseFrequentCheck(); utils::OnScopeExit scope_exit{[&new_main] { new_main->ResumeFrequentCheck(); }}; @@ -587,6 +569,7 @@ auto CoordinatorInstance::SetReplicationInstanceToMain(std::string instance_name return SetInstanceToMainCoordinatorStatus::COULD_NOT_PROMOTE_TO_MAIN; } + // TODO: (andi) This should be replicated across all coordinator instances with Raft log SetMainUUID(new_main_uuid); spdlog::info("Instance {} promoted to main", instance_name); return SetInstanceToMainCoordinatorStatus::SUCCESS; diff --git a/src/coordination/include/coordination/coordinator_instance.hpp b/src/coordination/include/coordination/coordinator_instance.hpp index 1b1413260..08586747a 100644 --- a/src/coordination/include/coordination/coordinator_instance.hpp +++ b/src/coordination/include/coordination/coordinator_instance.hpp @@ -48,10 +48,6 @@ class CoordinatorInstance { auto AddCoordinatorInstance(uint32_t raft_server_id, uint32_t raft_port, std::string raft_address) -> void; - auto GetMainUUID() const -> utils::UUID; - - auto SetMainUUID(utils::UUID new_uuid) -> void; - auto FindReplicationInstance(std::string_view replication_instance_name) -> ReplicationInstance &; void MainFailCallback(std::string_view);