Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add UDP Multicast Option to Cache Host / Client #19

Open
haneytron opened this issue May 6, 2014 · 4 comments
Open

Add UDP Multicast Option to Cache Host / Client #19

haneytron opened this issue May 6, 2014 · 4 comments
Assignees
Milestone

Comments

@haneytron
Copy link
Owner

Per : http://stackoverflow.com/a/23483528/2420979

Add UDP Multicast option to be able to specify IP and port. Clients can then use that IP and Port to autodiscover all cache host instances.

@haneytron haneytron self-assigned this May 6, 2014
@haneytron haneytron added this to the 1.3.2 milestone Jun 8, 2014
@haneytron
Copy link
Owner Author

Have some more thoughts on this:

  • There would be some considerations for when a host goes offline. Should it retry every few seconds to reconnect like it does now?
  • Should we allow a combination of multicast IP/port in client config and hard-coded host addresses?

@haneytron haneytron modified the milestones: 1.5.9, 1.3.2 Jul 6, 2015
@menismu
Copy link

menismu commented Jul 9, 2015

This is the first approach in regards with UDP Multicast feature, and it is opened to read comments, improvements and help to define the best solution needed between everybody.

  1. Overview

The main idea behind UDP Multicast is the ability to auto discover "neighbours" to work with, a new server or client start operating in the distributed cache. With this feature servers and clients can connect and disconnect to the distributed system and all the players can operate properly communicating to the the other up players.

This implementation needs to define several communications (or messages based in events) from each agent (server or client) to the multicast group to let other agents know all events happening individually.

  1. Communications

2.1 New agent connected

When a server or client connects to the multicast group will send a message HELO with its details. It will let the other agents know a new server or client is connected to the group.

2.2 Disconnect

When a server or client disconnects from the group will send a message BYE letting the rest of the agents in the group it is performing a disconnect event.

2.3. Alive message

Every server or client will send a ME message letting the group know this agent is still up and running, if a ME message is not sent every X seconds it could be treated as not connected.

  1. Feature development

The idea is to develop the feature as simple as possible to imcrease the functionalities in the future. The other idea behind is to keep the same behaviour the solution already has.

  • Multicast will be the lead the configuration, if multicast is on harcoded servers configuration will be avoided (next release can mix multicast and hardcoded together)
  • Multicast will be available in local networks, on internet multicast is disabled in routers, for internet distributed cache will need other approach

As mentioned this is the first approach, to improve it and develop the best solution send your feedback.

@haneytron haneytron modified the milestones: 1.6.0, 1.5.9 Jul 21, 2015
@haneytron
Copy link
Owner Author

I really like the proposed solution. If possible, mixing multicast and hardcoded together would be great in the first release. If not it could wait. I think this will be a good improvement! The client keeps track of the server lists, so I guess both client and server would subscribe to the UDP Multicast IP.

@menismu
Copy link

menismu commented Jul 24, 2015

Yes, it is possible, I will mix both list, multicast and configured. And also yes, clients and servers will join to Multicast IP.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants