NettyBlockRpcServer
is a RpcHandler that handles messages for NettyBlockTransferService.
NettyBlockRpcServer
is created when…FIXME
NettyBlockRpcServer
uses a OneForOneStreamManager for…FIXME
Message | Behaviour |
---|---|
Obtaining local blocks and registering them with the internal OneForOneStreamManager |
|
Deserializes a block and stores it in BlockDataManager |
Tip
|
Enable TRACE logging level to see received messages in the logs.
|
Tip
|
Enable Add the following line to
Refer to Logging. |
Obtaining Local Blocks and Registering with Internal OneForOneStreamManager
— OpenBlocks
Message Handler
When OpenBlocks
arrives, NettyBlockRpcServer
requests block data (from BlockDataManager
) for every block id in the message. The block data is a collection of ManagedBuffer
for every block id in the incoming message.
Note
|
BlockDataManager is given when NettyBlockRpcServer is created.
|
NettyBlockRpcServer
then registers a stream of ManagedBuffer
s (for the blocks) with the internal StreamManager
under streamId
.
Note
|
The internal StreamManager is OneForOneStreamManager and is created when NettyBlockRpcServer is created.
|
You should see the following TRACE message in the logs:
TRACE NettyBlockRpcServer: Registered streamId [streamId] with [size] buffers
In the end, NettyBlockRpcServer
responds with a StreamHandle
(with the streamId
and the number of blocks). The response is serialized as a ByteBuffer
.
When UploadBlock
arrives, NettyBlockRpcServer
deserializes the metadata
of the input message to get the StorageLevel and ClassTag
of the block being uploaded.
Note
|
metadata is serialized before NettyBlockTransferService sends a UploadBlock message (using the internal JavaSerializer ) that is given as serializer when NettyBlockRpcServer is created.
|
NettyBlockRpcServer
creates a BlockId
for the block id and requests the BlockDataManager
to store the block.
Note
|
The BlockDataManager is passed in when NettyBlockRpcServer is created.
|
In the end, NettyBlockRpcServer
responds with a 0
-capacity ByteBuffer
.
Note
|
UploadBlock is sent when NettyBlockTransferService uploads a block.
|
NettyBlockRpcServer
takes the following when created:
NettyBlockRpcServer
initializes the internal registries and counters.
receive(
client: TransportClient,
rpcMessage: ByteBuffer,
responseContext: RpcResponseCallback): Unit
Note
|
receive is part of RpcHandler Contract to…FIXME.
|
receive
…FIXME