You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@spark.apache.org by GitBox <gi...@apache.org> on 2020/09/30 11:24:32 UTC

[GitHub] [spark] tomvanbussel opened a new pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

tomvanbussel opened a new pull request #29910:
URL: https://github.com/apache/spark/pull/29910


   Backport of #29785 to Spark 2.4
   
   ### What changes were proposed in this pull request?
   
   This PR changes `UnsafeExternalSorter` to no longer allocate any memory while spilling. In particular it removes the allocation of a new pointer array in `UnsafeInMemorySorter`. Instead the new pointer array is allocated whenever the next record is inserted into the sorter.
   
   ### Why are the changes needed?
   
   Without this change the `UnsafeExternalSorter` could throw an OOM while spilling. The following sequence of events would have triggered an OOM:
   
   1. `UnsafeExternalSorter` runs out of space in its pointer array and attempts to allocate a new large array to replace the old one.
   2. `TaskMemoryManager` tries to allocate the memory backing the new large array using `MemoryManager`, but `MemoryManager` is only willing to return most but not all of the memory requested.
   3. `TaskMemoryManager` asks `UnsafeExternalSorter` to spill, which causes `UnsafeExternalSorter` to spill the current run to disk, to free its record pages and to reset its `UnsafeInMemorySorter`.
   4. `UnsafeInMemorySorter` frees the old pointer array, and tries to allocate a new small pointer array.
   5. `TaskMemoryManager` tries to allocate the memory backing the small array using `MemoryManager`, but `MemoryManager` is unwilling to give it any memory, as the `TaskMemoryManager` is still holding on to the memory it got for the new large array.
   6. `TaskMemoryManager` again asks `UnsafeExternalSorter` to spill, but this time there is nothing to spill.
   7. `UnsafeInMemorySorter` receives less memory than it requested, and causes a `SparkOutOfMemoryError` to be thrown, which causes the current task to fail.
   
   With the changes in the PR the following will happen instead:
   
   1. `UnsafeExternalSorter` runs out of space in its pointer array and attempts to allocate a new large array to replace the old one.
   2. `TaskMemoryManager` tries to allocate the memory backing the new large array using `MemoryManager`, but `MemoryManager` is only willing to return most but not all of the memory requested.
   3. `TaskMemoryManager` asks `UnsafeExternalSorter` to spill, which causes `UnsafeExternalSorter` to spill the current run to disk, to free its record pages and to reset its `UnsafeInMemorySorter`.
   4. `UnsafeInMemorySorter` frees the old pointer array.
   5. `TaskMemoryManager` returns control to `UnsafeExternalSorter.growPointerArrayIfNecessary` (either by returning the the new large array or by throwing a `SparkOutOfMemoryError`).
   6. `UnsafeExternalSorter` either frees the new large array or it ignores the `SparkOutOfMemoryError` depending on what happened in the previous step.
   7. `UnsafeExternalSorter` successfully allocates a new small pointer array and operation continues as normal.
   
   ### Does this PR introduce _any_ user-facing change?
   
   No
   
   ### How was this patch tested?
   
   Tests were added in `UnsafeExternalSorterSuite` and `UnsafeInMemorySorterSuite`.


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org


[GitHub] [spark] hvanhovell closed pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

Posted by GitBox <gi...@apache.org>.
hvanhovell closed pull request #29910:
URL: https://github.com/apache/spark/pull/29910


   


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org


[GitHub] [spark] SparkQA commented on pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

Posted by GitBox <gi...@apache.org>.
SparkQA commented on pull request #29910:
URL: https://github.com/apache/spark/pull/29910#issuecomment-705241104


   **[Test build #129531 has finished](https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/129531/testReport)** for PR 29910 at commit [`e431fb8`](https://github.com/apache/spark/commit/e431fb8edd16f9d112c7a6ead44e6e871db1e17f).
    * This patch passes all tests.
    * This patch merges cleanly.
    * This patch adds no public classes.


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org


[GitHub] [spark] SparkQA removed a comment on pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

Posted by GitBox <gi...@apache.org>.
SparkQA removed a comment on pull request #29910:
URL: https://github.com/apache/spark/pull/29910#issuecomment-705174519


   **[Test build #129531 has started](https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/129531/testReport)** for PR 29910 at commit [`e431fb8`](https://github.com/apache/spark/commit/e431fb8edd16f9d112c7a6ead44e6e871db1e17f).


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org


[GitHub] [spark] SparkQA commented on pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

Posted by GitBox <gi...@apache.org>.
SparkQA commented on pull request #29910:
URL: https://github.com/apache/spark/pull/29910#issuecomment-701337584


   Kubernetes integration test starting
   URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/33887/
   


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org


[GitHub] [spark] hvanhovell commented on pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

Posted by GitBox <gi...@apache.org>.
hvanhovell commented on pull request #29910:
URL: https://github.com/apache/spark/pull/29910#issuecomment-705399868


   Merging this. Thanks!


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org


[GitHub] [spark] AmplabJenkins commented on pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

Posted by GitBox <gi...@apache.org>.
AmplabJenkins commented on pull request #29910:
URL: https://github.com/apache/spark/pull/29910#issuecomment-701342348






----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org


[GitHub] [spark] hvanhovell commented on pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

Posted by GitBox <gi...@apache.org>.
hvanhovell commented on pull request #29910:
URL: https://github.com/apache/spark/pull/29910#issuecomment-705399868


   Merging this. Thanks!


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org


[GitHub] [spark] AmplabJenkins removed a comment on pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

Posted by GitBox <gi...@apache.org>.
AmplabJenkins removed a comment on pull request #29910:
URL: https://github.com/apache/spark/pull/29910#issuecomment-701342348






----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org


[GitHub] [spark] SparkQA commented on pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

Posted by GitBox <gi...@apache.org>.
SparkQA commented on pull request #29910:
URL: https://github.com/apache/spark/pull/29910#issuecomment-701329853


   **[Test build #129270 has started](https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/129270/testReport)** for PR 29910 at commit [`e431fb8`](https://github.com/apache/spark/commit/e431fb8edd16f9d112c7a6ead44e6e871db1e17f).


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org


[GitHub] [spark] SparkQA commented on pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

Posted by GitBox <gi...@apache.org>.
SparkQA commented on pull request #29910:
URL: https://github.com/apache/spark/pull/29910#issuecomment-705180721


   Kubernetes integration test starting
   URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/34136/
   


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org


[GitHub] [spark] SparkQA commented on pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

Posted by GitBox <gi...@apache.org>.
SparkQA commented on pull request #29910:
URL: https://github.com/apache/spark/pull/29910#issuecomment-701342327


   Kubernetes integration test status success
   URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/33887/
   


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org


[GitHub] [spark] SparkQA removed a comment on pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

Posted by GitBox <gi...@apache.org>.
SparkQA removed a comment on pull request #29910:
URL: https://github.com/apache/spark/pull/29910#issuecomment-701329853


   **[Test build #129270 has started](https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/129270/testReport)** for PR 29910 at commit [`e431fb8`](https://github.com/apache/spark/commit/e431fb8edd16f9d112c7a6ead44e6e871db1e17f).


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org


[GitHub] [spark] AmplabJenkins removed a comment on pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

Posted by GitBox <gi...@apache.org>.
AmplabJenkins removed a comment on pull request #29910:
URL: https://github.com/apache/spark/pull/29910#issuecomment-701402482






----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org


[GitHub] [spark] hvanhovell closed pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

Posted by GitBox <gi...@apache.org>.
hvanhovell closed pull request #29910:
URL: https://github.com/apache/spark/pull/29910


   


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org


[GitHub] [spark] SparkQA commented on pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

Posted by GitBox <gi...@apache.org>.
SparkQA commented on pull request #29910:
URL: https://github.com/apache/spark/pull/29910#issuecomment-705174519


   **[Test build #129531 has started](https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/129531/testReport)** for PR 29910 at commit [`e431fb8`](https://github.com/apache/spark/commit/e431fb8edd16f9d112c7a6ead44e6e871db1e17f).


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org


[GitHub] [spark] SparkQA commented on pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

Posted by GitBox <gi...@apache.org>.
SparkQA commented on pull request #29910:
URL: https://github.com/apache/spark/pull/29910#issuecomment-701401674


   **[Test build #129270 has finished](https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/129270/testReport)** for PR 29910 at commit [`e431fb8`](https://github.com/apache/spark/commit/e431fb8edd16f9d112c7a6ead44e6e871db1e17f).
    * This patch passes all tests.
    * This patch merges cleanly.
    * This patch adds no public classes.


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org


[GitHub] [spark] manuzhang commented on a change in pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

Posted by GitBox <gi...@apache.org>.
manuzhang commented on a change in pull request #29910:
URL: https://github.com/apache/spark/pull/29910#discussion_r498167471



##########
File path: core/src/main/java/org/apache/spark/util/collection/unsafe/sort/UnsafeExternalSorter.java
##########
@@ -341,40 +345,53 @@ public void cleanupResources() {
   private void growPointerArrayIfNecessary() throws IOException {
     assert(inMemSorter != null);
     if (!inMemSorter.hasSpaceForAnotherRecord()) {
+      if (inMemSorter.numRecords() <= 0) {
+        // Spilling was triggered just before this method was called. The pointer array was freed
+        // during the spill, so a new pointer array needs to be allocated here.
+        LongArray array = allocateArray(inMemSorter.getInitialSize());
+        inMemSorter.expandPointerArray(array);
+        return;
+      }
+
       long used = inMemSorter.getMemoryUsage();
-      LongArray array;
+      LongArray array = null;
       try {
         // could trigger spilling
         array = allocateArray(used / 8 * 2);
       } catch (TooLargePageException e) {
         // The pointer array is too big to fix in a single page, spill.
         spill();
-        return;
       } catch (SparkOutOfMemoryError e) {
-        // should have trigger spilling
-        if (!inMemSorter.hasSpaceForAnotherRecord()) {
+        if (inMemSorter.numRecords() > 0) {
           logger.error("Unable to grow the pointer array");
           throw e;
         }
-        return;
+        // The new array could not be allocated, but that is not an issue as it is longer needed,

Review comment:
       no longer needed ?




----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org


[GitHub] [spark] hvanhovell commented on pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

Posted by GitBox <gi...@apache.org>.
hvanhovell commented on pull request #29910:
URL: https://github.com/apache/spark/pull/29910#issuecomment-705170795


   retest this please


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org


[GitHub] [spark] AmplabJenkins commented on pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

Posted by GitBox <gi...@apache.org>.
AmplabJenkins commented on pull request #29910:
URL: https://github.com/apache/spark/pull/29910#issuecomment-705188582






----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org


[GitHub] [spark] AmplabJenkins removed a comment on pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

Posted by GitBox <gi...@apache.org>.
AmplabJenkins removed a comment on pull request #29910:
URL: https://github.com/apache/spark/pull/29910#issuecomment-705241611






----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org


[GitHub] [spark] AmplabJenkins commented on pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

Posted by GitBox <gi...@apache.org>.
AmplabJenkins commented on pull request #29910:
URL: https://github.com/apache/spark/pull/29910#issuecomment-705241611






----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org


[GitHub] [spark] AmplabJenkins commented on pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

Posted by GitBox <gi...@apache.org>.
AmplabJenkins commented on pull request #29910:
URL: https://github.com/apache/spark/pull/29910#issuecomment-701402482






----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org


[GitHub] [spark] SparkQA commented on pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

Posted by GitBox <gi...@apache.org>.
SparkQA commented on pull request #29910:
URL: https://github.com/apache/spark/pull/29910#issuecomment-705188563


   Kubernetes integration test status success
   URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/34136/
   


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org


[GitHub] [spark] AmplabJenkins removed a comment on pull request #29910: [SPARK-32901][CORE][2.4] Do not allocate memory while spilling UnsafeExternalSorter

Posted by GitBox <gi...@apache.org>.
AmplabJenkins removed a comment on pull request #29910:
URL: https://github.com/apache/spark/pull/29910#issuecomment-705188582






----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org
For additional commands, e-mail: reviews-help@spark.apache.org