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 Type
    Method
    Description
    getVersion(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.
    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 - DatanodeDetails
      nodeReport - NodeReportProto
      pipelineReport - PipelineReportsProto
      layoutVersionInfo - 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

      Boolean isNodeRegistered(org.apache.hadoop.hdds.protocol.DatanodeDetails datanodeDetails)
      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