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

stigahuang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git

commit 379038f7639731605bca4356337616fa69f35f9d
Author: Riza Suminto <[email protected]>
AuthorDate: Mon Oct 16 11:47:53 2023 -0700

    IMPALA-12429: Reduce parallelism for TPC-DS q51a and q67a test.
    
    TestTpcdsQueryWithProcessingCost.test_tpcds_q51a and
    TestTpcdsQuery.test_tpcds_q67a has been intermittently failing with
    memory oversubscription error. The fact that test minicluster start 3
    impalad in single host probably make admission control less effective in
    preventing these queries from running in parallel with others.
    
    This patch keep both test, but reduce max_fragment_instances_per_node
    from 4 to 2 to lower its memory requirement.
    
    Before patch:
    
    q51a
    Max Per-Host Resource Reservation: Memory=3.08GB Threads=129
    Per-Host Resource Estimates: Memory=124.24GB
    Per Host Min Memory Reservation: localhost:27001(2.93 GB) 
localhost:27002(1.97 GB) localhost:27000(2.82 GB)
    Per Host Number of Fragment Instances: localhost:27001(115) 
localhost:27002(79) localhost:27000(119)
    Admission result: Admitted immediately
    Cluster Memory Admitted: 33.00 GB
    Per Node Peak Memory Usage: localhost:27000(2.84 GB) localhost:27002(1.99 
GB) localhost:27001(2.95 GB)
    Per Node Bytes Read: localhost:27000(62.08 MB) localhost:27002(45.71 MB) 
localhost:27001(47.39 MB)
    
    q67a
    Max Per-Host Resource Reservation: Memory=2.15GB Threads=105
    Per-Host Resource Estimates: Memory=4.48GB
    Per Host Min Memory Reservation: localhost:27001(2.13 GB) 
localhost:27002(2.13 GB) localhost:27000(2.15 GB)
    Per Host Number of Fragment Instances: localhost:27001(76) 
localhost:27002(76) localhost:27000(105)
    Cluster Memory Admitted: 13.44 GB
    Per Node Peak Memory Usage: localhost:27000(2.24 GB) localhost:27002(2.21 
GB) localhost:27001(2.21 GB)
    Per Node Bytes Read: localhost:27000(112.79 MB) localhost:27002(109.57 MB) 
localhost:27001(105.16 MB)
    
    After patch:
    
    q51a
    Max Per-Host Resource Reservation: Memory=2.00GB Threads=79
    Per-Host Resource Estimates: Memory=118.75GB
    Per Host Min Memory Reservation: localhost:27001(1.84 GB) 
localhost:27002(1.28 GB) localhost:27000(1.86 GB)
    Per Host Number of Fragment Instances: localhost:27001(65) 
localhost:27002(46) localhost:27000(74)
    Cluster Memory Admitted: 33.00 GB
    Per Node Peak Memory Usage: localhost:27000(1.88 GB) localhost:27002(1.31 
GB) localhost:27001(1.88 GB)
    Per Node Bytes Read: localhost:27000(62.08 MB) localhost:27002(45.71 MB) 
localhost:27001(47.39 MB)
    
    q67a
    Max Per-Host Resource Reservation: Memory=1.31GB Threads=85
    Per-Host Resource Estimates: Memory=3.76GB
    Per Host Min Memory Reservation: localhost:27001(1.29 GB) 
localhost:27002(1.29 GB) localhost:27000(1.31 GB)
    Per Host Number of Fragment Instances: localhost:27001(56) 
localhost:27002(56) localhost:27000(85)
    Cluster Memory Admitted: 11.28 GB
    Per Node Peak Memory Usage: localhost:27000(1.35 GB) localhost:27002(1.32 
GB) localhost:27001(1.33 GB)
    Per Node Bytes Read: localhost:27000(112.79 MB) localhost:27002(109.57 MB) 
localhost:27001(105.16 MB)
    
    Testing:
    - Pass test_tpcds_queries.py in local machine.
    
    Change-Id: I6ae5aeb97a8353d5eaa4d85e3f600513f42f7cf4
    Reviewed-on: http://gerrit.cloudera.org:8080/20581
    Reviewed-by: Impala Public Jenkins <[email protected]>
    Tested-by: Impala Public Jenkins <[email protected]>
---
 tests/query_test/test_tpcds_queries.py | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/tests/query_test/test_tpcds_queries.py 
b/tests/query_test/test_tpcds_queries.py
index cdfc39bac..c8496f35f 100644
--- a/tests/query_test/test_tpcds_queries.py
+++ b/tests/query_test/test_tpcds_queries.py
@@ -19,6 +19,7 @@
 #
 from __future__ import absolute_import, division, print_function
 import pytest
+from copy import deepcopy
 
 from tests.common.impala_test_suite import ImpalaTestSuite
 from tests.common.skip import SkipIfDockerizedCluster
@@ -755,3 +756,15 @@ class TestTpcdsQueryWithProcessingCost(TestTpcdsQuery):
     super(TestTpcdsQueryWithProcessingCost, cls).add_test_dimensions()
     cls.ImpalaTestMatrix.add_mandatory_exec_option('compute_processing_cost', 
1)
     
cls.ImpalaTestMatrix.add_mandatory_exec_option('max_fragment_instances_per_node',
 4)
+
+  def test_tpcds_q51a(self, vector):
+    """Reduce max_fragment_instances_per_node to lower memory requirement."""
+    new_vector = deepcopy(vector)
+    new_vector.get_value('exec_option')['max_fragment_instances_per_node'] = 2
+    self.run_test_case(self.get_workload() + '-q51a', new_vector)
+
+  def test_tpcds_q67a(self, vector):
+    """Reduce max_fragment_instances_per_node to lower memory requirement."""
+    new_vector = deepcopy(vector)
+    new_vector.get_value('exec_option')['max_fragment_instances_per_node'] = 2
+    self.run_test_case(self.get_workload() + '-q67a', new_vector)

Reply via email to