[
https://issues.apache.org/jira/browse/DRILL-5616?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16067410#comment-16067410
]
Boaz Ben-Zvi commented on DRILL-5616:
-------------------------------------
Another possible solution: Increase the frequency of memory checks (and
possible spilling); not only when a batch gets full (which may happen often -
once per each partition - then a long period without any check), but also
whenever memory was allocated during hash table put() (other than new batch).
Also maybe whenever a new incoming batch is received (via next() ). This way
whenever a drill-buf (or also a hash table) is doubled – memory gets checked !!
If these checkes work better – we could reduce the "safety margins" in the
memory check (e.g. drill.exec.hashagg.min_batches_per_partition down to 2, etc.)
> Hash Agg Spill: OOM while reading irregular varchar data
> --------------------------------------------------------
>
> Key: DRILL-5616
> URL: https://issues.apache.org/jira/browse/DRILL-5616
> Project: Apache Drill
> Issue Type: Bug
> Components: Execution - Relational Operators
> Affects Versions: 1.11.0
> Reporter: Boaz Ben-Zvi
> Assignee: Boaz Ben-Zvi
> Fix For: 1.11.0
>
> Original Estimate: 96h
> Remaining Estimate: 96h
>
> An OOM while aggregating a table of two varchar columns where sizes vary
> significantly ( about 8 bytes long in average, but 250 bytes max )
> alter session set `planner.width.max_per_node` = 1;
> alter session set `planner.memory.max_query_memory_per_node` = 327127360;
> select count( * ) from (select max(`filename`) from
> dfs.`/drill/testdata/hash-agg/data2` group by no_nulls_col, nulls_col) d;
> {code}
> Error: RESOURCE ERROR: One or more nodes ran out of memory while executing
> the query.
> OOM at Second Phase. Partitions: 2. Estimated batch size: 12255232. Planned
> batches: 0. Rows spilled so far: 434127447 Memory limit: 163563680 so far
> allocated: 150601728.
> Fragment 1:0
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)