Thejas M Nair created HIVE-12310:
------------------------------------

             Summary: Update memory estimation login in TopNHash
                 Key: HIVE-12310
                 URL: https://issues.apache.org/jira/browse/HIVE-12310
             Project: Hive
          Issue Type: Bug
          Components: Query Processor
            Reporter: Thejas M Nair


HIVE-12084 changes TopNHash to use Runtime.getRuntime().freeMemory() for 
finding available memory.
However, it does not give the all the memory it could use, it ignores 
unallocated memory. This is because the heap size of jvm grows up to max heap 
size (-Xmx) as per it needs. totalMemory() gives total heap space it has 
allocated, and freeMemory() is the free memory within that.
See http://i.stack.imgur.com/GjuwM.png and 
http://stackoverflow.com/questions/3571203/what-is-the-exact-meaning-of-runtime-getruntime-totalmemory-and-freememory
 .
So instead of using Runtime.getRuntime().freeMemory() , I think it should use 
maxMemory() - totalMemory() + freeMemory()



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

Reply via email to