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

fix(blend): ensure all nodes are connected and have the same peering degree #64

Merged
merged 2 commits into from
Dec 13, 2024

Conversation

youngjoon-lee
Copy link
Contributor

@youngjoon-lee youngjoon-lee commented Dec 13, 2024

For accurate simulation, we need to ensure that:

  • All nodes are connected (There is no network partition).
  • All nodes have the same number of connections, as specified as peering degree.

Of course, the real world won't be as ideal as this simulation. But, as the first step, we need to make the uniform/predictable configuration to easily interpret the result of simulation. Later, we can take it further.

@youngjoon-lee youngjoon-lee added the bug Something isn't working label Dec 13, 2024
@youngjoon-lee youngjoon-lee self-assigned this Dec 13, 2024
Copy link
Collaborator

@danielSanchezQ danielSanchezQ left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks good.
But what is the target of topologies?
Are we gonna explore more on how to construct them?
Is this the final chosen algorithm?

@youngjoon-lee
Copy link
Contributor Author

youngjoon-lee commented Dec 13, 2024

It looks good. But what is the target of topologies? Are we gonna explore more on how to construct them? Is this the final chosen algorithm?

In production, we're going to let each node choose nodes that they want. We are not going to define any algorithm to build a topology.
However, here, by using the simulation, first of all, I'd like to see the impact of each parameter (network size, peering degree, etc.) on latency and bandwidth. If the topology is built 100% randomly (as implemented in the master branch), there are sometime one or two nodes who have more connections than others. Or, rarely, the network is partitioned. Then, we'll get some peak numbers in the latency results, or non-uniform bandwidth results, which makes us hard to understand the impact of parameters. Therefore, I'd like to make a topology as uniform as possible for now. Later, if necessary, we can run simulations with various shape of topologies, but not now.

Plus, in the specification, we defined that all connections are bidirectional. But the simulation in the master branch was different from the spec. Each node chose random peers for only outbound connections, and sent messages, but the peers don't send messages to the node. They chose peers independently for outbound connections. It's a bug, and this PR fixes it.

@youngjoon-lee youngjoon-lee changed the title fix(blendnet): ensure all nodes are connected and have the same peering degree fix(blend): ensure all nodes are connected and have the same peering degree Dec 13, 2024
@youngjoon-lee youngjoon-lee merged commit be30404 into master Dec 13, 2024
1 check passed
@youngjoon-lee youngjoon-lee deleted the topology branch December 13, 2024 15:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants