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

Centralized advertise v2 to contact multiple v2 servers #23

Open
choksi81 opened this issue May 29, 2014 · 7 comments
Open

Centralized advertise v2 to contact multiple v2 servers #23

choksi81 opened this issue May 29, 2014 · 7 comments

Comments

@choksi81
Copy link
Contributor

The centralizedadvertisev2 client is currently hardcoded to contact only centralizedadvertise_v2.poly.edu. With the upcoming multithreaded centralizedadvertisev2 server in mind, we should plan to add the ability for the client to contact multiple servers, as we will have both the single threaded and multithreaded servers running simultaneously.

This should be done in a way such that it would be trivial to add more advertise servers.

@choksi81
Copy link
Contributor Author

Author: justinc
One way of doing this is to add another advertise client library. The alternative is to let the existing library handle multiple servers.

@choksi81
Copy link
Contributor Author

Author: leonwlaw
I think changing the existing v2 library to handle multiple servers is the best option. Adding a new library will create redundant points of maintenance for us, and might cause headaches in the future.

What we can do is add servername and serverport arguments to the current announce/lookup functions for v2, and make them private. The new announce/lookup functions for v2 will be wrappers for the private functions, and handles all the parallelization that needs to be done.

@choksi81
Copy link
Contributor Author

Author: leonwlaw
After talking to Monzur, I am reconsidering adding another advertise client library. However, I notice that central, central_v2 have no differences aside from the server IP/port, first I will generalize the advertise code to a base library, centralizedadvertise_base.repy, and change v1 and v2 files to both include centralizedadvertise_base. I will then add v3 to use base as well. This way, we will have minimal overhead in adding new servers (adding wrappers around the centralizedadvertise_base functions), and we can make use of the existing parallelization code.

@choksi81
Copy link
Contributor Author

Author: leonwlaw
Could someone review my changes for the refactor? centralizedadvertise_base.repy will be a new added file, and the changes in centralizedadvertise.repy and centralizedadvertise_v2.repy are in advertise_refactor.patch.

@choksi81
Copy link
Contributor Author

Author: leonwlaw
I'm thinking of setting this up on blackbox, on TCP port 10102. Since blackbox is running UDP on 10102, this shouldn't interfere with its operations. If this sounds good, I'll ask Herman to set up advertiseserver_v3.poly.edu to point to blackbox.

@choksi81
Copy link
Contributor Author

Author: justinc
I think this is fine. Sounds good.

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