Details
-
Enabler
-
Must have
-
None
-
True
-
Data Processing
-
-
-
3
-
3
-
0
-
REL-671 SDP 0.17.0
-
Team_ORCA
-
Sprint 5
-
-
-
-
22.3
-
Stories Completed, Integrated, Solution Intent Updated, BDD Testing Passes (no errors), Outcomes Reviewed, NFRS met, Demonstrated, Satisfies Acceptance Criteria, Accepted by FO
-
-
SOL-G4
Description
The etcd3-py client package that is used by the configuration library is no longer maintained; the last release was in April 2019. We have found problems with its performance that cause the controller components, especially the processing controller, to slow down significantly as more entries are added to the configuration DB (see SKB-180). For these reasons we need to replace the client package with one that is better maintained.
A promising candidate for this is python-etcd3. This client uses gRPC to connect to the server, so if we find the high-level interface is not suitable for doing certain things we could bypass it by using gRPC directly.
A stretch acceptance criterion is to optimise the performance of the watcher by using the updates sent by the server to cache values on the client side. This depends on fixing a bug in the server to do with the ordering of the watch responses and progress notifications that it sends.
Who?
- SDP developers and users.
What?
- New etcd backend for configuration library using alternative client package.
- Releases of the SDP and its processing scripts using the new backend.
- Stretch: optimise watcher by caching values from watch responses on the client side.
Why?
- Etcd client package (etcd3-py) used by configuration library is no longer maintained and has significant performance issues (see SKB-180).