...
The following is an overview of Hazelcast structures in CPS and NCMP, along with recommendations. Additional Implementation Proposals will be added.
Component | Hazelcast Structure | Type | Purpose | Recommendation | Implementation Proposal | Notes |
---|---|---|---|---|---|---|
CPS | anchorDataCache | Map<String, AnchorDataCacheEntry> | Needs Likely low risk, but needs further analysis | |||
NCMP | moduleSyncWorkQueue | BlockingQueue<DataNode> | Remove immediately | TBC | Entire CM handles are stored in work queue for module sync. This creates very high memory usage during CM handle registration. | |
NCMP | moduleSyncStartedOnCmHandles | Map<String, Object> | Remove immediately | TBC | ||
NCMP | dataSyncSemaphores | Map<String, Boolean> | Remove later | Low priority - 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. | ||
NCMP | trustLevelPerCmHandle | Map<String, TrustLevel> | Remove immediately | TBC | One entry is stored in memory per CM handle. This is directly implicated in logs supplied in investigation of out-of-memory errors in CPS-2146 | |
NCMP | trustLevelPerDmiPlugin | Map<String, TrustLevel> | Low risk, See notes | Low priority - there are only small number of DMIs, so this structure will not grow so large. However, if trustLevelPerCmHandle is being removed, this structure may be removed as part of the same solution. | ||
NCMP | cmNotificationSubscriptionCache | Map<String, Map<String, DmiCmNotificationSubscriptionDetails>> | Will need further analysis in future.; see notes | This is low priority, as the CM subscription feature is not yet implemented, thus it is not in use. It is unclear how much data will be stored in the structure. It is presumed to be low, as this structure will only hold pending subscriptions. |
...