[
https://issues.apache.org/jira/browse/DRILL-6429?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16481353#comment-16481353
]
Timothy Farkas commented on DRILL-6429:
---------------------------------------
[~paul-rogers] We want to start implementing true resource management for
memory. This would entail a resource monitor that keeps track of all available
memory on each node, and planning queries to fit within available memory. In
order to do this, we need to be sure that when we tell an operator to run
within X amount of memory it will do so. If we tell an operator to run within X
and it decides to use more memory, then our resource monitor would be
inaccurate and we can get queries that unexpectedly OOM.
It is currently possibly to do this reliable with heuristics. I have done it
for HashJoin, which withstood a battery of tests without using setLenient().
See
https://github.com/apache/drill/blob/master/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinMemoryCalculatorImpl.java
. Furthermore as the batch sizing project you and Padma have been working on
progresses, we will eventually be able to move away from heuristics and deal
with certainties.
The goal here is to look at SortImpl and see if it can be augmented to not
require setLenient, so our resource management system can make the assumption
that all memory limits are obeyed and are absolute. If we can make sure that
assumption is true, the difficulty of implementing a reliable resource
management system drastically reduces. I suspect it is possible to do since it
has been done for HashJoin, and I suspect it would not involve any major
changes to Sort.
> SortImpl Should Not Use BufferAllocator.setLenient()
> ----------------------------------------------------
>
> Key: DRILL-6429
> URL: https://issues.apache.org/jira/browse/DRILL-6429
> Project: Apache Drill
> Issue Type: Improvement
> Reporter: Timothy Farkas
> Assignee: Timothy Farkas
> Priority: Major
>
> The Sort operator should always obey its memory limit. This is required for
> resource management.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)