uber / RemoteShuffleService

Remote shuffle service for Apache Spark to store shuffle data on remote servers.
Other
321 stars 100 forks source link

[Proposal] Unsafe memory management in RSS mappers #59

Open mayurdb opened 2 years ago

mayurdb commented 2 years ago

Mappers in RSS send shuffle data for any given partition to a single RSS servers, so that reducers can read the shuffle data from a single location. To incorporate this, a hashmap of (partition Id -> shuffle data for that partition) is maintained in mappers. It works as follows: image

This approach leads to perf degradation when the number of records and/or amount of shuffle data is very high mainly because:

image

Proposal Use unsafe memory management for RSS in lines with Spark's unsafe memory management. image

For implementation, components from the Spark's implementation of unsafe shuffle writer can be used. Based on the POC, here are the performance numbers image