DM-55013: Add support for configuring the replication system's services via a config file - #1083
Open
iagaponenko wants to merge 20 commits into
Open
iagaponenko wants to merge 20 commits into
iagaponenko wants to merge 20 commits into
Conversation
iagaponenko
force-pushed
the
tickets/DM-55013
branch
7 times, most recently
from
August 29, 2026 00:01
f18bbc0 to
08d47e7
Compare
iagaponenko
force-pushed
the
tickets/DM-55013
branch
3 times, most recently
from
September 9, 2026 04:21
94a7483 to
38f4543
Compare
iagaponenko
force-pushed
the
tickets/DM-55013
branch
from
September 14, 2026 17:39
38f4543 to
ff54924
Compare
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Unresolved configuration precedence and database forwarding defects, plus critical runtime and synchronization findings, block approval.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
This pull request migrates replication services to schema-driven Config objects and JSON configuration files.
Changes:
- Adds role-specific configuration schemas, parsers, defaults, and test data.
- Routes database, authentication, request, and service settings through
Config. - Updates applications, service APIs, CLI templates, and deployment configuration.
File summaries
| File | Change |
|---|---|
src/replica/worker/WorkerUtils.h |
Adds Config-aware database helpers. |
src/replica/worker/WorkerUtils.cc |
Uses configured worker database parameters. |
src/replica/worker/WorkerSqlRequest.h |
Updates request configuration documentation. |
src/replica/worker/WorkerSqlRequest.cc |
Uses configured worker database services. |
src/replica/worker/WorkerSqlHttpRequest.h |
Updates request configuration documentation. |
src/replica/worker/WorkerSqlHttpRequest.cc |
Uses configured database parameters. |
src/replica/worker/WorkerServerConnection.h |
Validates configured instance IDs. |
src/replica/worker/WorkerServerConnection.cc |
Migrates configuration includes. |
src/replica/worker/WorkerServer.h |
Updates configuration documentation. |
src/replica/worker/WorkerServer.cc |
Migrates configuration includes. |
src/replica/worker/WorkerRequest.h |
Updates timeout documentation. |
src/replica/worker/WorkerRequest.cc |
Uses the worker request timeout. |
src/replica/worker/WorkerReplicationRequest.h |
Updates request configuration documentation. |
src/replica/worker/WorkerReplicationRequest.cc |
Migrates configuration includes. |
src/replica/worker/WorkerProcessorThread.cc |
Migrates configuration exception handling. |
src/replica/worker/WorkerProcessor.h |
Updates processor configuration documentation. |
src/replica/worker/WorkerProcessor.cc |
Uses configured database settings and reloads. |
src/replica/worker/WorkerHttpSvcMod.cc |
Uses configured authentication and instance IDs. |
src/replica/worker/WorkerHttpSvc.cc |
Migrates configuration includes. |
src/replica/worker/WorkerHttpRequest.h |
Updates request configuration documentation. |
src/replica/worker/WorkerHttpRequest.cc |
Uses the worker request timeout. |
src/replica/worker/WorkerHttpProcessorThread.cc |
Migrates configuration exception handling. |
src/replica/worker/WorkerHttpProcessor.h |
Updates processor configuration documentation. |
src/replica/worker/WorkerHttpProcessor.cc |
Uses configured database settings and reloads. |
src/replica/worker/WorkerFindRequest.h |
Updates request configuration documentation. |
src/replica/worker/WorkerFindRequest.cc |
Uses Config for scanning and database creation. |
src/replica/worker/WorkerFindReplicaHttpRequest.h |
Updates request configuration documentation. |
src/replica/worker/WorkerFindReplicaHttpRequest.cc |
Adds Config-aware database creation. |
src/replica/worker/WorkerFindAllRequest.h |
Updates request configuration documentation. |
src/replica/worker/WorkerFindAllRequest.cc |
Uses Config for scanning and database creation. |
src/replica/worker/WorkerFindAllReplicasHttpRequest.h |
Updates request configuration documentation. |
src/replica/worker/WorkerFindAllReplicasHttpRequest.cc |
Adds Config-aware database creation. |
src/replica/worker/WorkerExporterHttpSvcMod.cc |
Uses configured authentication. |
src/replica/worker/WorkerExporterHttpSvc.cc |
Reports the configured instance ID. |
src/replica/worker/WorkerEchoRequest.h |
Updates request configuration documentation. |
src/replica/worker/WorkerEchoHttpRequest.h |
Updates request configuration documentation. |
src/replica/worker/WorkerDirectorIndexRequest.h |
Updates request configuration documentation. |
src/replica/worker/WorkerDirectorIndexRequest.cc |
Migrates configuration includes. |
src/replica/worker/WorkerDirectorIndexHttpRequest.h |
Updates request configuration documentation. |
src/replica/worker/WorkerDirectorIndexHttpRequest.cc |
Migrates configuration includes. |
src/replica/worker/WorkerDeleteRequest.h |
Updates request configuration documentation. |
src/replica/worker/WorkerDeleteRequest.cc |
Migrates configuration includes. |
src/replica/worker/WorkerDeleteReplicaHttpRequest.h |
Updates request configuration documentation. |
src/replica/worker/WorkerDeleteReplicaHttpRequest.cc |
Migrates configuration includes. |
src/replica/worker/WorkerCreateReplicaHttpRequest.h |
Updates request configuration documentation. |
src/replica/worker/WorkerCreateReplicaHttpRequest.cc |
Migrates configuration includes. |
src/replica/worker/FileServerConnection.h |
Updates file-service configuration documentation. |
src/replica/worker/FileServerConnection.cc |
Uses the configured instance ID. |
src/replica/worker/FileServer.h |
Updates file-service configuration documentation. |
src/replica/worker/FileServer.cc |
Migrates configuration includes. |
src/replica/worker/FileClient.h |
Adds Config declarations and documentation. |
src/replica/worker/FileClient.cc |
Uses the configured instance ID. |
src/replica/util/FileUtils.cc |
Migrates configuration includes. |
src/replica/services/DatabaseServicesPool.h |
Uses shared Config pointers. |
src/replica/services/DatabaseServicesPool.cc |
Constructs services from Config. |
src/replica/services/DatabaseServicesMySQL.h |
Stores Config and database-generator dependencies. |
src/replica/services/DatabaseServices.cc |
Creates MySQL services from Config. |
src/replica/services/ChunkMap.cc |
Uses configured Czar database parameters. |
src/replica/requests/StopRequest.cc |
Uses Config instance IDs and Controller messaging. |
src/replica/requests/StatusRequest.cc |
Uses Config instance IDs and Controller messaging. |
src/replica/requests/SqlRequest.cc |
Uses Config instance IDs and Controller messaging. |
src/replica/requests/ServiceManagementRequestBase.cc |
Uses Config instance IDs and Controller messaging. |
src/replica/requests/Request.h |
Updates request configuration documentation. |
src/replica/requests/Request.cc |
Uses controller request settings and messaging. |
src/replica/requests/ReplicationRequest.cc |
Uses Config instance IDs and Controller messaging. |
src/replica/requests/MessengerConnector.h |
Uses Config pointers and controller settings. |
src/replica/requests/MessengerConnector.cc |
Uses Config and retry settings. |
src/replica/requests/Messenger.h |
Uses Config pointers. |
src/replica/requests/Messenger.cc |
Constructs connectors from Config. |
src/replica/requests/FindRequest.cc |
Uses Config instance IDs and Controller messaging. |
src/replica/requests/FindAllRequest.cc |
Uses Config instance IDs and Controller messaging. |
src/replica/requests/EchoRequest.cc |
Uses Config instance IDs and Controller messaging. |
src/replica/requests/DisposeRequest.cc |
Uses Config instance IDs and Controller messaging. |
src/replica/requests/DirectorIndexRequest.cc |
Uses Config instance IDs and Controller messaging. |
src/replica/requests/DeleteRequest.cc |
Uses Config instance IDs and Controller messaging. |
src/replica/requests/CMakeLists.txt |
Updates request sources. |
src/replica/registry/RegistryHttpSvcMod.cc |
Uses configured authentication and instance IDs. |
src/replica/registry/RegistryHttpSvc.h |
Updates registry configuration documentation. |
src/replica/registry/RegistryHttpSvc.cc |
Reports the configured instance ID. |
src/replica/registry/Registry.cc |
Uses configured security and registry settings. |
src/replica/qserv/XrdCmsgetVnId.cc |
Parses worker database parameters directly. |
src/replica/qserv/TestEchoQservMgtRequest.h |
Updates request configuration documentation. |
src/replica/qserv/SetReplicasQservMgtRequest.h |
Updates request configuration documentation. |
src/replica/qserv/SetReplicasQservMgtRequest.cc |
Migrates configuration includes. |
src/replica/qserv/RemoveReplicaQservMgtRequest.h |
Updates request configuration documentation. |
src/replica/qserv/QservWorkerMgtRequest.cc |
Migrates configuration includes. |
src/replica/qserv/QservMgtRequest.h |
Updates request configuration documentation. |
src/replica/qserv/QservMgtRequest.cc |
Uses Config security and authentication settings. |
src/replica/qserv/QservCzarMgtRequest.cc |
Migrates configuration includes. |
src/replica/qserv/PostEventQservCzarMgtRequest.h |
Updates request configuration documentation. |
src/replica/qserv/GetStatusQservMgtRequest.h |
Updates request configuration documentation. |
src/replica/qserv/GetStatusQservCzarMgtRequest.h |
Updates request configuration documentation. |
src/replica/qserv/GetResultFilesQservMgtRequest.h |
Updates request configuration documentation. |
src/replica/qserv/GetReplicasQservMgtRequest.h |
Updates request configuration documentation. |
src/replica/qserv/GetReplicasQservMgtRequest.cc |
Migrates configuration includes. |
src/replica/qserv/GetQueryProgressQservCzarMgtRequest.h |
Updates request configuration documentation. |
src/replica/qserv/GetDbStatusQservMgtRequest.h |
Updates request configuration documentation. |
src/replica/qserv/GetConfigQservMgtRequest.h |
Updates request configuration documentation. |
src/replica/qserv/GetConfigQservCzarMgtRequest.h |
Updates request configuration documentation. |
src/replica/qserv/AddReplicaQservMgtRequest.h |
Updates request configuration documentation. |
src/replica/mysql/DatabaseMySQL.cc |
Adds configurable connection defaults. |
src/replica/jobs/SqlRowStatsJob.h |
Updates job configuration documentation. |
src/replica/jobs/SqlRowStatsJob.cc |
Migrates configuration includes. |
src/replica/jobs/SqlRemoveTablePartitionsJob.h |
Updates job configuration documentation. |
src/replica/jobs/SqlQueryJob.h |
Updates job configuration documentation. |
src/replica/jobs/SqlQueryJob.cc |
Migrates configuration includes. |
src/replica/jobs/SqlJob.h |
Updates job configuration documentation. |
src/replica/jobs/SqlJob.cc |
Uses controller request concurrency settings. |
src/replica/jobs/SqlGrantAccessJob.h |
Updates job configuration documentation. |
src/replica/jobs/SqlGrantAccessJob.cc |
Migrates configuration includes. |
src/replica/jobs/SqlGetIndexesJob.h |
Updates job configuration documentation. |
src/replica/jobs/SqlEnableDbJob.h |
Updates job configuration documentation. |
src/replica/jobs/SqlEnableDbJob.cc |
Migrates configuration includes. |
src/replica/jobs/SqlDropIndexesJob.h |
Updates job configuration documentation. |
src/replica/jobs/SqlDisableDbJob.h |
Updates job configuration documentation. |
src/replica/jobs/SqlDisableDbJob.cc |
Migrates configuration includes. |
src/replica/jobs/SqlDeleteTablePartitionJob.h |
Updates job configuration documentation. |
src/replica/jobs/SqlDeleteTablePartitionJob.cc |
Migrates configuration includes. |
src/replica/jobs/SqlDeleteTableJob.h |
Updates job configuration documentation. |
src/replica/jobs/SqlDeleteDbJob.h |
Updates job configuration documentation. |
src/replica/jobs/SqlDeleteDbJob.cc |
Migrates configuration includes. |
src/replica/jobs/SqlCreateTablesJob.h |
Updates job configuration documentation. |
src/replica/jobs/SqlCreateTableJob.h |
Updates job configuration documentation. |
src/replica/jobs/SqlCreateTableJob.cc |
Migrates configuration includes. |
src/replica/jobs/SqlCreateIndexesJob.h |
Updates job configuration documentation. |
src/replica/jobs/SqlCreateDbJob.h |
Updates job configuration documentation. |
src/replica/jobs/SqlCreateDbJob.cc |
Migrates configuration includes. |
src/replica/jobs/SqlAlterTablesJob.h |
Updates job configuration documentation. |
src/replica/jobs/ServiceManagementJob.h |
Uses Config declarations and documentation. |
src/replica/jobs/ServiceManagementJob.cc |
Updates configuration documentation. |
src/replica/jobs/ReplicateJob.cc |
Uses controller request concurrency settings. |
src/replica/jobs/RebalanceJob.h |
Updates job configuration documentation. |
src/replica/jobs/RebalanceJob.cc |
Uses controller request concurrency settings. |
src/replica/jobs/QservSyncJob.h |
Updates job configuration documentation. |
src/replica/jobs/QservSyncJob.cc |
Uses Config exceptions and Controller services. |
src/replica/jobs/QservStatusJob.h |
Updates job configuration documentation. |
src/replica/jobs/QservStatusJob.cc |
Uses Controller Qserv management services. |
src/replica/jobs/QservGetReplicasJob.cc |
Uses Controller Qserv management services. |
src/replica/jobs/PurgeJob.cc |
Uses controller request concurrency settings. |
src/replica/jobs/MoveReplicaJob.cc |
Migrates configuration includes. |
src/replica/jobs/Job.h |
Updates job configuration documentation. |
src/replica/jobs/Job.cc |
Migrates configuration includes. |
src/replica/jobs/FixUpJob.cc |
Uses controller request concurrency settings. |
src/replica/jobs/FindAllJob.cc |
Updates configuration documentation. |
src/replica/jobs/DirectorIndexJob.h |
Updates job configuration documentation. |
src/replica/jobs/DirectorIndexJob.cc |
Uses controller database and request settings. |
src/replica/jobs/DeleteWorkerJob.cc |
Updates configuration documentation. |
src/replica/jobs/DeleteReplicaJob.cc |
Uses Controller Qserv management services. |
src/replica/jobs/CreateReplicaJob.cc |
Uses Controller Qserv management services. |
src/replica/jobs/ClusterHealthJob.h |
Updates job configuration documentation. |
src/replica/jobs/ClusterHealthJob.cc |
Uses Controller Qserv management services. |
src/replica/jobs/AbortTransactionJob.h |
Updates job configuration documentation. |
src/replica/jobs/AbortTransactionJob.cc |
Migrates configuration includes. |
src/replica/ingest/IngestRequestMgr.h |
Updates ingest configuration documentation. |
src/replica/ingest/IngestRequest.h |
Updates ingest configuration documentation. |
src/replica/ingest/IngestRequest.cc |
Migrates configuration includes. |
src/replica/ingest/IngestHttpSvcMod.cc |
Uses configured authentication. |
src/replica/ingest/IngestHttpSvc.h |
Updates ingest configuration documentation. |
src/replica/ingest/IngestHttpSvc.cc |
Reports the configured instance ID. |
src/replica/ingest/IngestFileSvc.h |
Uses Config declarations. |
src/replica/ingest/IngestFileSvc.cc |
Uses configured worker database parameters. |
src/replica/ingest/IngestFileHttpSvcMod.cc |
Uses configured authentication. |
src/replica/ingest/IngestDataHttpSvcMod.cc |
Uses configured authentication. |
src/replica/contr/Task.h |
Moves synchronization settings into Config. |
src/replica/contr/Task.cc |
Reads synchronization settings from Config. |
src/replica/contr/ReplicationTask.h |
Simplifies task construction around Config. |
src/replica/contr/HttpWorkerStatusModule.h |
Removes obsolete processor configuration. |
src/replica/contr/HttpWorkerStatusModule.cc |
Removes obsolete processor configuration. |
src/replica/contr/HttpSqlSchemaModule.h |
Removes obsolete processor configuration. |
src/replica/contr/HttpSqlSchemaModule.cc |
Removes obsolete processor configuration. |
src/replica/contr/HttpSqlIndexModule.h |
Removes obsolete processor configuration. |
src/replica/contr/HttpSqlIndexModule.cc |
Removes obsolete processor configuration. |
src/replica/contr/HttpRequestsModule.h |
Removes obsolete processor configuration. |
src/replica/contr/HttpRequestsModule.cc |
Removes obsolete processor configuration. |
src/replica/contr/HttpReplicationLevelsModule.h |
Removes obsolete processor configuration. |
src/replica/contr/HttpReplicationLevelsModule.cc |
Removes obsolete processor configuration. |
src/replica/contr/HttpQservSqlModule.h |
Removes obsolete processor configuration. |
src/replica/contr/HttpQservSqlModule.cc |
Removes obsolete processor configuration. |
src/replica/contr/HttpQservMonitorModule.h |
Uses Config and Czar database settings. |
src/replica/contr/HttpProcessorConfig.h |
Removes the obsolete processor configuration type. |
src/replica/contr/HttpProcessor.h |
Uses Config-backed processor settings. |
src/replica/contr/HttpModule.h |
Uses Config-backed HTTP settings. |
src/replica/contr/HttpJobsModule.h |
Removes obsolete processor configuration. |
src/replica/contr/HttpJobsModule.cc |
Removes obsolete processor configuration. |
src/replica/contr/HttpIngestTransModule.h |
Removes obsolete processor configuration. |
src/replica/contr/HttpIngestTransModule.cc |
Removes obsolete processor configuration. |
src/replica/contr/HttpIngestModule.h |
Removes obsolete processor configuration. |
src/replica/contr/HttpIngestConfigModule.h |
Removes obsolete processor configuration. |
src/replica/contr/HttpIngestConfigModule.cc |
Removes obsolete processor configuration. |
src/replica/contr/HttpIngestChunksModule.h |
Removes obsolete processor configuration. |
src/replica/contr/HttpIngestChunksModule.cc |
Removes obsolete processor configuration. |
src/replica/contr/HttpExportModule.h |
Removes obsolete processor configuration. |
src/replica/contr/HttpExportModule.cc |
Uses Config-backed export settings. |
src/replica/contr/HttpDirectorIndexModule.h |
Removes obsolete processor configuration. |
src/replica/contr/HttpDirectorIndexModule.cc |
Uses Config-backed index settings. |
src/replica/contr/HttpControllersModule.h |
Removes obsolete processor configuration. |
src/replica/contr/HttpControllersModule.cc |
Removes obsolete processor configuration. |
src/replica/contr/HttpCatalogsModule.h |
Removes obsolete processor configuration. |
src/replica/contr/HttpCatalogsModule.cc |
Removes obsolete processor configuration. |
src/replica/contr/DeleteWorkerTask.h |
Moves eviction settings into Config. |
src/replica/contr/DeleteWorkerTask.cc |
Reads eviction settings from Config. |
src/replica/contr/Controller.h |
Adds controller-owned services and synchronization. |
src/replica/contr/Controller.cc |
Implements lazy controller services and shutdown. |
src/replica/contr/CMakeLists.txt |
Renames the HTTP configuration module source. |
src/replica/config/ConfigTestDataWorker.h |
Adds worker configuration test declarations. |
src/replica/config/ConfigTestDataRegistry.h |
Adds registry configuration test declarations. |
src/replica/config/ConfigTestDataRegistry.cc |
Defines registry configuration test data. |
src/replica/config/ConfigTestDataController.h |
Adds controller configuration test declarations. |
src/replica/config/ConfigSchemaWorker.h |
Adds the worker configuration schema. |
src/replica/config/ConfigSchemaRegistry.h |
Adds the registry configuration schema. |
src/replica/config/ConfigSchemaRegistry.cc |
Defines registry schema defaults. |
src/replica/config/ConfigSchemaController.h |
Adds the controller configuration schema. |
src/replica/config/ConfigParserMySQL.h |
Simplifies MySQL configuration parsing. |
src/replica/config/ConfigParserMySQL.cc |
Simplifies MySQL configuration parsing. |
src/replica/config/ConfigParserJSON.h |
Adds schema-aware JSON validation. |
src/replica/config/ConfigParserJSON.cc |
Implements schema-aware JSON parsing. |
src/replica/config/ConfigExceptions.h |
Adds Config-specific exceptions. |
src/replica/config/ConfigDatabase.cc |
Migrates configuration exception handling. |
src/replica/config/CMakeLists.txt |
Builds Config schemas and test data. |
src/replica/CMakeLists.txt |
Renames the configuration test target. |
src/replica/apps/WorkerApp.h |
Removes legacy worker CLI state. |
src/replica/apps/WorkerApp.cc |
Initializes the worker Config schema. |
src/replica/apps/TestAwsS3App.cc |
Updates the application constructor API. |
src/replica/apps/RegistryHttpApp.cc |
Initializes the registry Config schema. |
src/replica/apps/QservXrootdSsiApp.cc |
Updates the application constructor API. |
src/replica/apps/MasterControllerHttpApp.h |
Removes legacy controller CLI state. |
src/http/Auth.h |
Adds authentication-context comparisons. |
python/lsst/qserv/admin/cli/options.py |
Removes obsolete replication options. |
python/lsst/qserv/admin/cli/entrypoint.py |
Updates replication service command templates. |
deploy/compose/docker-compose.yml |
Supplies schema-based service configuration. |
Review details
Suppressed comments (15)
src/replica/apps/Application.cc:124
- The command-line option values are initialized from every schema default, and
OptionParserleaves them unchanged when an option is absent. The later loop therefore writes those defaults back afterconfig->update(_configFile), overwriting non-empty values supplied by the JSON config file before the service starts. Track which options were explicitly provided (or otherwise apply only explicit overrides) so the documented config-file precedence is preserved.
if (!value.empty()) {
config->setFromString(category, param, value);
src/replica/apps/MasterControllerHttpApp.cc:86
- Passing the schema here enables
--config, butApplication::runinitializes every generated option to its schema default and reapplies all non-empty values afterconfig->update(_configFile). Since omitted options retain those defaults, values from a JSON config file are overwritten before the service starts, so the new file-based configuration cannot take effect. Track explicitly supplied options (or apply CLI overrides before the file) in the shared application setup.
: Application(argc, argv, ::description, ::enableServiceProvider, ConfigSchemaController()) {}
src/replica/apps/WorkerApp.cc:69
- This constructor enables the new schema-driven configuration path, but the shared
Application::run()logic initializes every general option to its schema default and then writes every non-empty_generalParamsvalue after loading--config. As a result, non-empty values from the JSON file (for exampledatabase.worker-db-connorsecurity.instance-id) are immediately replaced by defaults unless they are also supplied on the command line, so the advertised config-file support is ineffective. Track whether an option was explicitly provided before applying it.
: Application(argc, argv, ::description, ::enableServiceProvider, ConfigSchemaWorker()) {}
src/replica/config/ConfigSchema.cc:27
- This file calls
min(8, num_threads)insharedSchema()but does not include<algorithm>, relying on transitive headers to declarestd::min. Add the direct standard-library include so the renamed schema implementation does not depend on include order.
#include <stdexcept>
#include <thread>
src/replica/config/ConfigSchemaController.cc:27
- This translation unit uses
min(8, num_threads)below, but it does not include<algorithm>. It currently relies on a transitive include to declarestd::min; include the header directly so this new schema implementation remains portable and does not fail when those transitive includes change.
#include <thread>
src/replica/config/ConfigTestDataRegistry.h:37
- This documentation still names the old
ConfigTestDataclass even though the declaration below isConfigTestDataRegistry, which makes generated/API documentation and diagnostics misleading. Update the class name in the description.
src/replica/mysql/DatabaseMySQL.cc:88 - These atomics are initialized from the Config only once during application startup. The HTTP configuration API can later change
database.allow-reconnect,database.connect-timeout-sec, ordatabase.max-reconnects, butConnection::open()andexecute()now read the stale atomics, so subsequent connections and retries ignore those runtime configuration updates. Keep the connector defaults synchronized whenever Config changes, or read the current Config at these use sites.
src/replica/worker/WorkerDeleteRequest.h:60 - This factory documentation still says a zero timeout is taken from the Controller-side request configuration, but the worker implementation now reads
worker.request-timeout-sec(WorkerRequest.cc:81). Update the description to identify the worker-side timeout.
src/replica/worker/WorkerDirectorIndexRequest.h:69 - This factory documentation still says a zero timeout is taken from the Controller-side request configuration, but the worker implementation now uses
worker.request-timeout-sec(WorkerRequest.cc:81). Update the description to identify the worker-side timeout.
src/replica/worker/WorkerEchoRequest.h:60 - This factory documentation still says a zero timeout is taken from the Controller-side request configuration, but the worker implementation now reads
worker.request-timeout-sec(WorkerRequest.cc:81). Update the description to identify the worker-side timeout.
src/replica/worker/WorkerFindAllRequest.h:59 - This factory documentation still says a zero timeout is taken from the Controller-side request configuration, but the worker implementation now reads
worker.request-timeout-sec(WorkerRequest.cc:81). Update the description to identify the worker-side timeout.
src/replica/worker/WorkerFindRequest.h:63 - This factory documentation still says a zero timeout is taken from the Controller-side request configuration, but the worker implementation now reads
worker.request-timeout-sec(WorkerRequest.cc:81). Update the description to identify the worker-side timeout.
src/replica/worker/WorkerReplicationRequest.h:70 - This factory documentation still says a zero timeout is taken from the Controller-side request configuration, but the worker implementation now reads
worker.request-timeout-sec(WorkerRequest.cc:81). Update the description to identify the worker-side timeout.
src/replica/worker/WorkerRequest.h:209 - This factory documentation still says a zero timeout is taken from the Controller-side request configuration, but the implementation now reads
worker.request-timeout-sec(WorkerRequest.cc:81). Update the description to say the worker-side timeout so callers are not misled about which configuration controls expiration.
src/replica/worker/WorkerSqlRequest.h:72 - This factory documentation still says a zero timeout is taken from the Controller-side request configuration, but the worker implementation now reads
worker.request-timeout-sec(WorkerRequest.cc:81). Update the description to identify the worker-side timeout.
- Files reviewed: 259/259 changed files
- Comments generated: 4
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
iagaponenko
force-pushed
the
tickets/DM-55013
branch
6 times, most recently
from
September 19, 2026 00:36
72e66c7 to
5df63b1
Compare
The older name of the parameter "--config" was replaced with a more appropriate name "--repl-db". The new name is consistent with similar parameters where the connection URLs are provided. The names of the variables in the Replication Framework's code were adjusted accordingly from "configUrl" to "replDbUrl". The integration test was updated to follow the change. Another reason for this refactoring was to reuse the command line parameter "--config" for passing the INI-formatted configuration files into the applications.
The previous implementation was made the worker services depend on the default value of the timeout. This assumption was incorrect since the timeout could be explicitly changed in the Controller causing inconsistent expectations on the lifetime of the requests. The new parameter addresses this problem by allowing consistent configurations of these services in the Qserv deployments.
The parameter sets the number of requests sent per worker. In the older implementation the Controller was depending on the number of the service threads at the worker. The new parameter breaks the configuration dependency on the worker and allows more flexibility in configuring the Controller.
The older implementation had an incorrect dependency on the worker-specific parameter.
Each service of the Replication-Ingest system is now configured with its own set of the configuration parameters.
Pushed the Messenger and QservMgtServices services from the provider down to the Controller which is better scope for the service since it's only used by the worker requests initiated via the Controller. This change also make the provider more suitable to use in applications (worker and Registry) where no communications with workers are required.
Simplified implementation of the Controller class.
The obsolete parameters are no longer used by the Controller or the Registry
This change is meant to reduce impedance when reading and understanding the Replication/Ingest system's code.
In the older representaion, the schemas were constructed from the very large initialization lists. This approach was eror prone. It was hard to read (by a human), and it was fragile (for modifications). Besides, there was agreat deal of duplication in the parameter definitions. The new code addresses these problem.
Fixed a bug in the JSON config parser.
iagaponenko
force-pushed
the
tickets/DM-55013
branch
from
September 19, 2026 07:41
5df63b1 to
6e2a980
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.