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);
