I am quite confused about how node discovery is made in Distributed Hash Table algorithms (CHORD). Suppose every node is reachable via multicast. Why would the following scenario be bad:
- One node starts working
- Multicasts arrival to the network
There is no response, decides it is alone.
Second node arrives.
- Multicasts arrival to the network.
- All nodes receive the arrival and update their NodesList with the Node's key.
- Then return this new nodeList to the new arriver.
Adjacent nodes also starts transmitting the necessary key-value pairs to this new arriving node.
A client asks a node for a key, every node knows which ip/port this key corresponds to. Asks that node for the KEY-VALUE pair and returns this to the client.
Now I suppose this scenario is bad because every node could not keep a list of all nodes in a HUGE system. Am I correct?
But then how can a node discover its so called FINGER TABLE?
I know bittorrent keeps a central server as starting node in DHT systems. Is it possible to eliminate this server, if we assume that we can reach every node via multicast?
Thanks in advance. Sorry for multiple questions, but I don't think I could not demonstrate my confusion with a single question.