Implement sentinel based DB capacity scaling
For time being SDL has supported standalone DBAAS DB and DBAAS HA DB deployment
with Redis sentinel. With this commit extent SDL functionality to support Redis
sentinel based DB cluster where we have multiple DBAAS Redis sentinel groups
and these groups can be used to spread out SDL DB write and read operations to
different DB instances.
Implement cluster DBAAS DB service addresses reading from environment variable
'DBAAS_CLUSTER_ADDR_LIST'.
Implement crc32 hash value calculation from namespace string and selection of
a DB instance from DB cluster based on calculated hash.
Issue-ID: RIC-699
Signed-off-by: Timo Tietavainen <timo.tietavainen@nokia.com>
Change-Id: Ib325ca68e212bde80c1536b2392293ee76f8fe9e
diff --git a/ricsdl-package/examples/notify.py b/ricsdl-package/examples/notify.py
index 3041d80..473dd73 100755
--- a/ricsdl-package/examples/notify.py
+++ b/ricsdl-package/examples/notify.py
@@ -37,11 +37,19 @@
running Redis.
* Following environment variables are needed to set to the pod/container where the application
utilizing SDL is going to be run.
- DBAAS_SERVICE_HOST = [redis server address]
- DBAAS_SERVICE_PORT= [redis server port]
- DBAAS_MASTER_NAME = [master Redis sentinel name]. Needed to set only if sentinel is in use.
- DBAAS_SERVICE_SENTINEL_PORT = [Redis sentinel port number]. Needed to set only if sentinel
- is in use.
+ DBAAS_SERVICE_HOST = [DB service address]
+ DBAAS_SERVICE_PORT= [DB service port]
+ DBAAS_MASTER_NAME = [DB name]. Needed to set only if Redis sentinel is used to provide high
+ availability for Redis DB solution.
+ DBAAS_SERVICE_SENTINEL_PORT = [Redis sentinel port number]. Needed to set only if Redis
+ sentinel is in use.
+ DBASS_CLUSTER_ADDR_LIST = [list of DB service addresses]. Is set only if more than one
+ Redis sentinel groups are in use.
+ In official RIC deployments four first environment variables are defined in Helm configMaps
+ of the DBaaS and these configurations can be loaded automatically as environment variables
+ into application pods via `envFrom dbaas-appconfig` statement in an application Helm Charts.
+ The last environment variable is not for time being in use in official RIC deployments, only
+ in Nokia SEP deployments.
"""
import threading