diff --git a/partition-core/src/main/java/org/opengroup/osdu/partition/service/CachedPartitionServiceImpl.java b/partition-core/src/main/java/org/opengroup/osdu/partition/service/CachedPartitionServiceImpl.java
index d5a897da4212d9d53ae2bd26e0ae4fcf822fc110..0591dba13deeaa9a618a28eb5324a29c5792b599 100644
--- a/partition-core/src/main/java/org/opengroup/osdu/partition/service/CachedPartitionServiceImpl.java
+++ b/partition-core/src/main/java/org/opengroup/osdu/partition/service/CachedPartitionServiceImpl.java
@@ -50,7 +50,7 @@ public class CachedPartitionServiceImpl implements IPartitionService {
 
         if (pi != null) {
             partitionServiceCache.put(partitionId, partitionInfo);
-            partitionListCache.clearAll();
+            partitionListCache.get(PARTITION_LIST_KEY).add(partitionId);
         }
 
         return pi;
@@ -87,7 +87,7 @@ public class CachedPartitionServiceImpl implements IPartitionService {
         if (partitionService.deletePartition(partitionId)) {
             if (partitionServiceCache.get(partitionId) != null) {
                 partitionServiceCache.delete(partitionId);
-                partitionListCache.clearAll();
+                partitionListCache.get(PARTITION_LIST_KEY).remove(partitionId);
             }
 
             return true;
diff --git a/partition-core/src/test/java/org/opengroup/osdu/partition/service/CachedPartitionServiceImplTest.java b/partition-core/src/test/java/org/opengroup/osdu/partition/service/CachedPartitionServiceImplTest.java
index 7f737a44821cb64750b7c9617fd8a0ab6d307473..46601bc6c91007212d80813f3b5e49ef499b6eec 100644
--- a/partition-core/src/test/java/org/opengroup/osdu/partition/service/CachedPartitionServiceImplTest.java
+++ b/partition-core/src/test/java/org/opengroup/osdu/partition/service/CachedPartitionServiceImplTest.java
@@ -44,20 +44,25 @@ public class CachedPartitionServiceImplTest {
     @InjectMocks
     private CachedPartitionServiceImpl cachedPartitionServiceImpl;
 
+    private static final String PARTITION_LIST_KEY = "getAllPartitions";
+
     @Test
     public void createPartitionSucceed() {
         String partId = "key";
 
+        List<String> partitions = new ArrayList<>();
+
         PartitionInfo newPi = PartitionInfo.builder().build();
         PartitionInfo retPi = PartitionInfo.builder().build();
 
         when(partitionServiceImpl.createPartition(partId, newPi)).thenReturn(retPi);
+        when(partitionListCache.get(PARTITION_LIST_KEY)).thenReturn(partitions);
 
         cachedPartitionServiceImpl.createPartition(partId, newPi);
 
         verify(partitionServiceImpl, times(1)).createPartition(partId, newPi);
         verify(partitionServiceCache, times(1)).put(partId, retPi);
-        verify(partitionListCache, times(1)).clearAll();
+        verify(partitionListCache, times(1)).get(PARTITION_LIST_KEY);
     }
 
     @Test
@@ -72,7 +77,7 @@ public class CachedPartitionServiceImplTest {
 
         verify(partitionServiceImpl, times(1)).createPartition(partId, newPi);
         verify(partitionServiceCache, times(0)).put(any(), any());
-        verify(partitionListCache, times(0)).clearAll();
+        verify(partitionListCache, times(0)).get(PARTITION_LIST_KEY);
         verify(partitionServiceCache, times(1)).get(any());
     }
 
@@ -125,15 +130,18 @@ public class CachedPartitionServiceImplTest {
         String partId = "key";
         PartitionInfo retPi = PartitionInfo.builder().build();
 
+        List<String> partitions = new ArrayList<>();
+
         when(partitionServiceImpl.deletePartition(partId)).thenReturn(true);
         when(partitionServiceCache.get(partId)).thenReturn(retPi);
+        when(partitionListCache.get(PARTITION_LIST_KEY)).thenReturn(partitions);
 
         cachedPartitionServiceImpl.deletePartition(partId);
 
         verify(partitionServiceImpl, times(1)).deletePartition(partId);
         verify(partitionServiceCache, times(1)).delete(partId);
         verify(partitionServiceCache, times(1)).get(partId);
-        verify(partitionListCache, times(1)).clearAll();
+        verify(partitionListCache, times(1)).get(PARTITION_LIST_KEY);
     }
 
     @Test
@@ -142,10 +150,9 @@ public class CachedPartitionServiceImplTest {
 
         when(partitionServiceImpl.getAllPartitions()).thenReturn(partitions);
         cachedPartitionServiceImpl.getAllPartitions();
-        String partKey = "getAllPartitions";
-        verify(partitionListCache, times(1)).get(partKey);
+        verify(partitionListCache, times(1)).get(PARTITION_LIST_KEY);
         verify(partitionServiceImpl, times(1)).getAllPartitions();
-        verify(partitionListCache, times(1)).put(partKey, partitions);
+        verify(partitionListCache, times(1)).put(PARTITION_LIST_KEY, partitions);
     }
 
 }
\ No newline at end of file