[
https://issues.apache.org/jira/browse/IMPALA-7446?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16609864#comment-16609864
]
Tim Armstrong commented on IMPALA-7446:
---------------------------------------
I think the precondition for GC of free buffers and clean pages should be both:
* Buffer allocations exceed reservation
* We're at or near the process memory limit
We should also be counting reserved-but-not-allocated memory against the
process memory limit when considering whether to let other memory allocations
go through. Otherwise a future allocation based on a reservation (which doesn't
check the process limit, by design) could go through even though it would push
the impalad above the process limit.
> Queries can spill earlier than necessary because of accumulation of free
> buffers and clean pages
> ------------------------------------------------------------------------------------------------
>
> Key: IMPALA-7446
> URL: https://issues.apache.org/jira/browse/IMPALA-7446
> Project: IMPALA
> Issue Type: Bug
> Components: Backend
> Affects Versions: Impala 2.10.0, Impala 2.11.0, Impala 3.0, Impala 2.12.0
> Reporter: Tim Armstrong
> Assignee: Tim Armstrong
> Priority: Critical
> Labels: resource-management
>
> See IMPALA-7442 for an example where the query started to spill even when
> memory could have been made available by freeing buffers or evicting clean
> pages. Usually this would just result in spilling earlier than necessary, but
> in the case of IMPALA-7442 it lead to a query failure.
> My original intent was that BufferPool::ReleaseMemory() should be called in
> situations like this, but that was not done.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]