You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Fei Hui (JIRA)" <ji...@apache.org> on 2016/11/16 07:22:59 UTC

[jira] [Created] (HIVE-15221) Improvement for MapJoin checkMemoryStatus, adding gc before throwing Exception

Fei Hui created HIVE-15221:
------------------------------

             Summary: Improvement for MapJoin checkMemoryStatus, adding gc before throwing Exception
                 Key: HIVE-15221
                 URL: https://issues.apache.org/jira/browse/HIVE-15221
             Project: Hive
          Issue Type: Improvement
          Components: Query Processor
    Affects Versions: 2.0.1, 2.1.0
            Reporter: Fei Hui
            Assignee: Fei Hui


i see in the current master version

 percentage = (double) usedMemory / (double) maxHeapSize;

if  percentage > maxMemoryUsage, then throw MapJoinMemoryExhaustionException

in my opinion, running is better than fail. after System.gc, ' if percentage > maxMemoryUsage, then throw MapJoinMemoryExhaustionException' maybe better

And original checking way has a problem: a) consuming much memory cause gc (e.g young gc), then check after adding row and pass. 2) consuming much memory does not cause gc, then check after adding rows but throw Exception
sometimes 2) occurs, but it contians less rows than 1).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)