cql_transport: Use shared updateable_timeout_config by reference

Pass sharded<updateable_timeout_config>& into cql_transport::controller,
which feeds the shard-local instance as a reference into
cql_server_config::timeout_config. This drops the per-shard local
updateable_timeout_config constructed from db::config inside the
controller's sharded_parameter lambda, replacing it with a reference
into the shared sharded instance.

Signed-off-by: Pavel Emelyanov <xemul@scylladb.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Pavel Emelyanov
2026-04-24 15:21:31 +03:00
parent aa99c1fd6e
commit 1a045d0cdd
4 changed files with 9 additions and 6 deletions

View File

@@ -2180,7 +2180,7 @@ To start the scylla server proper, simply invoke as: scylla server (or just scyl
auth::make_maintenance_socket_role_manager_factory(qp, group0_client, mm, auth_cache),
maintenance_socket_enabled::yes, std::ref(auth_cache)).get();
cql_maintenance_server_ctl.emplace(maintenance_auth_service, mm_notifier, gossiper, qp, service_memory_limiter, sl_controller, lifecycle_notifier, messaging, *cfg, maintenance_cql_sg_stats_key, maintenance_socket_enabled::yes, dbcfg.statement_scheduling_group);
cql_maintenance_server_ctl.emplace(maintenance_auth_service, mm_notifier, gossiper, qp, service_memory_limiter, sl_controller, lifecycle_notifier, messaging, timeout_cfg, *cfg, maintenance_cql_sg_stats_key, maintenance_socket_enabled::yes, dbcfg.statement_scheduling_group);
start_auth_service(maintenance_auth_service, stop_maintenance_auth_service, "maintenance auth service");
}
@@ -2612,7 +2612,7 @@ To start the scylla server proper, simply invoke as: scylla server (or just scyl
// after drain stops them in stop_transport()
// Register controllers after drain_on_shutdown() below, so that even on start
// failure drain is called and stops controllers
cql_transport::controller cql_server_ctl(auth_service, mm_notifier, gossiper, qp, service_memory_limiter, sl_controller, lifecycle_notifier, messaging, *cfg, cql_sg_stats_key, maintenance_socket_enabled::no, dbcfg.statement_scheduling_group);
cql_transport::controller cql_server_ctl(auth_service, mm_notifier, gossiper, qp, service_memory_limiter, sl_controller, lifecycle_notifier, messaging, timeout_cfg, *cfg, cql_sg_stats_key, maintenance_socket_enabled::no, dbcfg.statement_scheduling_group);
api::set_server_service_levels(ctx, cql_server_ctl, qp).get();

View File

@@ -31,7 +31,7 @@ static logging::logger logger("cql_server_controller");
controller::controller(sharded<auth::service>& auth, sharded<service::migration_notifier>& mn,
sharded<gms::gossiper>& gossiper, sharded<cql3::query_processor>& qp, sharded<service::memory_limiter>& ml,
sharded<qos::service_level_controller>& sl_controller, sharded<service::endpoint_lifecycle_notifier>& elc_notif,
sharded<netw::messaging_service>& ms,
sharded<netw::messaging_service>& ms, sharded<updateable_timeout_config>& timeout_config,
const db::config& cfg, scheduling_group_key cql_opcode_stats_key, maintenance_socket_enabled used_by_maintenance_socket,
seastar::scheduling_group sg)
: protocol_server(sg)
@@ -45,6 +45,7 @@ controller::controller(sharded<auth::service>& auth, sharded<service::migration_
, _mem_limiter(ml)
, _sl_controller(sl_controller)
, _messaging(ms)
, _timeout_config(timeout_config)
, _config(cfg)
, _cql_opcode_stats_key(cql_opcode_stats_key)
, _used_by_maintenance_socket(used_by_maintenance_socket)
@@ -255,7 +256,7 @@ future<> controller::do_start_server() {
shard_aware_transport_port_ssl = cfg.native_shard_aware_transport_port_ssl();
}
return cql_server_config {
.timeout_config = updateable_timeout_config(cfg),
.timeout_config = _timeout_config.local(),
.max_request_size = _mem_limiter.local().total_memory(),
.partitioner_name = cfg.partitioner(),
.sharding_ignore_msb = cfg.murmur3_partitioner_ignore_msb_bits(),

View File

@@ -30,6 +30,7 @@ namespace qos { class service_level_controller; }
namespace netw { class messaging_service; }
namespace db { class config; }
struct client_data;
class updateable_timeout_config;
namespace cql_transport {
@@ -50,6 +51,7 @@ class controller : public protocol_server {
sharded<service::memory_limiter>& _mem_limiter;
sharded<qos::service_level_controller>& _sl_controller;
sharded<netw::messaging_service>& _messaging;
sharded<updateable_timeout_config>& _timeout_config;
const db::config& _config;
scheduling_group_key _cql_opcode_stats_key;
@@ -70,7 +72,7 @@ public:
controller(sharded<auth::service>&, sharded<service::migration_notifier>&, sharded<gms::gossiper>&,
sharded<cql3::query_processor>&, sharded<service::memory_limiter>&,
sharded<qos::service_level_controller>&, sharded<service::endpoint_lifecycle_notifier>&,
sharded<netw::messaging_service>&,
sharded<netw::messaging_service>&, sharded<updateable_timeout_config>& timeout_config,
const db::config& cfg, scheduling_group_key cql_opcode_stats_key, maintenance_socket_enabled used_by_maintenance_socket,
seastar::scheduling_group sg);
virtual sstring name() const override;

View File

@@ -117,7 +117,7 @@ struct cql_query_state {
};
struct cql_server_config {
updateable_timeout_config timeout_config;
updateable_timeout_config& timeout_config;
size_t max_request_size;
sstring partitioner_name;
unsigned sharding_ignore_msb;