Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Summary of Hazelcast structures for Module/Data Sync

StructureTypeNotes
moduleSyncWorkQueueBlockingQueue<DataNode>Entire CM handles are stored in work queue for module sync. This creates very high memory usage during CM handle registration. The use of this blocking queue likely causes issues with load balancing during module sync also.
moduleSyncStartedOnCmHandlesMap<String, Object>One entry is stored in memory per CM handle in ADVISED state.
dataSyncSemaphoresMap<String, Boolean>Note this map is only populated if data sync is enabled for a CM handle. If the feature is used, it will store one entry per CM handle with data sync enabled.

Consistency problems

Consistency problems are evidenced by log entries showing duplicate CM-handles being created:

...

draw.io Diagram
bordertrue
diagramNameProposed LCM State Machine
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth1091
revision23

Aside: For Module Upgrade, the state transition from READY to LOCKED to ADVISED could be simplified to READY to ADVISED.

A side effect of introducing a SYNCING state will be an additional LCM event notification.

Module Set Syncing

Proof of Concept

A PoC was constructed: WIP Remove hazelcast map for module sync | https://gerrit.nordix.org/c/onap/cps/+/20724

...