This is an automated email from the ASF dual-hosted git repository.

morningman pushed a commit to branch branch-1.2-lts
in repository https://gitbox.apache.org/repos/asf/doris.git

commit 80f1508065ae6de893a65058ad007e8274d2fba9
Author: Jibing-Li <[email protected]>
AuthorDate: Wed May 10 10:55:33 2023 +0800

    [Fix](multi catalog)Return all partition values while reading hive table. 
(#19434)
    
    Return all partition values while reading hive table.
    Add a config item for the max value of hive table to partition list cache.
    Default value is 100.
---
 fe/fe-common/src/main/java/org/apache/doris/common/Config.java    | 8 ++++++++
 .../java/org/apache/doris/datasource/hive/HiveMetaStoreCache.java | 2 +-
 .../apache/doris/datasource/hive/PooledHiveMetaStoreClient.java   | 3 ++-
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java 
b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
index 0466e31f1d..9e3c3aac3e 100644
--- a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
+++ b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
@@ -1900,6 +1900,14 @@ public class Config extends ConfigBase {
     @ConfField(mutable = false, masterOnly = false)
     public static long max_hive_partition_cache_num = 100000;
 
+    @ConfField(mutable = false, masterOnly = false, description = 
{"Hive表到分区名列表缓存的最大数量。",
+        "Max cache number of hive table to partition names list."})
+    public static long max_hive_table_catch_num = 1000;
+
+    @ConfField(mutable = false, masterOnly = false, description = 
{"获取Hive分区值时候的最大返回数量,-1代表没有限制。",
+        "Max number of hive partition values to return while list partitions, 
-1 means no limitation."})
+    public static short max_hive_list_partition_num = -1;
+
     /**
      * Max cache loader thread-pool size.
      * Max thread pool size for loading external meta cache
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveMetaStoreCache.java
 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveMetaStoreCache.java
index a2fb14de39..95f0b957c4 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveMetaStoreCache.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveMetaStoreCache.java
@@ -99,7 +99,7 @@ public class HiveMetaStoreCache {
     }
 
     private void init(Executor executor) {
-        partitionValuesCache = 
CacheBuilder.newBuilder().maximumSize(Config.max_hive_partition_cache_num)
+        partitionValuesCache = 
CacheBuilder.newBuilder().maximumSize(Config.max_hive_table_catch_num)
                 
.expireAfterAccess(Config.external_cache_expire_time_minutes_after_access, 
TimeUnit.MINUTES)
                 .build(CacheLoader.asyncReloading(
                         new CacheLoader<PartitionValueCacheKey, 
HivePartitionValues>() {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/PooledHiveMetaStoreClient.java
 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/PooledHiveMetaStoreClient.java
index 0982da418c..236aacf298 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/PooledHiveMetaStoreClient.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/PooledHiveMetaStoreClient.java
@@ -53,7 +53,8 @@ public class PooledHiveMetaStoreClient {
     private static final Logger LOG = 
LogManager.getLogger(PooledHiveMetaStoreClient.class);
 
     private static final HiveMetaHookLoader DUMMY_HOOK_LOADER = t -> null;
-    private static final short MAX_LIST_PARTITION_NUM = 10000;
+    // -1 means no limit on the partitions returned.
+    private static final short MAX_LIST_PARTITION_NUM = 
Config.max_hive_list_partition_num;
 
     private Queue<CachedClient> clientPool = new LinkedList<>();
     private final int poolSize;


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to