Commit 42667343 authored by Giacomo Strangolino's avatar Giacomo Strangolino
Browse files

Update README.md

parent 49150849
......@@ -10,6 +10,8 @@ The supervision and failover relies on the contributions of
## Definitions
- *system*: the set of running cooperating services that make up the framework: several instances of caservers, ca-proxies, ca-supervisors, nginx.
- *caserver-delay*: the critical delay after the *expected* renewal of the *service* heartbeat. After this critical delay, a
recovery operation shall be undertaken.
......@@ -31,8 +33,9 @@ The supervision and failover relies on the contributions of
2. the dedicated caserver [plugin](https://gitlab.elettra.eu/puma/server/ca3-db-plugin) is loaded.
3. one *ca-proxy* talks with only one *caserver async* (and one only *caserver sync*, but the latter is not relevant in the
recovery context)
3. one *ca-proxy* talks with only one *caserver async* (and one only *caserver sync*, but the latter is not relevant in the recovery context)
4. *ca-proxies* do not store any state in memory, so that they can be restarted at any time without losing information, and failures have limited consequences, ideally compromising only the operation contextual to the failure.
## ca-proxy tasks
......@@ -71,10 +74,12 @@ of the *ca-proxy* depends on the request:
2. The *ca-supervisor* shall record a new *activity* into the *activities* database when a corresponding event (a new successfull source monitoring subscription) is received from [ca-proxy](https://gitlab.elettra.eu/puma/server/caserver-proxy).
3. The *ca-supervisor* shall delete an *activity* record from the *activities* database when a corresponding event (a successfull source unsubscribe) is received from [ca-proxy](https://gitlab.elettra.eu/puma/server/caserver-proxy).
3. The *ca-supervisor* shall delete an *activity* record from the *activities* database when a corresponding event (a source unsubscribe, successful or not) is received from [ca-proxy](https://gitlab.elettra.eu/puma/server/caserver-proxy).
4. The *ca-supervisor* shall support a *global* unsubscribe operation identified by the client ID indicated by the *ca-proxy*.
5. The *ca-supervisor* shall support multiple instances of the service. It must be designed so that two instances never modify the state of the *system* concurrently. In othe words, the design shall prevent two instances to make the same operation at the same time. For example, if a supervisor starts a recovery operation on a set of orphan activities, it shall delete them from the database before proceeding, so that another instance does not attempt to do the same operation on the same activities right after.
#### 1. fails
The *ca-supervisor* shall wait for some time (the failing *caserver* may be in the restart process), check again the *expected*
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment