This is an automated email from the ASF dual-hosted git repository.

liuxun pushed a commit to branch fix-cache
in repository https://gitbox.apache.org/repos/asf/gravitino.git

commit 2bdb9cbd11a13f227278c1c597c5a64dc2deb642
Author: Xun <[email protected]>
AuthorDate: Fri Aug 22 10:44:18 2025 +0800

    temp
---
 .../gravitino/cache/CaffeineEntityCache.java       | 62 ++++++++++++++++++----
 1 file changed, 51 insertions(+), 11 deletions(-)

diff --git 
a/core/src/main/java/org/apache/gravitino/cache/CaffeineEntityCache.java 
b/core/src/main/java/org/apache/gravitino/cache/CaffeineEntityCache.java
index fccf79c810..030ee44557 100644
--- a/core/src/main/java/org/apache/gravitino/cache/CaffeineEntityCache.java
+++ b/core/src/main/java/org/apache/gravitino/cache/CaffeineEntityCache.java
@@ -52,6 +52,7 @@ import org.apache.gravitino.HasIdentifier;
 import org.apache.gravitino.NameIdentifier;
 import org.apache.gravitino.Namespace;
 import org.apache.gravitino.SupportsRelationOperations;
+import org.apache.gravitino.meta.GroupEntity;
 import org.apache.gravitino.meta.ModelVersionEntity;
 import org.apache.gravitino.meta.UserEntity;
 import org.apache.gravitino.utils.NamespaceUtil;
@@ -310,9 +311,6 @@ public class CaffeineEntityCache extends BaseEntityCache {
       newEntities = new ArrayList<>(merged);
     }
 
-    // DEBUG code
-    check_cache();
-
     List<String> allCacheIndexKeys1 = Lists.newArrayList();
     cacheIndex.getKeysStartingWith("").forEach(
             k -> {
@@ -325,6 +323,9 @@ public class CaffeineEntityCache extends BaseEntityCache {
               allReverseIndexKeys1.add(k.toString());
             });
 
+    // DEBUG code
+    check_cache();
+
     cacheData.put(key, newEntities);
 
     for (Entity entity : newEntities) {
@@ -339,8 +340,20 @@ public class CaffeineEntityCache extends BaseEntityCache {
                       putReverseIndex(nameIdentifier, Entity.EntityType.ROLE, 
key);
                     });
           }
+        } else if (entity instanceof GroupEntity) {
+          // UserEntity is not supported in the cache, skip it.
+          GroupEntity groupEntity = (GroupEntity) entity;
+          if (groupEntity.roleNames() != null) {
+            groupEntity.roleNames().forEach(
+                    role -> {
+                      Namespace ns = 
NamespaceUtil.ofRole(groupEntity.namespace().level(0));
+                      NameIdentifier nameIdentifier = NameIdentifier.of(ns, 
role);
+                      putReverseIndex(nameIdentifier, Entity.EntityType.ROLE, 
key);
+                    });
+          }
         }
 
+
 //      Namespace ns = NamespaceUtil.ofRole(ident.namespace().level(0));
 //      NameIdentifier nameIdentifier = NameIdentifier.of(ns, role);
 
@@ -369,17 +382,34 @@ public class CaffeineEntityCache extends BaseEntityCache {
 
   private void check_cache() {
     // DEBUG code
+    List<String> allCacheIndexKeys1 = Lists.newArrayList();
+    cacheIndex.getKeysStartingWith("").forEach(
+            k -> {
+              allCacheIndexKeys1.add(k.toString());
+            });
+
+    List<String> allReverseIndexKeys1 = Lists.newArrayList();
+    reverseIndex.getKeysStartingWith("").forEach(
+            k -> {
+              allReverseIndexKeys1.add(k.toString());
+            });
+
+    Set<EntityCacheRelationKey> allCacheDataKeys1 = cacheData.asMap().keySet();
+    List<String> allCacheDataKeysStrings1 = allCacheDataKeys1.stream()
+            .map(Object::toString)
+            .collect(Collectors.toList());
+
     long cacheDataSize = cacheData.estimatedSize();
     int cacheIndexSize = cacheIndex.size();
     int reverseIndexSize = reverseIndex.size();
-    if (cacheDataSize != cacheIndexSize
-            || cacheDataSize != reverseIndexSize
-            || cacheIndexSize != reverseIndexSize) {
-      throw new IllegalStateException(
-              String.format(
-                      "Cache data size (%d) does not match cache index size 
(%d) or reverse index size (%d).",
-                      cacheDataSize, cacheIndexSize, reverseIndexSize));
-    }
+//    if (cacheDataSize != cacheIndexSize/*
+//            || cacheDataSize != reverseIndexSize
+//            || cacheIndexSize != reverseIndexSize*/) {
+//      throw new IllegalStateException(
+//              String.format(
+//                      "Cache data size (%d) does not match cache index size 
(%d).",
+//                      cacheDataSize, cacheIndexSize));
+//    }
   }
 
   /**
@@ -474,6 +504,11 @@ public class CaffeineEntityCache extends BaseEntityCache {
               allReverseIndexKeys1.add(k.toString());
             });
 
+    Set<EntityCacheRelationKey> allCacheDataKeys1 = cacheData.asMap().keySet();
+    List<String> allCacheDataKeysStrings1 = allCacheDataKeys1.stream()
+            .map(Object::toString)
+            .collect(Collectors.toList());
+
     List<EntityCacheKey> entityKeysToRemove =
         
Lists.newArrayList(cacheIndex.getValuesForKeysStartingWith(identifier.toString()));
 
@@ -556,6 +591,11 @@ public class CaffeineEntityCache extends BaseEntityCache {
               allReverseIndexKeys11.add(k.toString());
             });
 
+    Set<EntityCacheRelationKey> allCacheDataKeys2 = cacheData.asMap().keySet();
+    List<String> allCacheDataKeysStrings2 = allCacheDataKeys1.stream()
+            .map(Object::toString)
+            .collect(Collectors.toList());
+
     // DEBUG code
     check_cache();
 

Reply via email to