Package org.apache.hadoop.ozone.protocol
Interface StorageContainerNodeProtocol
@Private
public interface StorageContainerNodeProtocol
The protocol spoken between datanodes and SCM.
Please note that the full protocol spoken between a datanode and SCM is
separated into 2 interfaces. One interface that deals with node state and
another interface that deals with containers.
This interface has functions that deals with the state of datanode.
-
Method Summary
Modifier and TypeMethodDescriptiongetVersion(org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.SCMVersionRequestProto versionRequest) Gets the version info from SCM.isNodeRegistered(org.apache.hadoop.hdds.protocol.DatanodeDetails datanodeDetails) Check if node is registered or not.default List<SCMCommand<?>> processHeartbeat(org.apache.hadoop.hdds.protocol.DatanodeDetails datanodeDetails) Send heartbeat to indicate the datanode is alive and doing well.List<SCMCommand<?>> processHeartbeat(org.apache.hadoop.hdds.protocol.DatanodeDetails datanodeDetails, org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.CommandQueueReportProto queueReport) Send heartbeat to indicate the datanode is alive and doing well.register(org.apache.hadoop.hdds.protocol.DatanodeDetails datanodeDetails, org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.NodeReportProto nodeReport, org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.PipelineReportsProto pipelineReport, org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.LayoutVersionProto layoutVersionInfo) Register the node if the node finds that it is not registered with any SCM.
-
Method Details
-
getVersion
VersionResponse getVersion(org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.SCMVersionRequestProto versionRequest) Gets the version info from SCM.- Parameters:
versionRequest- - version Request.- Returns:
- - returns SCM version info and other required information needed by datanode.
-
register
RegisteredCommand register(org.apache.hadoop.hdds.protocol.DatanodeDetails datanodeDetails, org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.NodeReportProto nodeReport, org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.PipelineReportsProto pipelineReport, org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.LayoutVersionProto layoutVersionInfo) Register the node if the node finds that it is not registered with any SCM.- Parameters:
datanodeDetails- DatanodeDetailsnodeReport- NodeReportProtopipelineReport- PipelineReportsProtolayoutVersionInfo- LayoutVersionProto- Returns:
- SCMRegisteredResponseProto
-
processHeartbeat
default List<SCMCommand<?>> processHeartbeat(org.apache.hadoop.hdds.protocol.DatanodeDetails datanodeDetails) Send heartbeat to indicate the datanode is alive and doing well. This method is currently used only in tests. TODO: Cleanup and update tests, HDDS-9642.- Parameters:
datanodeDetails- - Datanode ID.- Returns:
- Commands to be sent to the datanode.
-
processHeartbeat
List<SCMCommand<?>> processHeartbeat(org.apache.hadoop.hdds.protocol.DatanodeDetails datanodeDetails, org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.CommandQueueReportProto queueReport) Send heartbeat to indicate the datanode is alive and doing well.- Parameters:
datanodeDetails- - Datanode ID.queueReport- - The CommandQueueReportProto report from the heartbeating datanode.- Returns:
- Commands to be sent to the datanode.
-
isNodeRegistered
Check if node is registered or not. Return true if Node is registered and false otherwise.- Parameters:
datanodeDetails- - Datanode ID.- Returns:
- true if Node is registered, false otherwise
-