branch-4.1: [improvement](hive) Batch Hive metastore partition access - #68197
CalvinKirs wants to merge 1 commit into
Conversation
…apache#67186) Adapted backport of apache#67186 to the pre-connector architecture on branch-4.1: - The HMS partition batch executor (bounded chunking, adaptive size fallback on thrift message-size failures, strict response validation) is ported into org.apache.doris.datasource.hive with the thrift Partition payload, wired inside ThriftHMSCachedClient.getPartitions; a lenient getExistingPartitions omits names the metastore no longer has, preserving the historical getPartitionsByNames behavior for cache bulk loads. hive.hms_partitions_batch_size_per_rpc rides the existing hive.* catalog-property-to-HiveConf pipeline (default 5000). - HiveExternalMetaCache.getAllPartitions with cache now serves hits from the cache and aggregates all misses into one bulk load instead of one single-partition RPC per missed key. - The MTMV bulk snapshot path (MTMVRefreshContext prepare/load with per-partition failure and missing caches, the MTMVRelatedTableIf bulk default, call sites in MTMVPartitionUtil / MTMVRewriteUtil / MTMVTask) applies with one deviation: the master-only pinned-MVCC- snapshot plumbing is dropped because its prerequisites (MTMVPartitionExpander, query-used partition filtering) do not exist on branch-4.1; snapshots keep resolving from the statement context. - HMSExternalTable routes bulk partition snapshots to a HiveDlaTable implementation that resolves names against one partition-value listing and loads all cache misses through one batched HMS request, normalizing connector runtime failures to AnalysisException. - The scan batch mode and connector-cache changes of the original PR target the plugin scan path only and have no branch-4.1 counterpart; the equivalent benefit comes from the batched cache bulk load.
|
run buildall |
|
Performance verification of this backport against a real PostgreSQL-backed Hive 2.3.2 metastore with 120,000 real partitions, driving the branch-4.1 production
Before is the per-partition access shape of the base branch (one Batch-size sensitivity at 120,000 partitions (single runs, exercising the Notably, the base branch's unbounded bulk shape (all 120,000 names in one |
FE UT Coverage ReportIncrement line coverage |
#67186