spark-instrumented-optimizer/common
Min Shen 82eea13c76 [SPARK-32915][CORE] Network-layer and shuffle RPC layer changes to support push shuffle blocks
### What changes were proposed in this pull request?

This is the first patch for SPIP SPARK-30602 for push-based shuffle.
Summary of changes:
* Introduce new API in ExternalBlockStoreClient to push blocks to a remote shuffle service.
* Leveraging the streaming upload functionality in SPARK-6237, it also enables the ExternalBlockHandler to delegate the handling of block push requests to MergedShuffleFileManager.
* Propose the API for MergedShuffleFileManager, where the core logic on the shuffle service side to handle block push requests is defined. The actual implementation of this API is deferred into a later RB to restrict the size of this PR.
* Introduce OneForOneBlockPusher to enable pushing blocks to remote shuffle services in shuffle RPC layer.
* New protocols in shuffle RPC layer to support the functionalities.

### Why are the changes needed?

Refer to the SPIP in SPARK-30602

### Does this PR introduce _any_ user-facing change?
No.

### 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.
We have already verified the functionality and the improved performance as documented in the SPIP doc.

Lead-authored-by: Min Shen <mshenlinkedin.com>
Co-authored-by: Chandni Singh <chsinghlinkedin.com>
Co-authored-by: Ye Zhou <yezhoulinkedin.com>

Closes #29855 from Victsm/SPARK-32915.

Lead-authored-by: Min Shen <mshen@linkedin.com>
Co-authored-by: Chandni Singh <chsingh@linkedin.com>
Co-authored-by: Ye Zhou <yezhou@linkedin.com>
Co-authored-by: Chandni Singh <singh.chandni@gmail.com>
Co-authored-by: Min Shen <victor.nju@gmail.com>
Signed-off-by: Mridul Muralidharan <mridul<at>gmail.com>
2020-10-15 12:34:52 -05:00
..
kvstore [SPARK-33115][BUILD][DOCS] Fix javadoc errors in kvstore and unsafe modules 2020-10-13 21:37:26 +09:00
network-common [SPARK-32915][CORE] Network-layer and shuffle RPC layer changes to support push shuffle blocks 2020-10-15 12:34:52 -05:00
network-shuffle [SPARK-32915][CORE] Network-layer and shuffle RPC layer changes to support push shuffle blocks 2020-10-15 12:34:52 -05:00
network-yarn [SPARK-31611][YARN] Register NettyMemoryMetrics into Node Manager's metrics system 2020-05-08 15:50:19 -07:00
sketch [SPARK-32892][CORE][SQL] Fix hash functions on big-endian platforms 2020-09-23 12:36:46 -05:00
tags [SPARK-32245][INFRA] Run Spark tests in Github Actions 2020-07-11 13:09:06 -07:00
unsafe [SPARK-33115][BUILD][DOCS] Fix javadoc errors in kvstore and unsafe modules 2020-10-13 21:37:26 +09:00