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

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

Commit 9063b83254465ad4e40e5d269a917637265a8645 in impala's branch 
refs/heads/master from Michael Smith
[ https://gitbox.apache.org/repos/asf?p=impala.git;h=9063b8325 ]

IMPALA-13166: Speed up getFullyQualifiedRawPath

Caches getFullyQualifiedRawPath for repeat calls, and uses
Arrays.asList to avoid copying primitive arrays. Returns an
ImmutableList as more compact than an ArrayList.

Implements equals and hashCode on Path to provide a cleaner interface
for lookups on Path.

Speeds up PlannerTest#testManyExpressionPerformance from 21s to 18s in
local testing.

Change-Id: If02d3b20a980508deafd2109a10676ab01e50981
Reviewed-on: http://gerrit.cloudera.org:8080/21530
Reviewed-by: Michael Smith <[email protected]>
Tested-by: Michael Smith <[email protected]>


> Queries with many nested views are still slow
> ---------------------------------------------
>
>                 Key: IMPALA-13166
>                 URL: https://issues.apache.org/jira/browse/IMPALA-13166
>             Project: IMPALA
>          Issue Type: Improvement
>          Components: Frontend
>    Affects Versions: Impala 4.4.0
>            Reporter: Michael Smith
>            Assignee: Michael Smith
>            Priority: Critical
>             Fix For: Impala 5.0.0
>
>
> Further profiling on the query from IMPALA-12800 - and a larger version of 
> the same - show significant time spent in {{Analyzer#registerSlotRef}}. The 
> bulk of the work here is in checking whether a {{SlotDescriptor}} exists in 
> the current {{TupleDescriptor}}, both because 
> {{Path#getFullyQualifiedRawPath}} is expensive and because equals on the 
> resulting list is expensive (especially repeated over every 
> {{SlotDescriptor}} in the {{TupleDescriptor}}.
> There's room for improvement here:
> 1. avoid copying {{rawPath_}} every time we call {{getFullyQualifiedRawPath}}
> 2. use a map to identify whether a {{SlotDescriptor}} already exists at 
> {{Path}} in the current {{TupleDescriptor}}
> 3 other small improvements may exist around memory allocation



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to