Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Start-up script `start-node.sh` creates ClusterMain, the program entry point of a cluster node;
  2. ClusterMain creates a MetaClusterServer, which receives MetaGroup RPCs from internal_meta_port;
  3. MetaClusterServer checks its configuration with other nodes, ensuring that at least over half of the nodes have consistent configuration;
  4. MetaClusterServer initializes the underlying IoTDB;
  5. MetaClusterServer creates a MetaMember, which is initialized as an ELECTOR, handles MetaGroup RPCs, and manages a partition table; a Coordinator, which is a coordinator for non-query;
  6. MetaMember tries to load the partition table from the local storage if it exists;
  7. MetaMember creates its MetaHeartbeatThread;
  8. MetaHeartbeatThread sends election requests to other cluster nodes;
  9. The quorum of the MetaGroup agree with the election and send responses to MetaClusterServer;
  10. MetaClusterServer lets MetaMember handle these responses;
  11. MetaMember gathers the responses and confirms that it has become a LEADER, then create a partition table if there is none;
  12. MetaMember creates DataClusterServer, which receives DataGroup RPCs from internal_data_port;
  13. DataClusterServer creates DataMembers depending on the partition table and the number of replications k; k DataMembers will be created, each for a DataGroup the node is in;
  14. DataMembers establish their own DataHeartbeatThreads, and by following similar procedures, they become FOLLOWERs or LEADERs;
  15. MetaMember creates ClientServer, which receives requests from clients, so by now, the node is ready to serve.

...

  1. Start-up script `start-node.sh` creates ClusterMain, the program entry point of a cluster node;
  2. ClusterMain creates a MetaClusterServer, which receives MetaGroup RPCs from internal_meta_port;
  3. MetaClusterServer checks its configuration with other nodes, ensuring that at least over half of the nodes have consistent configuration;
  4. MetaClusterServer initializes the underlying IoTDB;
  5. MetaClusterServer creates a MetaMember, which is initialized as an ELECTOR, handles MetaGroup RPCs, and manages a partition table;a Coordinator, which is a coordinator for non-query;
  6. MetaMember tries to load the partition table from the local storage if it exists;
  7. MetaMember creates its MetaHeartbeatThread;
  8. The leader of MetaGroup sends a heartbeat to MetaClusterServer;
  9. MetaClusterServer lets MetaMember handle the heartbeat;
  10. MetaMember becomes a LEADER, then update its partition table from the heartbeat if the heartbeat provides a newer heartbeat;
  11. MetaMember creates DataClusterServer, which receives DataGroup RPCs from internal_data_port;
  12. DataClusterServer creates DataMembers depending on the partition table and the number of replications k; k DataMembers will be created, each for a DataGroup the node is in;
  13. DataMembers establish their own DataHeartbeatThreads, and by following similar procedures, they become FOLLOWERs or LEADERs;
  14. MetaMember creates ClientServer, which receives requests from clients, so by now, the node is ready to serve.

...