THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
- Start-up script `start-node.sh` creates ClusterMain, the program entry point of a cluster node;
- ClusterMain creates a MetaClusterServer, which receives MetaGroup RPCs from internal_meta_port;
- MetaClusterServer checks its configuration with other nodes, ensuring that at least over half of the nodes have consistent configuration;
- MetaClusterServer initializes the underlying IoTDB;
- 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;
- MetaMember tries to load the partition table from the local storage if it exists;
- MetaMember creates its MetaHeartbeatThread;
- MetaHeartbeatThread sends election requests to other cluster nodes;
- The quorum of the MetaGroup agree with the election and send responses to MetaClusterServer;
- MetaClusterServer lets MetaMember handle these responses;
- MetaMember gathers the responses and confirms that it has become a LEADER, then create a partition table if there is none;
- MetaMember creates DataClusterServer, which receives DataGroup RPCs from internal_data_port;
- 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;
- DataMembers establish their own DataHeartbeatThreads, and by following similar procedures, they become FOLLOWERs or LEADERs;
- MetaMember creates ClientServer, which receives requests from clients, so by now, the node is ready to serve.
...
- Start-up script `start-node.sh` creates ClusterMain, the program entry point of a cluster node;
- ClusterMain creates a MetaClusterServer, which receives MetaGroup RPCs from internal_meta_port;
- MetaClusterServer checks its configuration with other nodes, ensuring that at least over half of the nodes have consistent configuration;
- MetaClusterServer initializes the underlying IoTDB;
- 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;
- MetaMember tries to load the partition table from the local storage if it exists;
- MetaMember creates its MetaHeartbeatThread;
- The leader of MetaGroup sends a heartbeat to MetaClusterServer;
- MetaClusterServer lets MetaMember handle the heartbeat;
- MetaMember becomes a LEADER, then update its partition table from the heartbeat if the heartbeat provides a newer heartbeat;
- MetaMember creates DataClusterServer, which receives DataGroup RPCs from internal_data_port;
- 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;
- DataMembers establish their own DataHeartbeatThreads, and by following similar procedures, they become FOLLOWERs or LEADERs;
- MetaMember creates ClientServer, which receives requests from clients, so by now, the node is ready to serve.
...