LuciferYang commented on code in PR #37843:
URL: https://github.com/apache/spark/pull/37843#discussion_r967635922


##########
common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/OneForOneBlockFetcher.java:
##########
@@ -113,10 +113,28 @@ public OneForOneBlockFetcher(
    * @return whether the array contains only shuffle block IDs
    */
   private boolean areShuffleBlocksOrChunks(String[] blockIds) {
-    if (Arrays.stream(blockIds).anyMatch(blockId -> 
!blockId.startsWith(SHUFFLE_BLOCK_PREFIX))) {
+    if (isAnyBlockNotStartWithShuffleBlockPrefix(blockIds)) {
       // It comes here because there is a blockId which doesn't have 
"shuffle_" prefix so we
       // check if all the block ids are shuffle chunk Ids.
-      return Arrays.stream(blockIds).allMatch(blockId -> 
blockId.startsWith(SHUFFLE_CHUNK_PREFIX));
+      return isAllBlocksStartWithShuffleChunkPrefix(blockIds);
+    }
+    return true;
+  }
+
+  private boolean isAnyBlockNotStartWithShuffleBlockPrefix(String[] blockIds) {
+    for (String blockId : blockIds) {
+      if (!blockId.startsWith(SHUFFLE_BLOCK_PREFIX)) {
+        return true;
+      }
+    }
+    return false;
+  }
+
+  private boolean isAllBlocksStartWithShuffleChunkPrefix(String[] blockIds) {

Review Comment:
   Java 8
   
   ```
   OpenJDK 64-Bit Server VM 1.8.0_345-b01 on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
   Test for AllMatch with input size 1:      Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                                  5              6       
    1         20.0          50.0       1.0X
   Use Loop api                                          2              2       
    1         66.4          15.1       3.3X
   
   OpenJDK 64-Bit Server VM 1.8.0_345-b01 on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
   Test for AllMatch with input size 4:      Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                                  7              9       
    2         13.7          73.0       1.0X
   Use Loop api                                          2              2       
    1         60.0          16.7       4.4X
   
   OpenJDK 64-Bit Server VM 1.8.0_345-b01 on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
   Test for AllMatch with input size 9:      Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                                 10             11       
    1         10.1          99.0       1.0X
   Use Loop api                                          1              2       
    1         95.9          10.4       9.5X
   
   OpenJDK 64-Bit Server VM 1.8.0_345-b01 on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
   Test for AllMatch with input size 19:     Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                                 15             16       
    1          6.7         149.8       1.0X
   Use Loop api                                          2              2       
    0         58.6          17.1       8.8X
   
   OpenJDK 64-Bit Server VM 1.8.0_345-b01 on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
   Test for AllMatch with input size 49:     Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                                 32             35       
    3          3.1         320.6       1.0X
   Use Loop api                                          4              5       
    0         22.3          44.8       7.2X
   
   OpenJDK 64-Bit Server VM 1.8.0_345-b01 on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
   Test for AllMatch with input size 99:     Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                                 58             60       
    2          1.7         581.1       1.0X
   Use Loop api                                          6              7       
    1         16.1          62.1       9.4X
   
   OpenJDK 64-Bit Server VM 1.8.0_345-b01 on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
   Test for AllMatch with input size 499:    Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                                259            265       
    5          0.4        2588.1       1.0X
   Use Loop api                                         21             23       
    2          4.8         209.5      12.4X
   
   OpenJDK 64-Bit Server VM 1.8.0_345-b01 on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
   Test for AllMatch with input size 999:    Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                                521            532       
   11          0.2        5213.4       1.0X
   Use Loop api                                         41             44       
    2          2.4         409.3      12.7X
   
   OpenJDK 64-Bit Server VM 1.8.0_345-b01 on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
   Test for AllMatch with input size 9999:   Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                               5252           5253       
    1          0.0       52521.7       1.0X
   Use Loop api                                        502            531       
   33          0.2        5020.5      10.5X
   ```
   
   Java 11
   
   ```
   OpenJDK 64-Bit Server VM 11.0.16+8-LTS on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
   Test for AllMatch with input size 1:      Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                                  4              4       
    0         24.3          41.2       1.0X
   Use Loop api                                          1              1       
    0         77.5          12.9       3.2X
   
   OpenJDK 64-Bit Server VM 11.0.16+8-LTS on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
   Test for AllMatch with input size 4:      Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                                  5              5       
    0         19.2          52.1       1.0X
   Use Loop api                                          2              2       
    0         62.8          15.9       3.3X
   
   OpenJDK 64-Bit Server VM 11.0.16+8-LTS on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
   Test for AllMatch with input size 9:      Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                                  7              7       
    1         14.7          68.2       1.0X
   Use Loop api                                          1              1       
    0         80.0          12.5       5.5X
   
   OpenJDK 64-Bit Server VM 11.0.16+8-LTS on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
   Test for AllMatch with input size 19:     Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                                 10             10       
    0         10.0          99.8       1.0X
   Use Loop api                                          2              2       
    0         52.3          19.1       5.2X
   
   OpenJDK 64-Bit Server VM 11.0.16+8-LTS on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
   Test for AllMatch with input size 49:     Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                                 21             21       
    0          4.7         212.7       1.0X
   Use Loop api                                          4              4       
    0         25.5          39.1       5.4X
   
   OpenJDK 64-Bit Server VM 11.0.16+8-LTS on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
   Test for AllMatch with input size 99:     Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                                 38             38       
    0          2.6         379.8       1.0X
   Use Loop api                                          8              8       
    0         12.5          80.1       4.7X
   
   OpenJDK 64-Bit Server VM 11.0.16+8-LTS on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
   Test for AllMatch with input size 499:    Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                                172            172       
    0          0.6        1717.9       1.0X
   Use Loop api                                         35             35       
    0          2.9         347.6       4.9X
   
   OpenJDK 64-Bit Server VM 11.0.16+8-LTS on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
   Test for AllMatch with input size 999:    Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                                339            340       
    0          0.3        3393.9       1.0X
   Use Loop api                                         68             68       
    0          1.5         682.2       5.0X
   
   OpenJDK 64-Bit Server VM 11.0.16+8-LTS on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
   Test for AllMatch with input size 9999:   Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                               3356           3357       
    1          0.0       33564.0       1.0X
   Use Loop api                                        679            679       
    0          0.1        6789.0       4.9X
   ```
   
   Java 17
   
   ```
   OpenJDK 64-Bit Server VM 17.0.4+8-LTS on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
   Test for AllMatch with input size 1:      Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                                  4              5       
    0         25.4          39.3       1.0X
   Use Loop api                                          1              1       
    0         98.6          10.1       3.9X
   
   OpenJDK 64-Bit Server VM 17.0.4+8-LTS on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
   Test for AllMatch with input size 4:      Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                                  5              6       
    1         20.5          48.9       1.0X
   Use Loop api                                          1              1       
    0        159.7           6.3       7.8X
   
   OpenJDK 64-Bit Server VM 17.0.4+8-LTS on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
   Test for AllMatch with input size 9:      Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                                  6              7       
    0         16.0          62.4       1.0X
   Use Loop api                                          1              1       
    0        111.7           9.0       7.0X
   
   OpenJDK 64-Bit Server VM 17.0.4+8-LTS on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
   Test for AllMatch with input size 19:     Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                                  9             10       
    1         11.0          90.8       1.0X
   Use Loop api                                          1              2       
    0         69.0          14.5       6.3X
   
   OpenJDK 64-Bit Server VM 17.0.4+8-LTS on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
   Test for AllMatch with input size 49:     Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                                 19             20       
    1          5.3         187.8       1.0X
   Use Loop api                                          3              4       
    0         32.0          31.2       6.0X
   
   OpenJDK 64-Bit Server VM 17.0.4+8-LTS on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
   Test for AllMatch with input size 99:     Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                                 34             39       
    2          2.9         341.0       1.0X
   Use Loop api                                          6              7       
    1         15.6          64.2       5.3X
   
   OpenJDK 64-Bit Server VM 17.0.4+8-LTS on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
   Test for AllMatch with input size 499:    Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                                155            163       
   10          0.6        1549.0       1.0X
   Use Loop api                                         30             32       
    1          3.3         303.2       5.1X
   
   OpenJDK 64-Bit Server VM 17.0.4+8-LTS on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
   Test for AllMatch with input size 999:    Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                                310            332       
   21          0.3        3099.1       1.0X
   Use Loop api                                         63             66       
    2          1.6         632.7       4.9X
   
   OpenJDK 64-Bit Server VM 17.0.4+8-LTS on Linux 5.15.0-1019-azure
   Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
   Test for AllMatch with input size 9999:   Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   Use Arrays.steam api                               3258           3288       
   43          0.0       32575.4       1.0X
   Use Loop api                                        639            653       
   17          0.2        6394.6       5.1X
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to