Optimal TTL value for Module Sync WD
[cps.git] / cps-ncmp-service / src / main / java / org / onap / cps / ncmp / api / impl / config / embeddedcache / SynchronizationCacheConfig.java
index abde4c2..5c3cb60 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * ============LICENSE_START========================================================
- *  Copyright (C) 2022 Nordix Foundation
+ *  Copyright (C) 2022-2023 Nordix Foundation
  *  ================================================================================
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -26,9 +26,8 @@ import com.hazelcast.config.NamedConfig;
 import com.hazelcast.config.QueueConfig;
 import com.hazelcast.core.Hazelcast;
 import com.hazelcast.core.HazelcastInstance;
-import java.util.Map;
+import com.hazelcast.map.IMap;
 import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.TimeUnit;
 import org.onap.cps.spi.model.DataNode;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -39,11 +38,12 @@ import org.springframework.context.annotation.Configuration;
 @Configuration
 public class SynchronizationCacheConfig {
 
+    public static final int MODULE_SYNC_STARTED_TTL_SECS = 120;
+    public static final int DATA_SYNC_SEMAPHORE_TTL_SECS = 1800;
+
     private static final QueueConfig commonQueueConfig = createQueueConfig();
-    private static final MapConfig moduleSyncStartedConfig =
-        createMapConfig("moduleSyncStartedConfig", TimeUnit.MINUTES.toSeconds(1));
-    private static final MapConfig dataSyncSemaphoresConfig =
-        createMapConfig("dataSyncSemaphoresConfig", TimeUnit.MINUTES.toSeconds(30));
+    private static final MapConfig moduleSyncStartedConfig = createMapConfig("moduleSyncStartedConfig");
+    private static final MapConfig dataSyncSemaphoresConfig = createMapConfig("dataSyncSemaphoresConfig");
 
     /**
      * Module Sync Distributed Queue Instance.
@@ -62,7 +62,7 @@ public class SynchronizationCacheConfig {
      * @return Map of cm handles (ids) and objects (not used really) for which module sync has started or been completed
      */
     @Bean
-    public Map<String, Object> moduleSyncStartedOnCmHandles() {
+    public IMap<String, Object> moduleSyncStartedOnCmHandles() {
         return createHazelcastInstance("moduleSyncStartedOnCmHandles", moduleSyncStartedConfig)
             .getMap("moduleSyncStartedOnCmHandles");
     }
@@ -73,7 +73,7 @@ public class SynchronizationCacheConfig {
      * @return configured map of data sync semaphores
      */
     @Bean
-    public Map<String, Boolean> dataSyncSemaphores() {
+    public IMap<String, Boolean> dataSyncSemaphores() {
         return createHazelcastInstance("dataSyncSemaphores", dataSyncSemaphoresConfig)
             .getMap("dataSyncSemaphores");
     }
@@ -102,11 +102,10 @@ public class SynchronizationCacheConfig {
         return commonQueueConfig;
     }
 
-    private static MapConfig createMapConfig(final String configName, final long timeToLiveSeconds) {
+    private static MapConfig createMapConfig(final String configName) {
         final MapConfig mapConfig = new MapConfig(configName);
         mapConfig.setBackupCount(3);
         mapConfig.setAsyncBackupCount(3);
-        mapConfig.setTimeToLiveSeconds((int) timeToLiveSeconds);
         return mapConfig;
     }