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

Rename forward/finish to broadcast/convergecast #16

Open
karalekas opened this issue Jun 15, 2020 · 2 comments
Open

Rename forward/finish to broadcast/convergecast #16

karalekas opened this issue Jun 15, 2020 · 2 comments

Comments

@karalekas
Copy link
Member

From my readings on distributed algorithms (e.g. these Yale course notes) there is a common pattern wrt gathering information about a distributed network, which looks a lot like our FORWARD-SCAN/SCAN/PING/FINISH-SCAN paradigm, called broadcast and convergecast. In these algorithms, the root of a distributed tree tells all of its leaves to gather some information (broadcast) and then the leaves relay that information back up the tree, with some protocol for merging the information as it is aggregated up the tree (convergecast). This is essentially what we're doing to come up with a supervisor recommendation, but the root and internal (non-leaf) nodes also participate in the information-gathering, and our protocol (unify-pongs) is homogeneously applied to both the gathering (PING) and aggregating (pong throw) stages.

One thing: It's important to note that FINISH-SCAN actually serves two functions: (1) if we were told to scan (i.e. if we're not the root), it just sends our pong up the tree (and then it's merged as part of a sync receive in FORWARD-SCAN) and (2) if we initiated the scan (i.e. we are the root), it uses the merged info to spawn a supervisor. We might be able to break these up into two commands.

Random note: the root necessarily has to gather (PING) after all of its children in order for its information to be merged into the final recommendation.

@ecpeterson
Copy link
Contributor

@ecpeterson
Copy link
Contributor

Is this a good idea without doing all of #5 ? Would we want to use the broadcast language without actually using aether's broadcast framework?

@ecpeterson ecpeterson transferred this issue from another repository Oct 5, 2022
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