java.lang.Object
org.apache.iotdb.confignode.persistence.node.NodeInfo
All Implemented Interfaces:
SnapshotProcessor

public class NodeInfo extends Object implements SnapshotProcessor
The NodeInfo stores cluster node information.

The cluster node information includes:

1. DataNode information

2. ConfigNode information

  • Constructor Details

    • NodeInfo

      public NodeInfo()
  • Method Details

    • registerDataNode

      public TSStatus registerDataNode(RegisterDataNodePlan registerDataNodePlan)
      Persist DataNode info.
      Parameters:
      registerDataNodePlan - RegisterDataNodePlan
      Returns:
      TSStatusCode.SUCCESS_STATUS
    • removeDataNode

      public TSStatus removeDataNode(RemoveDataNodePlan req)
      Persist Information about remove dataNode.
      Parameters:
      req - RemoveDataNodePlan
      Returns:
      TSStatus
    • updateDataNode

      public TSStatus updateDataNode(UpdateDataNodePlan updateDataNodePlan)
      Update the specified DataNode‘s location.
      Parameters:
      updateDataNodePlan - UpdateDataNodePlan
      Returns:
      TSStatusCode.SUCCESS_STATUS if update DataNode info successfully.
    • getDataNodeConfiguration

      public DataNodeConfigurationResp getDataNodeConfiguration(GetDataNodeConfigurationPlan getDataNodeConfigurationPlan)
      Get DataNodeConfiguration.
      Parameters:
      getDataNodeConfigurationPlan - GetDataNodeConfigurationPlan
      Returns:
      The specific DataNode's configuration or all DataNodes' configuration if dataNodeId in GetDataNodeConfigurationPlan is -1
    • getAINodeConfiguration

      public AINodeConfigurationResp getAINodeConfiguration(GetAINodeConfigurationPlan getAINodeConfigurationPlan)
    • getRegisteredNodeCount

      public int getRegisteredNodeCount()
      Return the number of registered Nodes.
    • getRegisteredDataNodeCount

      public int getRegisteredDataNodeCount()
      Return the number of registered DataNodes.
    • getDataNodeCpuCoreCount

      public int getDataNodeCpuCoreCount(int dataNodeId)
    • getDataNodeTotalCpuCoreCount

      public int getDataNodeTotalCpuCoreCount()
      Return the number of total cpu cores in online DataNodes.
    • getRegisteredDataNodes

      public List<TDataNodeConfiguration> getRegisteredDataNodes()
      Returns:
      All registered DataNodes.
    • getRegisteredDataNode

      public TDataNodeConfiguration getRegisteredDataNode(int dataNodeId)
      Returns:
      The specified registered DataNode.
    • getRegisteredDataNodes

      public List<TDataNodeConfiguration> getRegisteredDataNodes(List<Integer> dataNodeIds)
      Returns:
      The specified registered DataNodes.
    • getRegisteredAINodes

      public List<TAINodeConfiguration> getRegisteredAINodes()
    • getRegisteredAINode

      public TAINodeConfiguration getRegisteredAINode(int aiNodeId)
    • getRegisteredAINodeCount

      public int getRegisteredAINodeCount()
      Return the number of registered DataNodes.
    • containsAINode

      public boolean containsAINode(int aiNodeId)
    • applyConfigNode

      public TSStatus applyConfigNode(ApplyConfigNodePlan applyConfigNodePlan)
      Update ConfigNodeList both in memory and confignode-system.properties file.
      Parameters:
      applyConfigNodePlan - ApplyConfigNodePlan
      Returns:
      TSStatusCode.ADD_CONFIGNODE_ERROR if update online ConfigNode failed.
    • removeConfigNode

      public TSStatus removeConfigNode(RemoveConfigNodePlan removeConfigNodePlan)
      Update ConfigNodeList both in memory and confignode-system.properties file.
      Parameters:
      removeConfigNodePlan - RemoveConfigNodePlan
      Returns:
      TSStatusCode.REMOVE_CONFIGNODE_ERROR if remove online ConfigNode failed.
    • registerAINode

      public TSStatus registerAINode(RegisterAINodePlan registerAINodePlan)
      Persist AINode info.
      Parameters:
      registerAINodePlan - RegisterAINodePlan
      Returns:
      TSStatusCode.SUCCESS_STATUS
    • updateAINode

      public TSStatus updateAINode(UpdateAINodePlan updateAINodePlan)
      Update the specified AINode‘s location.
      Parameters:
      updateAINodePlan - UpdateAINodePlan
      Returns:
      TSStatusCode.SUCCESS_STATUS if update AINode info successfully.
    • removeAINode

      public TSStatus removeAINode(RemoveAINodePlan req)
      Persist Information about remove dataNode.
      Parameters:
      req - RemoveDataNodePlan
      Returns:
      TSStatus
    • updateVersionInfo

      public TSStatus updateVersionInfo(UpdateVersionInfoPlan updateVersionInfoPlan)
      Update the specified Node‘s versionInfo.
      Parameters:
      updateVersionInfoPlan - UpdateVersionInfoPlan
      Returns:
      TSStatusCode.SUCCESS_STATUS if update build info successfully.
    • getRegisteredConfigNodes

      public List<TConfigNodeLocation> getRegisteredConfigNodes()
      Returns:
      All registered ConfigNodes.
    • getRegisteredConfigNodes

      public List<TConfigNodeLocation> getRegisteredConfigNodes(List<Integer> configNodeIds)
      Returns:
      The specified registered ConfigNode.
    • getNodeVersionInfo

      public Map<Integer,TNodeVersionInfo> getNodeVersionInfo()
      Returns:
      all nodes buildInfo
    • getVersionInfo

      public TNodeVersionInfo getVersionInfo(int nodeId)
    • generateNextNodeId

      public int generateNextNodeId()
    • processTakeSnapshot

      public boolean processTakeSnapshot(File snapshotDir) throws IOException, org.apache.thrift.TException
      Specified by:
      processTakeSnapshot in interface SnapshotProcessor
      Throws:
      IOException
      org.apache.thrift.TException
    • processLoadSnapshot

      public void processLoadSnapshot(File snapshotDir) throws IOException, org.apache.thrift.TException
      Specified by:
      processLoadSnapshot in interface SnapshotProcessor
      Throws:
      IOException
      org.apache.thrift.TException
    • getMinimumDataNode

      public static int getMinimumDataNode()
    • clear

      public void clear()
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object