Runtime reconfiguration #2952

Open
opened 2018-10-15 14:53:39 +00:00 by crwood · 0 comments

Currently, any configuration-related changes made to a local Tahoe-LAFS node (e.g., editing tahoe.cfg, adding new storage servers via private/servers.yaml, or creating/joining magic-folders) will require that that node be restarted in order for the changes to take effect. Restarting a node during use, however, will naturally interrupt current upload/download operations and introduce additional user-facing delays (since, e.g., the restart command will typically take a couple of seconds to complete, additional time is needed for clients/nodes to reconnect, and so on).

Accordingly, it would be useful if "live" reconfiguration could be performed at runtime with any changes going into effect immediately and/or without requiring a full node restart. As one solution, perhaps the web API could be extended to support getting/setting various configuration params via GET/PUT/DELETE/POST methods (e.g., with POST /config/node?nickname=TestGrid being equivalent to setting nodenickname=TestGrid in tahoe.cfg and restarting). As a weaker (but still useful) solution, perhaps a tahoe reload CLI command could be introduced that would reload and apply any/all configuration changes without interrupting in-progress operations.

Of course, at this stage, these are just simple ideas but I would welcome additional input and discussion from anyone who may be interested on how to best implement something along these lines. :)

Currently, any configuration-related changes made to a local Tahoe-LAFS node (e.g., editing `tahoe.cfg`, adding new storage servers via `private/servers.yaml`, or creating/joining magic-folders) will require that that node be restarted in order for the changes to take effect. Restarting a node during use, however, will naturally interrupt current upload/download operations and introduce additional user-facing delays (since, e.g., the `restart` command will typically take a couple of seconds to complete, additional time is needed for clients/nodes to reconnect, and so on). Accordingly, it would be useful if "live" reconfiguration could be performed at runtime with any changes going into effect immediately and/or without requiring a full node restart. As one solution, perhaps the web API could be extended to support getting/setting various configuration params via GET/PUT/DELETE/POST methods (e.g., with `POST /config/node?nickname=TestGrid` being equivalent to setting `nodenickname=TestGrid` in `tahoe.cfg` and restarting). As a weaker (but still useful) solution, perhaps a `tahoe reload` CLI command could be introduced that would reload and apply any/all configuration changes without interrupting in-progress operations. Of course, at this stage, these are just simple ideas but I would welcome additional input and discussion from anyone who may be interested on how to best implement something along these lines. :)
crwood added the
code
normal
enhancement
1.12.1
labels 2018-10-15 14:53:39 +00:00
crwood added this to the undecided milestone 2018-10-15 14:53:39 +00:00
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Reference: tahoe-lafs/trac-2024-07-25#2952
No description provided.