Michael Blow has submitted this change and it was merged. Change subject: [NO ISSUE][COMP] Avoid Sorting Splits Locations ......................................................................
[NO ISSUE][COMP] Avoid Sorting Splits Locations - user model changes: no - storage format changes: no - interface changes: no Details: - Maintain a sorted copy of the locations to use for comparison inside AlgebricksAbsolutePartitionConstraint rather than sorting the locations that are aligned with storage. Change-Id: I9120b225916acc3e0e9717bd18c128d345d47b61 Reviewed-on: https://asterix-gerrit.ics.uci.edu/2878 Sonar-Qube: Jenkins <[email protected]> Reviewed-by: Michael Blow <[email protected]> Tested-by: Michael Blow <[email protected]> --- M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/utils/StoragePathUtil.java M hyracks-fullstack/algebricks/algebricks-common/src/main/java/org/apache/hyracks/algebricks/common/constraints/AlgebricksAbsolutePartitionConstraint.java 2 files changed, 4 insertions(+), 4 deletions(-) Approvals: Anon. E. Moose #1000171: Jenkins: No violations found Michael Blow: Looks good to me, approved; Verified diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/utils/StoragePathUtil.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/utils/StoragePathUtil.java index 63e29ce..05ea5c2 100644 --- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/utils/StoragePathUtil.java +++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/utils/StoragePathUtil.java @@ -41,15 +41,12 @@ public class StoragePathUtil { private static final Logger LOGGER = LogManager.getLogger(); - private static final Comparator<FileSplit> FILE_SPLIT_COMPARATOR = - Comparator.comparing(FileSplit::getNodeName).thenComparing(FileSplit::getPath); private StoragePathUtil() { } public static Pair<IFileSplitProvider, AlgebricksPartitionConstraint> splitProviderAndPartitionConstraints( FileSplit[] splits) { - Arrays.sort(splits, FILE_SPLIT_COMPARATOR); IFileSplitProvider splitProvider = new ConstantFileSplitProvider(splits); String[] loc = new String[splits.length]; for (int p = 0; p < splits.length; p++) { diff --git a/hyracks-fullstack/algebricks/algebricks-common/src/main/java/org/apache/hyracks/algebricks/common/constraints/AlgebricksAbsolutePartitionConstraint.java b/hyracks-fullstack/algebricks/algebricks-common/src/main/java/org/apache/hyracks/algebricks/common/constraints/AlgebricksAbsolutePartitionConstraint.java index 7a1bb28..fa4a707 100644 --- a/hyracks-fullstack/algebricks/algebricks-common/src/main/java/org/apache/hyracks/algebricks/common/constraints/AlgebricksAbsolutePartitionConstraint.java +++ b/hyracks-fullstack/algebricks/algebricks-common/src/main/java/org/apache/hyracks/algebricks/common/constraints/AlgebricksAbsolutePartitionConstraint.java @@ -25,9 +25,12 @@ public class AlgebricksAbsolutePartitionConstraint extends AlgebricksPartitionConstraint { private final String[] locations; + private final String[] sortedLocations; public AlgebricksAbsolutePartitionConstraint(String[] locations) { this.locations = locations; + sortedLocations = locations.clone(); + Arrays.sort(sortedLocations); } @Override @@ -55,7 +58,7 @@ break; case ABSOLUTE: AlgebricksAbsolutePartitionConstraint thatAbsolute = (AlgebricksAbsolutePartitionConstraint) that; - if (Arrays.equals(locations, thatAbsolute.locations)) { + if (Arrays.equals(sortedLocations, thatAbsolute.sortedLocations)) { return this; } break; -- To view, visit https://asterix-gerrit.ics.uci.edu/2878 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: merged Gerrit-Change-Id: I9120b225916acc3e0e9717bd18c128d345d47b61 Gerrit-PatchSet: 2 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: Murtadha Hubail <[email protected]> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Dmitry Lychagin <[email protected]> Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Michael Blow <[email protected]>
