From 87f676aececd177dc035147cffc169935f33f746 Mon Sep 17 00:00:00 2001
From: ZMai <zmai@slb.com>
Date: Fri, 30 Jun 2023 06:59:49 -0500
Subject: [PATCH] Split the ttl of records and record change info and increase
 the ttl of the record change info to reduce the chance of the unnecessary
 indexing chasing

(cherry picked from commit 40b0e1c760c15baeabd7735072c97c99314b37fc)
---
 .../osdu/indexer/cache/RecordChangeInfoCacheVmImpl.java  | 2 +-
 .../java/org/opengroup/osdu/indexer/model/Constants.java | 1 +
 .../indexer/azure/cache/RecordChangeInfoRedisCache.java  | 2 +-
 .../org/opengroup/osdu/indexer/azure/di/RedisConfig.java | 9 +++++++++
 4 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/cache/RecordChangeInfoCacheVmImpl.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/cache/RecordChangeInfoCacheVmImpl.java
index 24a3467f8..796d13186 100644
--- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/cache/RecordChangeInfoCacheVmImpl.java
+++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/cache/RecordChangeInfoCacheVmImpl.java
@@ -25,7 +25,7 @@ public class RecordChangeInfoCacheVmImpl implements IRecordChangeInfoCache {
     private VmCache<String, RecordChangeInfo> cache;
 
     public RecordChangeInfoCacheVmImpl() {
-        cache = new VmCache<>(Constants.DATA_CACHE_EXPIRATION, Constants.DATA_MAX_CACHE_SIZE);
+        cache = new VmCache<>(Constants.DATA_CHANGE_INFO_CACHE_EXPIRATION, Constants.DATA_MAX_CACHE_SIZE);
     }
 
     @Override
diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/Constants.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/Constants.java
index 2153c214c..5e4588e15 100644
--- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/Constants.java
+++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/Constants.java
@@ -25,5 +25,6 @@ public class Constants {
 
     // Data id itself is partition safe
     public static final int DATA_CACHE_EXPIRATION = 120;
+    public static final int DATA_CHANGE_INFO_CACHE_EXPIRATION = 3600;
     public static final int DATA_MAX_CACHE_SIZE = 20000;
 }
diff --git a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/RecordChangeInfoRedisCache.java b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/RecordChangeInfoRedisCache.java
index c8ab8ecbb..ed0097159 100644
--- a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/RecordChangeInfoRedisCache.java
+++ b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/cache/RecordChangeInfoRedisCache.java
@@ -30,7 +30,7 @@ public class RecordChangeInfoRedisCache extends RedisCache<String, RecordChangeI
     public RecordChangeInfoRedisCache(final @Named("REDIS_HOST") String host,
                                    final @Named("REDIS_PORT") int port,
                                    final @Named("REDIS_PASSWORD") String password,
-                                   final @Named("RECORDS_REDIS_TTL") int timeout,
+                                   final @Named("RECORD_CHANGE_INFO_REDIS_TTL") int timeout,
                                    @Value("${redis.database}")  final int database) {
         super(host, port, password, timeout, database, String.class, RecordChangeInfo.class);
     }
diff --git a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/di/RedisConfig.java b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/di/RedisConfig.java
index 8ed9134f0..3a98634b8 100644
--- a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/di/RedisConfig.java
+++ b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/di/RedisConfig.java
@@ -41,6 +41,9 @@ public class RedisConfig {
     @Value("${redis.records.ttl:120}")
     public int recordsTtl;
 
+    @Value("${redis.record.change.info.ttl:3600}")
+    public int recordChangeInfoTtl;
+
     @Bean
     @Named("REDIS_PORT")
     public int getRedisPort() {
@@ -71,6 +74,12 @@ public class RedisConfig {
         return recordsTtl;
     }
 
+    @Bean
+    @Named("RECORD_CHANGE_INFO_REDIS_TTL")
+    public int getRecordChangeInfoRedisTtl() {
+        return recordChangeInfoTtl;
+    }
+
     @Bean
     @Named("REDIS_HOST")
     public String redisHost(SecretClient kv) {
-- 
GitLab