You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@tez.apache.org by "TezQA (JIRA)" <ji...@apache.org> on 2019/05/17 04:41:00 UTC

[jira] [Commented] (TEZ-4069) Avoid repeated computation of preferred locations in split grouping.

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

TezQA commented on TEZ-4069:
----------------------------

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue}  7m 55s{color} | {color:blue} Docker mode activated. {color} |
|| || || || {color:brown} Prechecks {color} ||
| {color:green}+1{color} | {color:green} @author {color} | {color:green}  0m  0s{color} | {color:green} The patch does not contain any @author tags. {color} |
| {color:red}-1{color} | {color:red} test4tests {color} | {color:red}  0m  0s{color} | {color:red} The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. {color} |
|| || || || {color:brown} master Compile Tests {color} ||
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  3m 27s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  0m 12s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green}  2m 18s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green}  1m  2s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  0m 27s{color} | {color:green} master passed {color} |
|| || || || {color:brown} Patch Compile Tests {color} ||
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  0m 12s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  0m 12s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green}  0m 12s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green}  0m  9s{color} | {color:green} tez-mapreduce: The patch generated 0 new + 18 unchanged - 1 fixed = 18 total (was 19) {color} |
| {color:green}+1{color} | {color:green} whitespace {color} | {color:green}  0m  0s{color} | {color:green} The patch has no whitespace issues. {color} |
| {color:red}-1{color} | {color:red} findbugs {color} | {color:red}  0m 35s{color} | {color:red} tez-mapreduce generated 2 new + 0 unchanged - 0 fixed = 2 total (was 0) {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  0m 13s{color} | {color:green} the patch passed {color} |
|| || || || {color:brown} Other Tests {color} ||
| {color:red}-1{color} | {color:red} unit {color} | {color:red}  1m 13s{color} | {color:red} tez-mapreduce in the patch failed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green}  0m 19s{color} | {color:green} The patch does not generate ASF License warnings. {color} |
| {color:black}{color} | {color:black} {color} | {color:black} 18m 37s{color} | {color:black} {color} |
\\
\\
|| Reason || Tests ||
| FindBugs | module:tez-mapreduce |
|  |  org.apache.tez.mapreduce.grouper.SplitContainer.getProvidedLocations() may expose internal representation by returning SplitContainer.providedLocations  At SplitContainer.java:by returning SplitContainer.providedLocations  At SplitContainer.java:[line 62] |
|  |  org.apache.tez.mapreduce.grouper.SplitContainer.setProvidedLocations(String[]) may expose internal representation by storing an externally mutable object into SplitContainer.providedLocations  At SplitContainer.java:by storing an externally mutable object into SplitContainer.providedLocations  At SplitContainer.java:[line 53] |
| Failed junit tests | hadoop.mapred.split.TestGroupedSplits |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=17.05.0-ce Server=17.05.0-ce Image:yetus/tez:d4a62de |
| JIRA Issue | TEZ-4069 |
| JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12968983/TEZ-4069.patch |
| Optional Tests |  dupname  asflicense  javac  javadoc  unit  findbugs  checkstyle  compile  |
| uname | Linux 2425d2e7fd07 4.4.0-138-generic #164-Ubuntu SMP Tue Oct 2 17:16:02 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | /testptch/patchprocess/precommit/personality/provided.sh |
| git revision | master / 4125639 |
| maven | version: Apache Maven 3.3.9 |
| Default Java | 1.8.0_212 |
| findbugs | v3.0.1 |
| findbugs | https://builds.apache.org/job/PreCommit-TEZ-Build/145/artifact/out/new-findbugs-tez-mapreduce.html |
| unit | https://builds.apache.org/job/PreCommit-TEZ-Build/145/artifact/out/patch-unit-tez-mapreduce.txt |
|  Test Results | https://builds.apache.org/job/PreCommit-TEZ-Build/145/testReport/ |
| Max. process+thread count | 219 (vs. ulimit of 10000) |
| modules | C: tez-mapreduce U: tez-mapreduce |
| Console output | https://builds.apache.org/job/PreCommit-TEZ-Build/145/console |
| Powered by | Apache Yetus 0.8.0   http://yetus.apache.org |


This message was automatically generated.



> Avoid repeated computation of preferred locations in split grouping.
> --------------------------------------------------------------------
>
>                 Key: TEZ-4069
>                 URL: https://issues.apache.org/jira/browse/TEZ-4069
>             Project: Apache Tez
>          Issue Type: Improvement
>    Affects Versions: 0.9.2
>            Reporter: Oliver Draese
>            Priority: Major
>         Attachments: TEZ-4069.patch
>
>
> The TezSplitGrouper iterates through the list of splits multiple times, when trying to group the splits (see getGroupedSplits). Each time, it asks the locationProvider to return the array of preferred locations for the splits. This has two side effects:
>  * generating the list of preferred locations can cause some CPU overhead (i.e. calculating the consistent hash in HostAffinitySplitLocationProvider), which can be avoided
>  * if the list of preferred location is changing between the different loops of getGroupedSplits, we might encounter a NullPointerException. This happens if a new location appears, that was not part of the initial set of locations when populating the distinctLocations map.
> The getGroupedSplits should query the preferred locations only once (for each split) via the location provider and then memorize these instead of asking the location provider repeatedly.
>  
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)