in aws-glue-datacatalog-client-common/src/main/java/com/amazonaws/glue/catalog/metastore/AWSGlueMetastoreCacheDecorator.java [124:154]
public List<Database> getAllDatabases() {
List<Database> allDatabases;
if (databaseCacheEnabled) {
List<String> databaseNames = databasesCache.getIfPresent(DATABASES_CACHE_KEY);
if (databaseNames != null) {
List<Database> databases = new ArrayList<>();
for (String name : databaseNames) {
Database valueFromCache = databaseCache.getIfPresent(name);
if (valueFromCache != null) {
databases.add(valueFromCache);
} else {
logger.info("Cannot get database from database cache, cache miss for operation [getAllDatabases].");
databasesCache.invalidateAll();
allDatabases = super.getAllDatabases();
cacheAllDatabases(allDatabases);
return allDatabases;
}
}
logger.info("Cache hit for operation [getAllDatabases]");
allDatabases = databases;
} else {
logger.info("Cache miss for operation [getAllDatabases]");
allDatabases = super.getAllDatabases();
cacheAllDatabases(allDatabases);
return allDatabases;
}
} else {
allDatabases = super.getAllDatabases();
}
return allDatabases;
}