NettyBlockRpcServer¶
NettyBlockRpcServer is a RpcHandler to handle messages for NettyBlockTransferService.

Creating Instance¶
NettyBlockRpcServer takes the following to be created:
- Application ID
- Serializer
- BlockDataManager
NettyBlockRpcServer is created when:
NettyBlockTransferServiceis requested to initialize
OneForOneStreamManager¶
NettyBlockRpcServer uses a OneForOneStreamManager.
Receiving RPC Messages¶
receive(
client: TransportClient,
rpcMessage: ByteBuffer,
responseContext: RpcResponseCallback): Unit
receive deserializes the incoming RPC message (from ByteBuffer to BlockTransferMessage) and prints out the following TRACE message to the logs:
Received request: [message]
receive handles the message.
receive is part of the RpcHandler abstraction.
FetchShuffleBlocks¶
FetchShuffleBlocks carries the following:
- Application ID
- Executor ID
- Shuffle ID
- Map IDs (
long[]) - Reduce IDs (
long[][]) batchFetchEnabledflag
When received, receive...FIXME
receive prints out the following TRACE message in the logs:
Registered streamId [streamId] with [numBlockIds] buffers
In the end, receive responds with a StreamHandle (with the streamId and the number of blocks). The response is serialized to a ByteBuffer.
FetchShuffleBlocks is posted when:
OneForOneBlockFetcheris requested to createFetchShuffleBlocksMsgAndBuildBlockIds
GetLocalDirsForExecutors¶
OpenBlocks¶
OpenBlocks carries the following:
- Application ID
- Executor ID
- Block IDs
When received, receive...FIXME
receive prints out the following TRACE message in the logs:
Registered streamId [streamId] with [blocksNum] buffers
In the end, receive responds with a StreamHandle (with the streamId and the number of blocks). The response is serialized to a ByteBuffer.
OpenBlocks is posted when:
OneForOneBlockFetcheris requested to start
UploadBlock¶
UploadBlock carries the following:
- Application ID
- Executor ID
- Block ID
- Metadata (
byte[]) - Block Data (
byte[])
When received, receive deserializes the metadata to get the StorageLevel and ClassTag of the block being uploaded.
receive...FIXME
UploadBlock is posted when:
NettyBlockTransferServiceis requested to upload a block
Logging¶
Enable ALL logging level for org.apache.spark.network.netty.NettyBlockRpcServer logger to see what happens inside.
Add the following line to conf/log4j.properties:
log4j.logger.org.apache.spark.network.netty.NettyBlockRpcServer=ALL
Refer to Logging.