aboutsummaryrefslogtreecommitdiffstats
path: root/cps-ncmp-service/src/main/java/org
diff options
context:
space:
mode:
authoremaclee <lee.anjella.macabuhay@est.tech>2024-12-09 13:00:25 +0000
committeremaclee <lee.anjella.macabuhay@est.tech>2024-12-09 14:23:32 +0000
commita7ef4032a55a8343bcf3117bc6d1e37eef919ddd (patch)
tree29689f81269da6cddb2c75f7da9b468f7d5fc750 /cps-ncmp-service/src/main/java/org
parent42dfa67015d7478eca07eb5778ec55c2c24c19a5 (diff)
Hazelcast Optimisation
Issue-ID: CPS-2420 Change-Id: I707e0fbbddeb4ddc7c573a2b3ebd8fbca08126a6 Signed-off-by: emaclee <lee.anjella.macabuhay@est.tech>
Diffstat (limited to 'cps-ncmp-service/src/main/java/org')
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/cache/HazelcastCacheConfig.java16
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/CmHandleQueryServiceImpl.java5
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/CmHandleRegistrationService.java3
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncTasks.java3
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncWatchdog.java3
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/SynchronizationCacheConfig.java3
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/DmiPluginTrustLevelWatchDog.java4
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelCacheConfig.java2
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelManager.java35
9 files changed, 46 insertions, 28 deletions
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/cache/HazelcastCacheConfig.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/cache/HazelcastCacheConfig.java
index 770dde1c08..75007e2e35 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/cache/HazelcastCacheConfig.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/cache/HazelcastCacheConfig.java
@@ -23,6 +23,7 @@ package org.onap.cps.ncmp.impl.cache;
import com.hazelcast.config.Config;
import com.hazelcast.config.MapConfig;
import com.hazelcast.config.NamedConfig;
+import com.hazelcast.config.NearCacheConfig;
import com.hazelcast.config.QueueConfig;
import com.hazelcast.config.RestEndpointGroup;
import com.hazelcast.config.SetConfig;
@@ -94,6 +95,21 @@ public class HazelcastCacheConfig {
return mapConfig;
}
+ protected static MapConfig createMapConfigWithTimeToLiveInSeconds(final String configName,
+ final int timeToLiveInSeconds) {
+ final MapConfig mapConfig = new MapConfig(configName);
+ mapConfig.setBackupCount(1);
+ mapConfig.setTimeToLiveSeconds(timeToLiveInSeconds);
+ return mapConfig;
+ }
+
+ protected static MapConfig createNearCacheMapConfig(final String configName) {
+ final MapConfig mapConfig = new MapConfig(configName);
+ mapConfig.setBackupCount(1);
+ mapConfig.setNearCacheConfig(new NearCacheConfig(configName));
+ return mapConfig;
+ }
+
protected static QueueConfig createQueueConfig(final String configName) {
final QueueConfig commonQueueConfig = new QueueConfig(configName);
commonQueueConfig.setBackupCount(1);
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/CmHandleQueryServiceImpl.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/CmHandleQueryServiceImpl.java
index 5610013863..c1291632de 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/CmHandleQueryServiceImpl.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/CmHandleQueryServiceImpl.java
@@ -26,6 +26,7 @@ import static org.onap.cps.ncmp.impl.inventory.NcmpPersistence.NCMP_DATASPACE_NA
import static org.onap.cps.ncmp.impl.inventory.NcmpPersistence.NCMP_DMI_REGISTRY_ANCHOR;
import static org.onap.cps.ncmp.impl.inventory.NcmpPersistence.NCMP_DMI_REGISTRY_PARENT;
+import com.hazelcast.map.IMap;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
@@ -59,10 +60,10 @@ public class CmHandleQueryServiceImpl implements CmHandleQueryService {
private final CpsQueryService cpsQueryService;
@Qualifier(TrustLevelCacheConfig.TRUST_LEVEL_PER_DMI_PLUGIN)
- private final Map<String, TrustLevel> trustLevelPerDmiPlugin;
+ private final IMap<String, TrustLevel> trustLevelPerDmiPlugin;
@Qualifier(TrustLevelCacheConfig.TRUST_LEVEL_PER_CM_HANDLE)
- private final Map<String, TrustLevel> trustLevelPerCmHandleId;
+ private final IMap<String, TrustLevel> trustLevelPerCmHandleId;
private final CpsValidator cpsValidator;
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/CmHandleRegistrationService.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/CmHandleRegistrationService.java
index daac63fce4..281d64edb4 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/CmHandleRegistrationService.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/CmHandleRegistrationService.java
@@ -319,7 +319,8 @@ public class CmHandleRegistrationService {
// CPS-1239 Robustness cleaning of in progress cache
private void removeDeletedCmHandleFromModuleSyncMap(final String cmHandleId) {
- if (moduleSyncStartedOnCmHandles.remove(cmHandleId) != null) {
+ if (moduleSyncStartedOnCmHandles.containsKey(cmHandleId)) {
+ moduleSyncStartedOnCmHandles.removeAsync(cmHandleId);
log.debug("{} removed from in progress map", cmHandleId);
}
}
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncTasks.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncTasks.java
index c97b284bf1..0d618cfa40 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncTasks.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncTasks.java
@@ -125,7 +125,8 @@ public class ModuleSyncTasks {
}
private void removeResetCmHandleFromModuleSyncMap(final String resetCmHandleId) {
- if (moduleSyncStartedOnCmHandles.remove(resetCmHandleId) != null) {
+ if (moduleSyncStartedOnCmHandles.containsKey(resetCmHandleId)) {
+ moduleSyncStartedOnCmHandles.removeAsync(resetCmHandleId);
log.info("{} removed from in progress map", resetCmHandleId);
}
}
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncWatchdog.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncWatchdog.java
index 74bef43d0b..3f2bb4f4ef 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncWatchdog.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncWatchdog.java
@@ -139,8 +139,7 @@ public class ModuleSyncWatchdog {
log.info("nextBatchCandidates size : {}", nextBatchCandidates.size());
for (final String cmHandleId : nextBatchCandidates) {
final boolean alreadyAddedToInProgressMap = VALUE_FOR_HAZELCAST_IN_PROGRESS_MAP.equals(
- moduleSyncStartedOnCmHandles.putIfAbsent(cmHandleId, VALUE_FOR_HAZELCAST_IN_PROGRESS_MAP,
- SynchronizationCacheConfig.MODULE_SYNC_STARTED_TTL_SECS, TimeUnit.SECONDS));
+ moduleSyncStartedOnCmHandles.putIfAbsent(cmHandleId, VALUE_FOR_HAZELCAST_IN_PROGRESS_MAP));
if (alreadyAddedToInProgressMap) {
log.info("module sync for {} already in progress by other instance", cmHandleId);
} else {
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/SynchronizationCacheConfig.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/SynchronizationCacheConfig.java
index 671e791ac2..def8f37eb7 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/SynchronizationCacheConfig.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/SynchronizationCacheConfig.java
@@ -43,7 +43,8 @@ public class SynchronizationCacheConfig extends HazelcastCacheConfig {
public static final int DATA_SYNC_SEMAPHORE_TTL_SECS = 1800;
private static final QueueConfig commonQueueConfig = createQueueConfig("defaultQueueConfig");
- private static final MapConfig moduleSyncStartedConfig = createMapConfig("moduleSyncStartedConfig");
+ private static final MapConfig moduleSyncStartedConfig =
+ createMapConfigWithTimeToLiveInSeconds("moduleSyncStartedConfig", MODULE_SYNC_STARTED_TTL_SECS);
private static final MapConfig dataSyncSemaphoresConfig = createMapConfig("dataSyncSemaphoresConfig");
private static final SetConfig moduleSetTagsBeingProcessedConfig
= createSetConfig("moduleSetTagsBeingProcessedConfig");
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/DmiPluginTrustLevelWatchDog.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/DmiPluginTrustLevelWatchDog.java
index aca485f53d..044e2b5553 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/DmiPluginTrustLevelWatchDog.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/DmiPluginTrustLevelWatchDog.java
@@ -20,8 +20,8 @@
package org.onap.cps.ncmp.impl.inventory.trustlevel;
+import com.hazelcast.map.IMap;
import java.util.Collection;
-import java.util.Map;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.onap.cps.ncmp.api.inventory.models.TrustLevel;
@@ -43,7 +43,7 @@ public class DmiPluginTrustLevelWatchDog {
private final TrustLevelManager trustLevelManager;
@Qualifier(TrustLevelCacheConfig.TRUST_LEVEL_PER_DMI_PLUGIN)
- private final Map<String, TrustLevel> trustLevelPerDmiPlugin;
+ private final IMap<String, TrustLevel> trustLevelPerDmiPlugin;
/**
* This class monitors the trust level of all DMI plugin by checking the health status
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelCacheConfig.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelCacheConfig.java
index f9ad3ff937..a11dec7ba6 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelCacheConfig.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelCacheConfig.java
@@ -34,7 +34,7 @@ public class TrustLevelCacheConfig extends HazelcastCacheConfig {
public static final String TRUST_LEVEL_PER_CM_HANDLE = "trustLevelPerCmHandle";
private static final MapConfig trustLevelPerCmHandleIdCacheConfig =
- createMapConfig("trustLevelPerCmHandleCacheConfig");
+ createNearCacheMapConfig("trustLevelPerCmHandleCacheConfig");
private static final MapConfig trustLevelPerDmiPluginCacheConfig =
createMapConfig("trustLevelPerDmiPluginCacheConfig");
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelManager.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelManager.java
index b61e53854e..6e896620c6 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelManager.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelManager.java
@@ -64,7 +64,7 @@ public class TrustLevelManager {
public void registerDmiPlugin(final DmiPluginRegistration dmiPluginRegistration) {
final String dmiServiceName = DmiServiceNameResolver.resolveDmiServiceName(RequiredDmiService.DATA,
dmiPluginRegistration);
- trustLevelPerDmiPlugin.put(dmiServiceName, TrustLevel.COMPLETE);
+ trustLevelPerDmiPlugin.putAsync(dmiServiceName, TrustLevel.COMPLETE);
}
/**
@@ -73,24 +73,22 @@ public class TrustLevelManager {
* @param cmHandlesToBeCreated a list of cmHandles being created
*/
public void registerCmHandles(final Map<String, TrustLevel> cmHandlesToBeCreated) {
+ final Map<String, TrustLevel> trustLevelPerCmHandleIdForCache = new HashMap<>();
for (final Map.Entry<String, TrustLevel> entry : cmHandlesToBeCreated.entrySet()) {
final String cmHandleId = entry.getKey();
- if (trustLevelPerCmHandleId.containsKey(cmHandleId)) {
- log.warn("Cm handle: {} already registered", cmHandleId);
- } else {
- TrustLevel initialTrustLevel = entry.getValue();
- if (initialTrustLevel == null) {
- initialTrustLevel = TrustLevel.COMPLETE;
- }
- trustLevelPerCmHandleId.put(cmHandleId, initialTrustLevel);
- if (TrustLevel.NONE.equals(initialTrustLevel)) {
- cmAvcEventPublisher.publishAvcEvent(cmHandleId,
+ TrustLevel initialTrustLevel = entry.getValue();
+ if (initialTrustLevel == null) {
+ initialTrustLevel = TrustLevel.COMPLETE;
+ }
+ trustLevelPerCmHandleIdForCache.put(cmHandleId, initialTrustLevel);
+ if (TrustLevel.NONE.equals(initialTrustLevel)) {
+ cmAvcEventPublisher.publishAvcEvent(cmHandleId,
AVC_CHANGED_ATTRIBUTE_NAME,
AVC_NO_OLD_VALUE,
initialTrustLevel.name());
- }
}
}
+ trustLevelPerCmHandleId.putAllAsync(trustLevelPerCmHandleIdForCache);
}
/**
@@ -105,7 +103,7 @@ public class TrustLevelManager {
final Collection<String> affectedCmHandleIds,
final TrustLevel newDmiTrustLevel) {
final TrustLevel oldDmiTrustLevel = trustLevelPerDmiPlugin.get(dmiServiceName);
- trustLevelPerDmiPlugin.put(dmiServiceName, newDmiTrustLevel);
+ trustLevelPerDmiPlugin.putAsync(dmiServiceName, newDmiTrustLevel);
for (final String affectedCmHandleId : affectedCmHandleIds) {
final TrustLevel cmHandleTrustLevel = trustLevelPerCmHandleId.get(affectedCmHandleId);
final TrustLevel oldEffectiveTrustLevel = cmHandleTrustLevel.getEffectiveTrustLevel(oldDmiTrustLevel);
@@ -131,7 +129,7 @@ public class TrustLevelManager {
final TrustLevel oldEffectiveTrustLevel = oldCmHandleTrustLevel.getEffectiveTrustLevel(dmiTrustLevel);
final TrustLevel newEffectiveTrustLevel = newCmHandleTrustLevel.getEffectiveTrustLevel(dmiTrustLevel);
- trustLevelPerCmHandleId.put(cmHandleId, newCmHandleTrustLevel);
+ trustLevelPerCmHandleId.putAsync(cmHandleId, newCmHandleTrustLevel);
sendAvcNotificationIfRequired(cmHandleId, oldEffectiveTrustLevel, newEffectiveTrustLevel);
}
@@ -174,10 +172,11 @@ public class TrustLevelManager {
* @param cmHandleIds cm handle ids to be removed from the cache
*/
public void removeCmHandles(final Collection<String> cmHandleIds) {
- for (final String cmHandleId : cmHandleIds) {
- if (trustLevelPerCmHandleId.remove(cmHandleId) == null) {
- log.debug("Removed Cm handle: {} is not in trust level cache", cmHandleId);
- }
+ final Set<String> cmHandlesToRemove = trustLevelPerCmHandleId.keySet().stream()
+ .filter(cmHandleIds::contains)
+ .collect(Collectors.toSet());
+ for (final String cmHandleId : cmHandlesToRemove) {
+ trustLevelPerCmHandleId.removeAsync(cmHandleId);
}
}