Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upAdd new ALM transport #89
Conversation
|
I'm seeing compiler errors: ```
|
|
Focussed on the new dev guide for now. That's nice, certainly very helpful. Couple suggestions:
I'll leave some more smaller comments/questions on the RST code. |
|
Thanks for the feedback! Just a quick note (content updates in progress):
Sorry, the 3rdparty submodule was lagging behind. Should work now. |
|
@rsmmr I've integrated your feedback on the devs section. Let me know what you think of the additions / changes and how I can improve the section further. |
|
Nice, thanks for the updates to the devs section. The ALM description sounds all good, and the architecture section is quite helpful - I'm feeling like I'm starting to understand Broker finally ;-) |
|
(... and no further particular comments) |
8bc3796
to
d8d1db8
|
A quick update, I've wanted to share: while some unit tests still fail (working on it), the ALM branch runs stable enough for a first quick performance comparison with current master. I've used the
For the quick overview, I've let it run for some time, then took 30 values (output of the server for received messages per second) each. Here are the results:
I wouldn't read too much into this, since the values do fluctuate. However, the take-away is that the new source routing seems to have no negative effect on the performance. Here is the raw data I've compiled this from: 2020-03-28 Broker ALM branch comparison.txt. Of course, most insights will come when looking at a full cluster. Once I have ported the new cluster benchmark, I'll do a more thorough comparison. |
|
@rsmmr I was thinking about a path forward for this PR. I think as it stands, this is hard to review / integrate in its entirety. The branch contains several big changes to the entire code base plus a new communication backend. I think there are two options we could choose: 1) do some incremental reviews (you've already did one) and eventually merge everything at once or 2) separate refactoring from actual new features with individual PRs. For option two, I would factor out at least these two steps as separate PR:
Personally, I favor option 2. Aside from making reviews more manageable and focused, merging individual parts earlier also helps to avoid this PR running out of sync. |
|
Yeah, let's go with Option 2, and merge the refactoring & static notifications first. If you can split things out further into more, smaller chunks, that would be worth the effort; both for the refactoring and then for the new functionality. We'll review each to the degree we can, with a particular focus on not breaking existing cluster topologies. Also, let's remain flexible on timeline: The closer we get to the release, the more risky a merge of complex changes will be. Depending on how things progress, a viable model could be getting the foundational commits in before 2.2, and then the new logic after the release early in the next cycle. Let's see. |
94c4c4b
to
7417b33
d227221
to
bdc21b5
Squashed commit, the original sketch for the new routing table design started Dec 9, 2019.
Squashed commit, the first steps toward the new ALM layer started Dec 9, 2019.
Calling extinguish_one with flare_mtx_ locked causes a deadlock, because the function then attempts to lock an already locked mutex.
1daaffc
to
2eb63fc
- Retry peerings an infinite amount of times - Emit a peer_unavailable error on each failed attempt
0934aa0
to
f1916db
c0a914e
to
bcae433
Currently, Broker requires its users to provide loop-free deployments. The new ALM transport makes it much easier to deploy Broker, since Broker no longer simply floods published data but instead discovers and manages available paths.
I've added a new
doc/devs.rstfile to the documentation to cover how Broker works internally as well as how the (new) code is structured. At this point, feedback to this would be most welcomed.Remaining ToDos: