otterc opened a new pull request #30312:
URL: https://github.com/apache/spark/pull/30312


   ### What changes were proposed in this pull request?
   This is the shuffle writer side change where executors can push data to 
remote shuffle services. This is needed for push-based shuffle - SPIP 
[SPARK-30602](https://issues.apache.org/jira/browse/SPARK-30602).
   Summary of changes:
   - This adds support for executors to push shuffle blocks after map tasks 
complete writing shuffle data.
   - This also introduces a timeout specifically for creating connection to 
remote shuffle services. 
   
   ### Why are the changes needed?
   - These changes are needed for push-based shuffle. Refer to the SPIP in 
[SPARK-30602](https://issues.apache.org/jira/browse/SPARK-30602).
   - The main reason to create a separate connection creation timeout is 
because the existing `connectionTimeoutMs` is overloaded and is used for 
connection creation timeouts as well as connection idle timeout. The connection 
creation timeout should be much lower than the idle timeouts. The default for 
`connectionTimeoutMs` is 120s. This is quite high for just establishing the 
connections.  If a shuffle server node is bad then the connection creation will 
fail within few seconds. However, an overloaded shuffle server may take much 
longer to respond to a request and the channel can stay idle for a much longer 
time which is expected.  Another reason is that with push-based shuffle, an 
executor may be fetching shuffle data and pushing shuffle data (next stage) 
simultaneously. Both these tasks will share the same connections with the 
shuffle service. If there is a bad shuffle server node and the connection 
creation timeout is very high then both these tasks end up waiting a long time 
tim
 e eventually impacting the performance.
   
   ### Does this PR introduce _any_ user-facing change?
   Yes. This PR introduces client-side configs for push-based shuffle. If 
push-based shuffle is turned-off then the users will not see any change.
   
   ### How was this patch tested?
   Added unit tests.
   The reference PR with the consolidated changes covering the complete 
implementation is also provided in 
[SPARK-30602](https://issues.apache.org/jira/browse/SPARK-30602).
   We have already verified the functionality and the improved performance as 
documented in the SPIP doc.
   
   Lead-authored-by: Min Shen [email protected]
   Co-authored-by: Chandni Singh [email protected]
   Co-authored-by: Ye Zhou [email protected]
   


----------------------------------------------------------------
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:
[email protected]



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

Reply via email to