Skip to content

Commit 8277a06

Browse files
committed
Unify external meta cache module key handling
1 parent d57eb8a commit 8277a06

File tree

9 files changed

+166
-151
lines changed

9 files changed

+166
-151
lines changed

fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSExternalCatalog.java

Lines changed: 19 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,10 @@
2828
import org.apache.doris.datasource.ExternalTable;
2929
import org.apache.doris.datasource.InitCatalogLog;
3030
import org.apache.doris.datasource.SessionContext;
31+
import org.apache.doris.datasource.hudi.source.HudiEngineCache;
3132
import org.apache.doris.datasource.iceberg.IcebergMetadataOps;
3233
import org.apache.doris.datasource.iceberg.IcebergUtils;
33-
import org.apache.doris.datasource.metacache.CacheSpec;
34+
import org.apache.doris.datasource.metacache.UnifiedCacheModuleKey;
3435
import org.apache.doris.datasource.operations.ExternalMetadataOperations;
3536
import org.apache.doris.datasource.property.metastore.AbstractHiveProperties;
3637
import org.apache.doris.fs.FileSystemProvider;
@@ -39,14 +40,14 @@
3940
import org.apache.doris.transaction.TransactionManagerFactory;
4041

4142
import com.google.common.annotations.VisibleForTesting;
43+
import com.google.common.collect.ImmutableList;
4244
import com.google.common.collect.Sets;
4345
import org.apache.iceberg.hive.HiveCatalog;
4446
import org.apache.logging.log4j.LogManager;
4547
import org.apache.logging.log4j.Logger;
4648

4749
import java.util.List;
4850
import java.util.Map;
49-
import java.util.Objects;
5051
import java.util.Set;
5152
import java.util.concurrent.ThreadPoolExecutor;
5253

@@ -78,52 +79,19 @@ public class HMSExternalCatalog extends ExternalCatalog {
7879
public static final String HUDI_META_CLIENT_CACHE_ENABLE = "meta.cache.hudi.meta-client.enable";
7980
public static final String HUDI_META_CLIENT_CACHE_TTL_SECOND = "meta.cache.hudi.meta-client.ttl-second";
8081
public static final String HUDI_META_CLIENT_CACHE_CAPACITY = "meta.cache.hudi.meta-client.capacity";
81-
private static final String[] UNIFIED_CACHE_BOOLEAN_KEYS = {
82-
HIVE_PARTITION_VALUES_CACHE_ENABLE,
83-
HIVE_PARTITION_CACHE_ENABLE,
84-
HIVE_FILE_CACHE_ENABLE,
85-
HUDI_PARTITION_CACHE_ENABLE,
86-
HUDI_FS_VIEW_CACHE_ENABLE,
87-
HUDI_META_CLIENT_CACHE_ENABLE
88-
};
89-
private static final String[] UNIFIED_CACHE_TTL_KEYS = {
90-
HIVE_PARTITION_VALUES_CACHE_TTL_SECOND,
91-
HIVE_PARTITION_CACHE_TTL_SECOND,
92-
HIVE_FILE_CACHE_TTL_SECOND,
93-
HUDI_PARTITION_CACHE_TTL_SECOND,
94-
HUDI_FS_VIEW_CACHE_TTL_SECOND,
95-
HUDI_META_CLIENT_CACHE_TTL_SECOND
96-
};
97-
private static final String[] UNIFIED_CACHE_CAPACITY_KEYS = {
98-
HIVE_PARTITION_VALUES_CACHE_CAPACITY,
99-
HIVE_PARTITION_CACHE_CAPACITY,
100-
HIVE_FILE_CACHE_CAPACITY,
101-
HUDI_PARTITION_CACHE_CAPACITY,
102-
HUDI_FS_VIEW_CACHE_CAPACITY,
103-
HUDI_META_CLIENT_CACHE_CAPACITY
104-
};
105-
private static final String[] HIVE_UNIFIED_CACHE_KEYS = {
106-
HIVE_PARTITION_VALUES_CACHE_ENABLE,
107-
HIVE_PARTITION_VALUES_CACHE_TTL_SECOND,
108-
HIVE_PARTITION_VALUES_CACHE_CAPACITY,
109-
HIVE_PARTITION_CACHE_ENABLE,
110-
HIVE_PARTITION_CACHE_TTL_SECOND,
111-
HIVE_PARTITION_CACHE_CAPACITY,
112-
HIVE_FILE_CACHE_ENABLE,
113-
HIVE_FILE_CACHE_TTL_SECOND,
114-
HIVE_FILE_CACHE_CAPACITY
115-
};
116-
private static final String[] HUDI_UNIFIED_CACHE_KEYS = {
117-
HUDI_PARTITION_CACHE_ENABLE,
118-
HUDI_PARTITION_CACHE_TTL_SECOND,
119-
HUDI_PARTITION_CACHE_CAPACITY,
120-
HUDI_FS_VIEW_CACHE_ENABLE,
121-
HUDI_FS_VIEW_CACHE_TTL_SECOND,
122-
HUDI_FS_VIEW_CACHE_CAPACITY,
123-
HUDI_META_CLIENT_CACHE_ENABLE,
124-
HUDI_META_CLIENT_CACHE_TTL_SECOND,
125-
HUDI_META_CLIENT_CACHE_CAPACITY
126-
};
82+
private static final List<UnifiedCacheModuleKey> HIVE_CACHE_MODULE_KEYS = ImmutableList.of(
83+
UnifiedCacheModuleKey.of(HiveEngineCache.ENGINE_TYPE, "partition-values"),
84+
UnifiedCacheModuleKey.of(HiveEngineCache.ENGINE_TYPE, "partition"),
85+
UnifiedCacheModuleKey.of(HiveEngineCache.ENGINE_TYPE, "file"));
86+
private static final List<UnifiedCacheModuleKey> HUDI_CACHE_MODULE_KEYS = ImmutableList.of(
87+
UnifiedCacheModuleKey.of(HudiEngineCache.ENGINE_TYPE, "partition"),
88+
UnifiedCacheModuleKey.of(HudiEngineCache.ENGINE_TYPE, "fs-view"),
89+
UnifiedCacheModuleKey.of(HudiEngineCache.ENGINE_TYPE, "meta-client"));
90+
private static final List<UnifiedCacheModuleKey> ALL_CACHE_MODULE_KEYS =
91+
ImmutableList.<UnifiedCacheModuleKey>builder()
92+
.addAll(HIVE_CACHE_MODULE_KEYS)
93+
.addAll(HUDI_CACHE_MODULE_KEYS)
94+
.build();
12795
public static final String HIVE_STAGING_DIR = "hive.staging_dir";
12896
public static final String DEFAULT_STAGING_BASE_DIR = "/tmp/.doris_staging";
12997
// broker name for file split and query scan.
@@ -177,7 +145,7 @@ public HMSExternalCatalog(long catalogId, String name, String resource, Map<Stri
177145
@Override
178146
public void checkProperties() throws DdlException {
179147
super.checkProperties();
180-
checkUnifiedCacheProperties();
148+
UnifiedCacheModuleKey.checkProperties(catalogProperty.getProperties(), ALL_CACHE_MODULE_KEYS);
181149
catalogProperty.checkMetaStoreAndStorageProperties(AbstractHiveProperties.class);
182150
}
183151

@@ -279,38 +247,17 @@ public void registerDatabase(long dbId, String dbName) {
279247
@Override
280248
public void notifyPropertiesUpdated(Map<String, String> updatedProps) {
281249
super.notifyPropertiesUpdated(updatedProps);
282-
if (hasAnyUpdatedProperty(updatedProps, HIVE_UNIFIED_CACHE_KEYS)) {
250+
if (UnifiedCacheModuleKey.hasAnyUpdatedProperty(updatedProps, HIVE_CACHE_MODULE_KEYS)) {
283251
Env.getCurrentEnv().getExtMetaCacheMgr()
284252
.getUnifiedMetaCacheMgr()
285253
.getOrCreateEngineMetaCache(this, HiveEngineCache.ENGINE_TYPE, HiveEngineCache.class)
286254
.getMetaStoreCache().init();
287255
}
288-
if (hasAnyUpdatedProperty(updatedProps, HUDI_UNIFIED_CACHE_KEYS)) {
256+
if (UnifiedCacheModuleKey.hasAnyUpdatedProperty(updatedProps, HUDI_CACHE_MODULE_KEYS)) {
289257
Env.getCurrentEnv().getExtMetaCacheMgr().removeCache(this);
290258
}
291259
}
292260

293-
private void checkUnifiedCacheProperties() throws DdlException {
294-
for (String key : UNIFIED_CACHE_BOOLEAN_KEYS) {
295-
CacheSpec.checkBooleanProperty(catalogProperty.getOrDefault(key, null), key);
296-
}
297-
for (String key : UNIFIED_CACHE_TTL_KEYS) {
298-
CacheSpec.checkLongProperty(catalogProperty.getOrDefault(key, null), -1L, key);
299-
}
300-
for (String key : UNIFIED_CACHE_CAPACITY_KEYS) {
301-
CacheSpec.checkLongProperty(catalogProperty.getOrDefault(key, null), 0L, key);
302-
}
303-
}
304-
305-
private static boolean hasAnyUpdatedProperty(Map<String, String> updatedProps, String[] propertyKeys) {
306-
for (String propertyKey : propertyKeys) {
307-
if (Objects.nonNull(updatedProps.get(propertyKey))) {
308-
return true;
309-
}
310-
}
311-
return false;
312-
}
313-
314261
@Override
315262
public void setDefaultPropsIfMissing(boolean isReplay) {
316263
super.setDefaultPropsIfMissing(isReplay);

fe/fe-core/src/main/java/org/apache/doris/datasource/hudi/source/HudiCatalogCache.java

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.apache.doris.datasource.ExternalCatalog;
2222
import org.apache.doris.datasource.hive.HMSExternalCatalog;
2323
import org.apache.doris.datasource.metacache.CacheSpec;
24+
import org.apache.doris.datasource.metacache.UnifiedCacheModuleKey;
2425

2526
import java.util.Objects;
2627
import java.util.concurrent.ExecutorService;
@@ -29,9 +30,12 @@
2930
* Per-catalog cache container for Hudi metadata processors.
3031
*/
3132
public final class HudiCatalogCache {
32-
private static final String PARTITION_MODULE_NAME = "partition";
33-
private static final String FS_VIEW_MODULE_NAME = "fs-view";
34-
private static final String META_CLIENT_MODULE_NAME = "meta-client";
33+
private static final UnifiedCacheModuleKey PARTITION_MODULE_KEY =
34+
UnifiedCacheModuleKey.of(HudiEngineCache.ENGINE_TYPE, "partition");
35+
private static final UnifiedCacheModuleKey FS_VIEW_MODULE_KEY =
36+
UnifiedCacheModuleKey.of(HudiEngineCache.ENGINE_TYPE, "fs-view");
37+
private static final UnifiedCacheModuleKey META_CLIENT_MODULE_KEY =
38+
UnifiedCacheModuleKey.of(HudiEngineCache.ENGINE_TYPE, "meta-client");
3539

3640
private final HudiCachedPartitionProcessor partitionProcessor;
3741
private final HudiCachedFsViewProcessor fsViewProcessor;
@@ -52,11 +56,11 @@ public static HudiCatalogCache fromCatalog(ExternalCatalog catalog, ExecutorServ
5256
throw new IllegalArgumentException("Hudi only supports hive(or compatible) catalog now");
5357
}
5458
HudiCachedPartitionProcessor partitionProcessor = new HudiCachedPartitionProcessor(catalog.getId(), executor,
55-
resolveCacheSpec(catalog, PARTITION_MODULE_NAME));
59+
resolveCacheSpec(catalog, PARTITION_MODULE_KEY));
5660
HudiCachedFsViewProcessor fsViewProcessor = new HudiCachedFsViewProcessor(executor,
57-
resolveCacheSpec(catalog, FS_VIEW_MODULE_NAME));
61+
resolveCacheSpec(catalog, FS_VIEW_MODULE_KEY));
5862
HudiCachedMetaClientProcessor metaClientProcessor = new HudiCachedMetaClientProcessor(executor,
59-
resolveCacheSpec(catalog, META_CLIENT_MODULE_NAME));
63+
resolveCacheSpec(catalog, META_CLIENT_MODULE_KEY));
6064
return new HudiCatalogCache(partitionProcessor, fsViewProcessor, metaClientProcessor);
6165
}
6266

@@ -78,8 +82,8 @@ public void cleanUp() {
7882
metaClientProcessor.cleanUp();
7983
}
8084

81-
private static CacheSpec resolveCacheSpec(ExternalCatalog catalog, String moduleName) {
82-
return CacheSpec.fromUnifiedProperties(catalog.getProperties(), HudiEngineCache.ENGINE_TYPE, moduleName, true,
83-
Config.external_cache_expire_time_seconds_after_access, Config.max_external_table_cache_num);
85+
private static CacheSpec resolveCacheSpec(ExternalCatalog catalog, UnifiedCacheModuleKey moduleKey) {
86+
return moduleKey.toCacheSpec(catalog.getProperties(),
87+
true, Config.external_cache_expire_time_seconds_after_access, Config.max_external_table_cache_num);
8488
}
8589
}

fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergExternalCatalog.java

Lines changed: 7 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -25,21 +25,21 @@
2525
import org.apache.doris.datasource.ExternalObjectLog;
2626
import org.apache.doris.datasource.InitCatalogLog;
2727
import org.apache.doris.datasource.SessionContext;
28-
import org.apache.doris.datasource.metacache.CacheSpec;
28+
import org.apache.doris.datasource.metacache.UnifiedCacheModuleKey;
2929
import org.apache.doris.datasource.operations.ExternalMetadataOperations;
3030
import org.apache.doris.datasource.property.metastore.AbstractIcebergProperties;
3131
import org.apache.doris.nereids.trees.plans.commands.info.AddPartitionFieldOp;
3232
import org.apache.doris.nereids.trees.plans.commands.info.DropPartitionFieldOp;
3333
import org.apache.doris.nereids.trees.plans.commands.info.ReplacePartitionFieldOp;
3434
import org.apache.doris.transaction.TransactionManagerFactory;
3535

36+
import com.google.common.collect.ImmutableList;
3637
import org.apache.iceberg.catalog.Catalog;
3738
import org.apache.logging.log4j.LogManager;
3839
import org.apache.logging.log4j.Logger;
3940

4041
import java.util.List;
4142
import java.util.Map;
42-
import java.util.Objects;
4343

4444
public abstract class IcebergExternalCatalog extends ExternalCatalog {
4545

@@ -62,6 +62,9 @@ public abstract class IcebergExternalCatalog extends ExternalCatalog {
6262
public static final boolean DEFAULT_ICEBERG_MANIFEST_CACHE_ENABLE = false;
6363
public static final long DEFAULT_ICEBERG_MANIFEST_CACHE_CAPACITY = 1024;
6464
public static final long DEFAULT_ICEBERG_MANIFEST_CACHE_TTL_SECOND = 48 * 60 * 60;
65+
private static final List<UnifiedCacheModuleKey> CACHE_MODULE_KEYS = ImmutableList.of(
66+
UnifiedCacheModuleKey.of(IcebergEngineCache.ENGINE_TYPE, "table"),
67+
UnifiedCacheModuleKey.of(IcebergEngineCache.ENGINE_TYPE, "manifest"));
6568
protected String icebergCatalogType;
6669
protected Catalog catalog;
6770

@@ -89,34 +92,14 @@ protected void initCatalog() {
8992
@Override
9093
public void checkProperties() throws DdlException {
9194
super.checkProperties();
92-
CacheSpec.checkBooleanProperty(catalogProperty.getOrDefault(ICEBERG_TABLE_CACHE_ENABLE, null),
93-
ICEBERG_TABLE_CACHE_ENABLE);
94-
CacheSpec.checkLongProperty(catalogProperty.getOrDefault(ICEBERG_TABLE_CACHE_TTL_SECOND, null),
95-
-1L, ICEBERG_TABLE_CACHE_TTL_SECOND);
96-
CacheSpec.checkLongProperty(catalogProperty.getOrDefault(ICEBERG_TABLE_CACHE_CAPACITY, null),
97-
0L, ICEBERG_TABLE_CACHE_CAPACITY);
98-
99-
CacheSpec.checkBooleanProperty(catalogProperty.getOrDefault(ICEBERG_MANIFEST_CACHE_ENABLE, null),
100-
ICEBERG_MANIFEST_CACHE_ENABLE);
101-
CacheSpec.checkLongProperty(catalogProperty.getOrDefault(ICEBERG_MANIFEST_CACHE_TTL_SECOND, null),
102-
-1L, ICEBERG_MANIFEST_CACHE_TTL_SECOND);
103-
CacheSpec.checkLongProperty(catalogProperty.getOrDefault(ICEBERG_MANIFEST_CACHE_CAPACITY, null),
104-
0L, ICEBERG_MANIFEST_CACHE_CAPACITY);
95+
UnifiedCacheModuleKey.checkProperties(catalogProperty.getProperties(), CACHE_MODULE_KEYS);
10596
catalogProperty.checkMetaStoreAndStorageProperties(AbstractIcebergProperties.class);
10697
}
10798

10899
@Override
109100
public void notifyPropertiesUpdated(Map<String, String> updatedProps) {
110101
super.notifyPropertiesUpdated(updatedProps);
111-
String tableCacheEnable = updatedProps.getOrDefault(ICEBERG_TABLE_CACHE_ENABLE, null);
112-
String tableCacheTtl = updatedProps.getOrDefault(ICEBERG_TABLE_CACHE_TTL_SECOND, null);
113-
String tableCacheCapacity = updatedProps.getOrDefault(ICEBERG_TABLE_CACHE_CAPACITY, null);
114-
String manifestCacheEnable = updatedProps.getOrDefault(ICEBERG_MANIFEST_CACHE_ENABLE, null);
115-
String manifestCacheCapacity = updatedProps.getOrDefault(ICEBERG_MANIFEST_CACHE_CAPACITY, null);
116-
String manifestCacheTtl = updatedProps.getOrDefault(ICEBERG_MANIFEST_CACHE_TTL_SECOND, null);
117-
if (Objects.nonNull(tableCacheEnable) || Objects.nonNull(tableCacheTtl) || Objects.nonNull(tableCacheCapacity)
118-
|| Objects.nonNull(manifestCacheEnable) || Objects.nonNull(manifestCacheCapacity)
119-
|| Objects.nonNull(manifestCacheTtl)) {
102+
if (UnifiedCacheModuleKey.hasAnyUpdatedProperty(updatedProps, CACHE_MODULE_KEYS)) {
120103
Env.getCurrentEnv().getExtMetaCacheMgr()
121104
.getUnifiedMetaCacheMgr()
122105
.getOrCreateEngineMetaCache(this, IcebergEngineCache.ENGINE_TYPE, IcebergEngineCache.class)

fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergMetadataCache.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.apache.doris.datasource.hive.HMSExternalCatalog;
3030
import org.apache.doris.datasource.iceberg.cache.IcebergManifestCache;
3131
import org.apache.doris.datasource.metacache.CacheSpec;
32+
import org.apache.doris.datasource.metacache.UnifiedCacheModuleKey;
3233
import org.apache.doris.mtmv.MTMVRelatedTableIf;
3334

3435
import com.github.benmanes.caffeine.cache.LoadingCache;
@@ -54,6 +55,11 @@
5455

5556
public class IcebergMetadataCache {
5657
private static final Logger LOG = LogManager.getLogger(IcebergMetadataCache.class);
58+
private static final UnifiedCacheModuleKey TABLE_CACHE_MODULE_KEY =
59+
UnifiedCacheModuleKey.of(IcebergEngineCache.ENGINE_TYPE, "table");
60+
private static final UnifiedCacheModuleKey MANIFEST_CACHE_MODULE_KEY =
61+
UnifiedCacheModuleKey.of(IcebergEngineCache.ENGINE_TYPE, "manifest");
62+
5763
private final ExecutorService executor;
5864
private final ExternalCatalog catalog;
5965
private LoadingCache<IcebergMetadataCacheKey, IcebergTableCacheValue> tableCache;
@@ -83,21 +89,14 @@ public void init() {
8389
}
8490

8591
private CacheSpec resolveTableCacheSpec() {
86-
return CacheSpec.fromProperties(catalog.getProperties(),
87-
IcebergExternalCatalog.ICEBERG_TABLE_CACHE_ENABLE, true,
88-
IcebergExternalCatalog.ICEBERG_TABLE_CACHE_TTL_SECOND,
89-
Config.external_cache_expire_time_seconds_after_access,
90-
IcebergExternalCatalog.ICEBERG_TABLE_CACHE_CAPACITY,
91-
Config.max_external_table_cache_num);
92+
return TABLE_CACHE_MODULE_KEY.toCacheSpec(catalog.getProperties(),
93+
true, Config.external_cache_expire_time_seconds_after_access, Config.max_external_table_cache_num);
9294
}
9395

9496
private CacheSpec resolveManifestCacheSpec() {
95-
return CacheSpec.fromProperties(catalog.getProperties(),
96-
IcebergExternalCatalog.ICEBERG_MANIFEST_CACHE_ENABLE,
97+
return MANIFEST_CACHE_MODULE_KEY.toCacheSpec(catalog.getProperties(),
9798
IcebergExternalCatalog.DEFAULT_ICEBERG_MANIFEST_CACHE_ENABLE,
98-
IcebergExternalCatalog.ICEBERG_MANIFEST_CACHE_TTL_SECOND,
9999
IcebergExternalCatalog.DEFAULT_ICEBERG_MANIFEST_CACHE_TTL_SECOND,
100-
IcebergExternalCatalog.ICEBERG_MANIFEST_CACHE_CAPACITY,
101100
IcebergExternalCatalog.DEFAULT_ICEBERG_MANIFEST_CACHE_CAPACITY);
102101
}
103102

fe/fe-core/src/main/java/org/apache/doris/datasource/maxcompute/MaxComputeExternalCatalog.java

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import org.apache.doris.datasource.ExternalCatalog;
2626
import org.apache.doris.datasource.InitCatalogLog;
2727
import org.apache.doris.datasource.SessionContext;
28-
import org.apache.doris.datasource.metacache.CacheSpec;
28+
import org.apache.doris.datasource.metacache.UnifiedCacheModuleKey;
2929
import org.apache.doris.datasource.operations.ExternalMetadataOperations;
3030
import org.apache.doris.datasource.property.constants.MCProperties;
3131

@@ -49,7 +49,6 @@
4949
import java.util.Iterator;
5050
import java.util.List;
5151
import java.util.Map;
52-
import java.util.Objects;
5352
import java.util.stream.Collectors;
5453

5554
public class MaxComputeExternalCatalog extends ExternalCatalog {
@@ -59,6 +58,8 @@ public class MaxComputeExternalCatalog extends ExternalCatalog {
5958
public static final String MC_PARTITION_VALUES_CACHE_TTL_SECOND =
6059
"meta.cache.maxcompute.partition-values.ttl-second";
6160
public static final String MC_PARTITION_VALUES_CACHE_CAPACITY = "meta.cache.maxcompute.partition-values.capacity";
61+
private static final List<UnifiedCacheModuleKey> CACHE_MODULE_KEYS = Collections.singletonList(
62+
UnifiedCacheModuleKey.of(MaxComputeEngineCache.ENGINE_TYPE, "partition-values"));
6263

6364
// you can ref : https://help.aliyun.com/zh/maxcompute/user-guide/endpoints
6465
private static final String endpointTemplate = "http://service.{}.maxcompute.aliyun-inc.com/api";
@@ -471,21 +472,13 @@ public void checkProperties() throws DdlException {
471472
+ MCProperties.ACCESS_KEY + "' and '" + MCProperties.SECRET_KEY + "' are required.");
472473
}
473474

474-
CacheSpec.checkBooleanProperty(props.get(MC_PARTITION_VALUES_CACHE_ENABLE),
475-
MC_PARTITION_VALUES_CACHE_ENABLE);
476-
CacheSpec.checkLongProperty(props.get(MC_PARTITION_VALUES_CACHE_TTL_SECOND),
477-
-1L, MC_PARTITION_VALUES_CACHE_TTL_SECOND);
478-
CacheSpec.checkLongProperty(props.get(MC_PARTITION_VALUES_CACHE_CAPACITY),
479-
0L, MC_PARTITION_VALUES_CACHE_CAPACITY);
475+
UnifiedCacheModuleKey.checkProperties(props, CACHE_MODULE_KEYS);
480476
}
481477

482478
@Override
483479
public void notifyPropertiesUpdated(Map<String, String> updatedProps) {
484480
super.notifyPropertiesUpdated(updatedProps);
485-
String cacheEnable = updatedProps.get(MC_PARTITION_VALUES_CACHE_ENABLE);
486-
String cacheTtl = updatedProps.get(MC_PARTITION_VALUES_CACHE_TTL_SECOND);
487-
String cacheCapacity = updatedProps.get(MC_PARTITION_VALUES_CACHE_CAPACITY);
488-
if (Objects.nonNull(cacheEnable) || Objects.nonNull(cacheTtl) || Objects.nonNull(cacheCapacity)) {
481+
if (UnifiedCacheModuleKey.hasAnyUpdatedProperty(updatedProps, CACHE_MODULE_KEYS)) {
489482
Env.getCurrentEnv().getExtMetaCacheMgr().invalidate(this);
490483
}
491484
}

0 commit comments

Comments
 (0)