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 293f4c097b5190eeb4a5d84377b15e816c042aa5
Author: Xun <[email protected]>
AuthorDate: Tue Aug 26 18:59:35 2025 +0800

    fix 7804
---
 .../apache/gravitino/cache/CaffeineEntityCache.java | 21 ++++++++++++---------
 .../storage/relational/RelationalEntityStore.java   |  3 ++-
 2 files changed, 14 insertions(+), 10 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 b0cc0bcd5a..756b31bb7d 100644
--- a/core/src/main/java/org/apache/gravitino/cache/CaffeineEntityCache.java
+++ b/core/src/main/java/org/apache/gravitino/cache/CaffeineEntityCache.java
@@ -344,7 +344,7 @@ public class CaffeineEntityCache extends BaseEntityCache {
               .roleNames()
               .forEach(
                   role -> {
-                    Namespace ns = 
NamespaceUtil.ofUser(userEntity.namespace().level(0));
+                    Namespace ns = 
NamespaceUtil.ofRole(userEntity.namespace().level(0));
                     NameIdentifier nameIdentifier = NameIdentifier.of(ns, 
role);
                     putReverseIndex(nameIdentifier, Entity.EntityType.ROLE, 
key);
                   });
@@ -357,7 +357,7 @@ public class CaffeineEntityCache extends BaseEntityCache {
               .roleNames()
               .forEach(
                   role -> {
-                    Namespace ns = 
NamespaceUtil.ofGroup(groupEntity.namespace().level(0));
+                    Namespace ns = 
NamespaceUtil.ofRole(groupEntity.namespace().level(0));
                     NameIdentifier nameIdentifier = NameIdentifier.of(ns, 
role);
                     putReverseIndex(nameIdentifier, Entity.EntityType.ROLE, 
key);
                   });
@@ -375,6 +375,10 @@ public class CaffeineEntityCache extends BaseEntityCache {
                     // Namespace.fromString(securableObject.parent());
                     Entity.EntityType entityType = Entity.EntityType.METALAKE;
                     switch (securableObject.type()) {
+                      case METALAKE:
+                        entityType = Entity.EntityType.METALAKE;
+                        namespace = NamespaceUtil.ofMetalake();
+                        break;
                       case CATALOG:
                         entityType = Entity.EntityType.CATALOG;
                         namespace = 
NamespaceUtil.ofCatalog(roleEntity.namespace().level(0));
@@ -393,8 +397,7 @@ public class CaffeineEntityCache extends BaseEntityCache {
 //                        throw new IllegalStateException(
 //                            "Unprocessed securable object type: " + 
securableObject.type());
                     }
-                    Namespace so_namespace =
-                        Namespace.of(ArrayUtils.add(namespace.levels(), 
securableObject.name()));
+                    Namespace so_namespace = Namespace.of(namespace.levels());
                     NameIdentifier nameIdentifier =
                         NameIdentifier.of(so_namespace, 
securableObject.name());
                     putReverseIndex(nameIdentifier, entityType, key);
@@ -550,12 +553,12 @@ public class CaffeineEntityCache extends BaseEntityCache {
               allCacheIndexKeys1.add(k.toString());
             });
 
-    List<String> relationCacheIndex2 = Lists.newArrayList();
+    List<String> matchCacheIndex2 = Lists.newArrayList();
     cacheIndex
         .getKeysStartingWith(identifier.toString())
         .forEach(
             key -> {
-              relationCacheIndex2.add(key.toString());
+              matchCacheIndex2.add(key.toString());
             });
 
     List<String> allReverseIndexKeys1 = Lists.newArrayList();
@@ -642,12 +645,12 @@ public class CaffeineEntityCache extends BaseEntityCache {
               allCacheIndexKeys11.add(k.toString());
             });
 
-    List<String> relationCacheIndex21 = Lists.newArrayList();
+    List<String> matchCacheIndex21 = Lists.newArrayList();
     cacheIndex
         .getKeysStartingWith(identifier.toString())
         .forEach(
             key -> {
-              relationCacheIndex21.add(key.toString());
+              matchCacheIndex21.add(key.toString());
             });
 
     List<String> allReverseIndexKeys11 = Lists.newArrayList();
@@ -660,7 +663,7 @@ public class CaffeineEntityCache extends BaseEntityCache {
 
     Set<EntityCacheRelationKey> allCacheDataKeys2 = cacheData.asMap().keySet();
     List<String> allCacheDataKeysStrings2 =
-        
allCacheDataKeys1.stream().map(Object::toString).collect(Collectors.toList());
+            
allCacheDataKeys2.stream().map(Object::toString).collect(Collectors.toList());
 
     // DEBUG code
     check_cache();
diff --git 
a/core/src/main/java/org/apache/gravitino/storage/relational/RelationalEntityStore.java
 
b/core/src/main/java/org/apache/gravitino/storage/relational/RelationalEntityStore.java
index 34e3547311..bce18b982a 100644
--- 
a/core/src/main/java/org/apache/gravitino/storage/relational/RelationalEntityStore.java
+++ 
b/core/src/main/java/org/apache/gravitino/storage/relational/RelationalEntityStore.java
@@ -40,6 +40,7 @@ import org.apache.gravitino.cache.CacheFactory;
 import org.apache.gravitino.cache.EntityCache;
 import org.apache.gravitino.cache.NoOpsCache;
 import org.apache.gravitino.exceptions.NoSuchEntityException;
+import org.apache.gravitino.meta.RoleEntity;
 import org.apache.gravitino.meta.TagEntity;
 import org.apache.gravitino.tag.SupportsTagOperations;
 import org.apache.gravitino.utils.Executable;
@@ -137,7 +138,7 @@ public class RelationalEntityStore
           //          .withName(role)
           //          
.withNamespace(NamespaceUtil.ofRole(ident.namespace().level(0)))
           //          .build();
-          //          cache.invalidate(nameIdentifier, Entity.EntityType.ROLE);
+          cache.invalidate(nameIdentifier, Entity.EntityType.ROLE);
         });
 
     return backend.update(ident, entityType, updater);

Reply via email to