diff --git a/service/strong_consistency/groups_manager.cc b/service/strong_consistency/groups_manager.cc index 45501b7ec4..701e40a76a 100644 --- a/service/strong_consistency/groups_manager.cc +++ b/service/strong_consistency/groups_manager.cc @@ -137,6 +137,12 @@ future<> groups_manager::start_raft_group(global_tablet_id tablet, auto& persistence_ref = *storage; auto config = raft::server::configuration { + // Snapshotting is not implemented yet for strong consistency, + // so effectively disable periodic snapshotting. + // TODO: Revert after snapshots are implemented + .snapshot_threshold = std::numeric_limits::max(), + .snapshot_threshold_log_size = 10 * 1024 * 1024, // 10MB + .max_log_size = 20 * 1024 * 1024, // 20MB .enable_forwarding = false, .on_background_error = [tablet, group_id](std::exception_ptr e) { on_internal_error(logger, diff --git a/service/strong_consistency/state_machine.cc b/service/strong_consistency/state_machine.cc index e8e80d0214..0154df33b7 100644 --- a/service/strong_consistency/state_machine.cc +++ b/service/strong_consistency/state_machine.cc @@ -79,11 +79,16 @@ public: } future take_snapshot() override { - throw std::runtime_error("take_snapshot() not implemented"); + // Until snapshot transfer is fully implemented, return a fake ID + // and don't actually do anything. As long as we don't do snapshot + // transfers (attempting to do that throws an exception), we should + // be safe. + return make_ready_future(raft::snapshot_id(utils::make_random_uuid())); } void drop_snapshot(raft::snapshot_id id) override { - throw std::runtime_error("drop_snapshot() not implemented"); + // Taking a snapshot is a no-op, so dropping a snapshot is also a no-op. + (void) id; } future<> load_snapshot(raft::snapshot_id id) override {