Hi Daniel and KT,
In my mind, installation/configuration/execution have to be tree
distinct steps.
I think this will ease Qserv maintenance and modularity.
I'll try to provide a first implement of this modularity in
https://jira.lsstcorp.org/browse/DM-622.
It will respect next rules :
- eups install directory will only contain immutable data
- a qserv_run_dir directory will be created outside of eups stack, it
will contains configuration data, but also data related to execution
like datadir or pid files.
- In DM-622, there will be a 1 to 1 relationship between a qserv_run_dir
and a running Qserv instance. Here we will have to be carefull that a
given qserv_run_dir is compliant with the Qserv instance which use it.
I hope that my DM-622 proposal will be optimized in later tickets.
About Daniel proposal, I think that generating configuration files from
templates in init.d files can be a mix between configuration and execution ?
But this feature is worth being discussed : indeed the real
configuration data is in qserv.conf and templates files, and not in
configuration files which are only build products.
On my side, I think sysadmins would enjoy being able to update directly
configuration files and then restart services with theses updated versions.
Furthermore, a classical sysadmin may not have to understand Qserv
template procedure. He may run it only one time after install step in
order to generate configuration files, and then edit them by hand (This
doesn't prevent all worker configuration files to be on a shared system
which distribute them to all nodes.)
That's why I propose to implement soon DM-622, using you previous
remarks, and then to iterate from this first configuration procedure
prototype ?
Have a nice day,
Fabrice
On 05/30/2014 09:19 PM, Kian-Tat Lim wrote:
> Daniel,
>
>> I would like to push for not generating any config files for qserv
>> services during setup or installation. Instead, we create a template
>> qserv.conf.in, that is human-editable. When trying to start any
>> service (czar, worker, proxy, mysql?, etc.), the startup script
>> reads that qserv.conf.in and generates the configuration for that
>> particular service, logs it in the appropriate file, and starts it.
>> If we do this, the services should almost always be consistently
>> configured (or will be, after a process kill/restart).
> I like this, except perhaps for the human-editable part. For
> consistency across the cluster of machines, the meta-configuration needs
> to either be in a single shared repository or distributed in read-only
> form (the original source can be read/write).
>
> The other issue that comes to mind is this: if the
> meta-configuration is updated, is there a way to determine which
> underlying Qserv services need to be kicked/restarted, or do they all
> need to be? One possible mechanism is to regenerate the config file,
> check it against the current version, and leave the process alone if
> nothing has changed.
>
########################################################################
Use REPLY-ALL to reply to list
To unsubscribe from the QSERV-L list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=QSERV-L&A=1
|