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

Determine Switch-Time relative to request time #2

Open
blocktrron opened this issue Sep 29, 2018 · 3 comments
Open

Determine Switch-Time relative to request time #2

blocktrron opened this issue Sep 29, 2018 · 3 comments

Comments

@blocktrron
Copy link
Member

Problem

In case a Mesh network consisting of multiple nodes reconnects into a to-be-emptied source-domain which has a switch time set in the past, the first querying node will reboot pretty much immediately. This is a potential problem as other nodes won't be able to request a target-domain and so the switch-offlien feature will not work

Possible Solution

We should integrate a feature where the meshes switch-time should be determined relative to the query-time of the first node requesting a target domain at the director. A sane setting could be 2-3 days, giving other nodes in the mesh plenty of time requesting the new target domain.

@mweinelt
Copy link
Contributor

In fact I'd suggest waiting for all nodes in the mesh to have the desired target domain set before delivering a switch time. That way we have the fallback migration when connection is lost.

@blocktrron
Copy link
Member Author

We won't. In case no switch_time is advertised (eg. -1), domain switching is completely disabled. Maybe set a switch_time far in the future (1-2 weeks)? We could also decrement the switch_time advertised each time the former one was advertised to all nodes.

@mweinelt
Copy link
Contributor

mweinelt commented Sep 30, 2018

Drop the global switch time completely. Define

  • mesh_discovery_time
  • switch_delay

Wait $mesh_discovery_time for a new mesh to discover all its nodes.
Then send all nodes in that mesh the new target domain, but no switch time.
Wait for all nodes in that mesh to have requested the correct target domain, then announce switch time as $now+$switch_delay.

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

No branches or pull requests

2 participants