henrib commented on code in PR #5882: URL: https://github.com/apache/hive/pull/5882#discussion_r2268820357
########## standalone-metastore/metastore-rest-catalog/src/main/java/org/apache/iceberg/rest/HMSCachingCatalog.java: ########## @@ -63,6 +69,48 @@ public List<Namespace> listNamespaces(Namespace nmspc) throws NoSuchNamespaceExc return hiveCatalog.listNamespaces(nmspc); } + @Override + public Table loadTable(TableIdentifier identifier) { + final Cache<TableIdentifier, Table> cache = this.tableCache; + final HiveCatalog catalog = this.hiveCatalog; + final TableIdentifier canonicalized = identifier.toLowerCase(); + Table cachedTable = cache.getIfPresent(canonicalized); + if (cachedTable != null) { + String location = catalog.getTableLocation(canonicalized); + if (location == null) { + LOG.debug("Table {} has no location, returning cached table without location", canonicalized); + } else if (!location.equals(cachedTable.location())) { + LOG.debug("Cached table {} has a different location than the one in the catalog: {} != {}", + canonicalized, cachedTable.location(), location); + // Invalidate the cached table if the location is different + invalidateTable(canonicalized); + } else { + LOG.debug("Returning cached table: {}", canonicalized); + return cachedTable; + } + } + Table table = cache.get(canonicalized, catalog::loadTable); + if (table instanceof BaseMetadataTable) { Review Comment: Line 92 does cache non-metadata table. Per the caffeine doc, cache 'get' obeys "if cached, return; otherwise create, cache and return" pattern ; line 93 and after are meant to deal with the specifics of metadata table. What am I missing ? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@hive.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: gitbox-unsubscr...@hive.apache.org For additional commands, e-mail: gitbox-h...@hive.apache.org