[ 
https://issues.apache.org/jira/browse/IMPALA-10583?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17319344#comment-17319344
 ] 

ASF subversion and git services commented on IMPALA-10583:
----------------------------------------------------------

Commit e01b6312593197749a17dd6895f976c35eac5769 in impala's branch 
refs/heads/master from Riza Suminto
[ https://gitbox.apache.org/repos/asf?p=impala.git;h=e01b631 ]

IMPALA-10583: Fix bug on unbounded result spooling memory config.

Two bugs happening on result spooling when we set two of its query
options to 0 (unbounded).

The first bug happens if max_spilled_result_spooling_mem =
0 (unbounded). max_unpinned_bytes_ in SpillableRowBatchQueue will be set
to 0, SpillableRowBatchQueue::IsFull() then will always return true, and
the query hang. This patch fix it by setting max_unpinned_bytes_ to
INT64_MAX if max_spilled_result_spooling_mem = 0.

The second bug happens if we set max_result_spooling_mem =
0 (unbounded). PlanRootSink.java will peg maxMemReservationBytes to
always equal to minMemReservationBytes. This patch fixes this by
reverting to the default max_result_spooling_mem (100MB).

Testing:
- Add test_unbounded_result_spooling_mem.
- Pass core tests.

Change-Id: If8f5e3668281bba8813f8082f45b4faa7721530e
Reviewed-on: http://gerrit.cloudera.org:8080/17187
Reviewed-by: Impala Public Jenkins <[email protected]>
Tested-by: Impala Public Jenkins <[email protected]>


> Result spooling hang with unbounded spooling mem limit.
> -------------------------------------------------------
>
>                 Key: IMPALA-10583
>                 URL: https://issues.apache.org/jira/browse/IMPALA-10583
>             Project: IMPALA
>          Issue Type: Bug
>          Components: Backend, Frontend
>    Affects Versions: Impala 4.0
>            Reporter: Riza Suminto
>            Assignee: Riza Suminto
>            Priority: Major
>
> Looking at BufferedPlanRootSink and SpillableRowBatchQueue, it seems the code 
> fail to anticipate if max_spilled_result_spooling_mem = 0 (unbounded). 
> max_unpinned_bytes_ will be set to 0 and SpillableRowBatchQueue::IsFull() 
> will always be true. We should change max_unpinned_bytes_ to INT64_MAX if 
> max_spilled_result_spooling_mem = 0.
> Another bug happen when setting max_result_spooling_mem = 0 (unbounded). When 
> this happen, PlanRootSink.java will peg maxMemReservationBytes to always 
> equal to minMemReservationBytes. I think we should override it to the default 
> max_result_spooling_mem (100MB) or set it equal to mem_limit of the query 
> pool.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to