You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Rahul Challapalli (JIRA)" <ji...@apache.org> on 2017/04/12 16:23:41 UTC
[jira] [Updated] (DRILL-5104) Foreman sets external sort memory
allocation even for a physical plan
[ https://issues.apache.org/jira/browse/DRILL-5104?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Rahul Challapalli updated DRILL-5104:
-------------------------------------
Attachment: physical.json
2711af55-e1f7-bf4e-3dcf-b9f66f69fc33.sys.drill
Looks like I am still hitting this problem. Below is the query I used to generate the attached physical plan (physical.json)
{code}
ALTER SESSION SET `exec.sort.disable_managed` = false;
alter session set `planner.width.max_per_node` = 1;
alter session set `planner.width.max_per_node` = 1;
alter session set `planner.disable_exchanges` = true;
alter session set `planner.memory.max_query_memory_per_node` = 62914560;
select count(*) from (select * from dfs.`/drill/testdata/resource-manager/250wide-small.tbl` order by columns[0])d where d.columns[0] = 'ljdfhwuehnoiueyf';
{code}
Now I submitted the physical plan using the below command
{code}
/opt/drill/bin/submit_plan -f /home/framework/physical.json -t physical -z 10.10.100.183:5181
{code}
From the attached query profile, external sort consumed 104 MB before spilling. Can you take a look [~Paul.Rogers] ?
> Foreman sets external sort memory allocation even for a physical plan
> ---------------------------------------------------------------------
>
> Key: DRILL-5104
> URL: https://issues.apache.org/jira/browse/DRILL-5104
> Project: Apache Drill
> Issue Type: Bug
> Affects Versions: 1.8.0
> Reporter: Paul Rogers
> Assignee: Paul Rogers
> Labels: ready-to-commit
> Fix For: 1.10.0
>
> Attachments: 2711af55-e1f7-bf4e-3dcf-b9f66f69fc33.sys.drill, physical.json
>
>
> Consider the (disabled) unit test {{TestSimpleExternalSort.outOfMemoryExternalSort}} which uses the physical plan {{xsort/oom_sort_test.json}} that contains a setting for the amount of memory to allocate:
> {code}
> {
> ...
> pop:"external-sort",
> ...
> initialAllocation: 1000000,
> maxAllocation: 30000000
> },
> {code}
> When run, the amount of memory is set to 715827882. The reason is that code was added to {{Foreman}} to compute the memory to allocate to the external sort:
> {code}
> private void runPhysicalPlan(final PhysicalPlan plan) throws ExecutionSetupException {
> validatePlan(plan);
> MemoryAllocationUtilities.setupSortMemoryAllocations(plan, queryContext);
> {code}
> The problem is that a physical plan should execute as provided to enable detailed testing.
> To solve this problem, move the sort memory setup to the path taken by SQL queries, but not via physical plans.
> This change is necessary to re-enable the previously-disabled external sort tests.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)