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)