Numbers are not as written in thesis
- Background task that stores own heartbeats in the node database
- Background task to detect missing heartbeats
- Detected: run RemoveMachineFromNodeTask
- Background task to detect missing responsibilities
- Detected: run UpdateKeygroupSubscriptionsTask
- Background task to detect lost responsibilities for each keygroup for which subscriptions exist
- Detected: run UpdateKeygroupSubscriptionsTask
- Add client keygroup update/delete functionality incl. naming service validation
- Naming service approves: run UpdateKeygroupConfigTask
- Add encryption exception handling to subscriber
- Catched: get newest keygroup config version from naming service
- Run UpdateKeygroupConfigTask
- Background task that periodically polls all responsible keygroup configurations and node configurations for nodes present in the keygroups
- Keygroup: run UpdateKeygroupConfigTask
- Node: UpdateForeignNodeConfigTask
Needed if [4] is performed by other node
- Add background task that checks whether version of keygroup config changed
- Changed: Run UpdateKeygroupSubscriptionsTask
- Add configuration update handling to subscriber
- Run UpdateKeygroupConfigTask or UpdateForeignNodeConfigTask
- Remove all subscriptions for a given keygroup
- Create new subscriptions if all
true:
- node still apart of the keygroup
- keygroup not tombstoned
- no machine responsible yet/I am responsible
- Update responsibility table
Only run if version differs
- Put configuration in node database
- Run UpdateKeygroupSubscriptionsTask
- Publish config to all subscribers if started by [4]
Only run if the machines changed
- Put configuration in node database
- Get all keygroups in which node participates
- Run UpdateKeygroupSubscriptionsTask for keygroup
- Remove machine from responsibility table
- Remove machine from heartbeats table
- Rebuild nodeconfig and send to naming service
- Rebuild nodeconfig and publish to all subscribers for all keygroups
- UpdateKeygroupSubscriptionsTask
Not used here, is used by startup functionality
- Put heartbeat into heartbeats
- Rebuild nodeconfig and send to naming service
- Rebuild nodeconfig and publish to all subscribers for all keygroups (must be done by another node!)