code: Add scheduling group to controllers
There are four of them currently -- transport, thrift, alternator and redis. This patch makes main pass to all the statement scheduling group as constructor argument. Next patches will make use of it. Signed-off-by: Pavel Emelyanov <xemul@scylladb.com>
This commit is contained in:
@@ -32,7 +32,8 @@ controller::controller(
|
||||
sharded<service::memory_limiter>& memory_limiter,
|
||||
sharded<auth::service>& auth_service,
|
||||
sharded<qos::service_level_controller>& sl_controller,
|
||||
const db::config& config)
|
||||
const db::config& config,
|
||||
seastar::scheduling_group sg)
|
||||
: _gossiper(gossiper)
|
||||
, _proxy(proxy)
|
||||
, _mm(mm)
|
||||
|
||||
@@ -80,7 +80,8 @@ public:
|
||||
sharded<service::memory_limiter>& memory_limiter,
|
||||
sharded<auth::service>& auth_service,
|
||||
sharded<qos::service_level_controller>& sl_controller,
|
||||
const db::config& config);
|
||||
const db::config& config,
|
||||
seastar::scheduling_group sg);
|
||||
|
||||
virtual sstring name() const override;
|
||||
virtual sstring protocol() const override;
|
||||
|
||||
10
main.cc
10
main.cc
@@ -1737,7 +1737,7 @@ To start the scylla server proper, simply invoke as: scylla server (or just scyl
|
||||
|
||||
maintenance_auth_service.start(perm_cache_config, std::ref(qp), std::ref(group0_client), std::ref(mm_notifier), std::ref(mm), maintenance_auth_config, maintenance_socket_enabled::yes).get();
|
||||
|
||||
cql_transport::controller cql_maintenance_server_ctl(maintenance_auth_service, mm_notifier, gossiper, qp, service_memory_limiter, sl_controller, lifecycle_notifier, *cfg, maintenance_cql_sg_stats_key, maintenance_socket_enabled::yes);
|
||||
cql_transport::controller cql_maintenance_server_ctl(maintenance_auth_service, mm_notifier, gossiper, qp, service_memory_limiter, sl_controller, lifecycle_notifier, *cfg, maintenance_cql_sg_stats_key, maintenance_socket_enabled::yes, dbcfg.statement_scheduling_group);
|
||||
|
||||
std::any stop_maintenance_auth_service;
|
||||
std::any stop_maintenance_cql;
|
||||
@@ -1966,7 +1966,7 @@ To start the scylla server proper, simply invoke as: scylla server (or just scyl
|
||||
|
||||
notify_set.notify_all(configurable::system_state::started).get();
|
||||
|
||||
cql_transport::controller cql_server_ctl(auth_service, mm_notifier, gossiper, qp, service_memory_limiter, sl_controller, lifecycle_notifier, *cfg, cql_sg_stats_key, maintenance_socket_enabled::no);
|
||||
cql_transport::controller cql_server_ctl(auth_service, mm_notifier, gossiper, qp, service_memory_limiter, sl_controller, lifecycle_notifier, *cfg, cql_sg_stats_key, maintenance_socket_enabled::no, dbcfg.statement_scheduling_group);
|
||||
|
||||
ss.local().register_protocol_server(cql_server_ctl);
|
||||
|
||||
@@ -1981,7 +1981,7 @@ To start the scylla server proper, simply invoke as: scylla server (or just scyl
|
||||
api::unset_transport_controller(ctx).get();
|
||||
});
|
||||
|
||||
::thrift_controller thrift_ctl(db, auth_service, qp, service_memory_limiter, ss, proxy);
|
||||
::thrift_controller thrift_ctl(db, auth_service, qp, service_memory_limiter, ss, proxy, dbcfg.statement_scheduling_group);
|
||||
|
||||
ss.local().register_protocol_server(thrift_ctl);
|
||||
|
||||
@@ -2002,7 +2002,7 @@ To start the scylla server proper, simply invoke as: scylla server (or just scyl
|
||||
api::unset_rpc_controller(ctx).get();
|
||||
});
|
||||
|
||||
alternator::controller alternator_ctl(gossiper, proxy, mm, sys_dist_ks, cdc_generation_service, service_memory_limiter, auth_service, sl_controller, *cfg);
|
||||
alternator::controller alternator_ctl(gossiper, proxy, mm, sys_dist_ks, cdc_generation_service, service_memory_limiter, auth_service, sl_controller, *cfg, dbcfg.statement_scheduling_group);
|
||||
sharded<alternator::expiration_service> es;
|
||||
std::any stop_expiration_service;
|
||||
|
||||
@@ -2027,7 +2027,7 @@ To start the scylla server proper, simply invoke as: scylla server (or just scyl
|
||||
}
|
||||
ss.local().register_protocol_server(alternator_ctl);
|
||||
|
||||
redis::controller redis_ctl(proxy, auth_service, mm, *cfg, gossiper);
|
||||
redis::controller redis_ctl(proxy, auth_service, mm, *cfg, gossiper, dbcfg.statement_scheduling_group);
|
||||
if (cfg->redis_port() || cfg->redis_ssl_port()) {
|
||||
with_scheduling_group(dbcfg.statement_scheduling_group, [&redis_ctl] {
|
||||
return redis_ctl.start_server();
|
||||
|
||||
@@ -20,7 +20,8 @@ static logging::logger slogger("controller");
|
||||
namespace redis {
|
||||
|
||||
controller::controller(seastar::sharded<service::storage_proxy>& proxy, seastar::sharded<auth::service>& auth_service,
|
||||
seastar::sharded<service::migration_manager>& mm, db::config& cfg, seastar::sharded<gms::gossiper>& gossiper)
|
||||
seastar::sharded<service::migration_manager>& mm, db::config& cfg, seastar::sharded<gms::gossiper>& gossiper,
|
||||
seastar::scheduling_group sg)
|
||||
: _proxy(proxy)
|
||||
, _db(proxy.local().data_dictionary())
|
||||
, _auth_service(auth_service)
|
||||
|
||||
@@ -64,7 +64,8 @@ private:
|
||||
seastar::future<> listen(seastar::sharded<auth::service>& auth_service, db::config& cfg);
|
||||
public:
|
||||
controller(seastar::sharded<service::storage_proxy>& proxy, seastar::sharded<auth::service>& auth_service,
|
||||
seastar::sharded<service::migration_manager>& mm, db::config& cfg, seastar::sharded<gms::gossiper>& gossiper);
|
||||
seastar::sharded<service::migration_manager>& mm, db::config& cfg, seastar::sharded<gms::gossiper>& gossiper,
|
||||
seastar::scheduling_group sg);
|
||||
~controller();
|
||||
virtual sstring name() const override;
|
||||
virtual sstring protocol() const override;
|
||||
|
||||
@@ -17,7 +17,8 @@ static logging::logger clogger("thrift_controller");
|
||||
|
||||
thrift_controller::thrift_controller(distributed<replica::database>& db, sharded<auth::service>& auth,
|
||||
sharded<cql3::query_processor>& qp, sharded<service::memory_limiter>& ml,
|
||||
sharded<service::storage_service>& ss, sharded<service::storage_proxy>& proxy)
|
||||
sharded<service::storage_service>& ss, sharded<service::storage_proxy>& proxy,
|
||||
seastar::scheduling_group sg)
|
||||
: _ops_sem(1)
|
||||
, _db(db)
|
||||
, _auth_service(auth)
|
||||
|
||||
@@ -46,7 +46,7 @@ class thrift_controller : public protocol_server {
|
||||
future<> do_stop_server();
|
||||
|
||||
public:
|
||||
thrift_controller(distributed<replica::database>&, sharded<auth::service>&, sharded<cql3::query_processor>&, sharded<service::memory_limiter>&, sharded<service::storage_service>& ss, sharded<service::storage_proxy>& proxy);
|
||||
thrift_controller(distributed<replica::database>&, sharded<auth::service>&, sharded<cql3::query_processor>&, sharded<service::memory_limiter>&, sharded<service::storage_service>& ss, sharded<service::storage_proxy>& proxy, seastar::scheduling_group sg);
|
||||
virtual sstring name() const override;
|
||||
virtual sstring protocol() const override;
|
||||
virtual sstring protocol_version() const override;
|
||||
|
||||
@@ -28,7 +28,8 @@ 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,
|
||||
const db::config& cfg, scheduling_group_key cql_opcode_stats_key, maintenance_socket_enabled used_by_maintenance_socket)
|
||||
const db::config& cfg, scheduling_group_key cql_opcode_stats_key, maintenance_socket_enabled used_by_maintenance_socket,
|
||||
seastar::scheduling_group sg)
|
||||
: _ops_sem(1)
|
||||
, _auth_service(auth)
|
||||
, _mnotifier(mn)
|
||||
|
||||
@@ -68,7 +68,8 @@ 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>&,
|
||||
const db::config& cfg, scheduling_group_key cql_opcode_stats_key, maintenance_socket_enabled used_by_maintenance_socket);
|
||||
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;
|
||||
virtual sstring protocol() const override;
|
||||
virtual sstring protocol_version() const override;
|
||||
|
||||
Reference in New Issue
Block a user