-
Notifications
You must be signed in to change notification settings - Fork 3
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
Evaluate performance of PeX in a test setting #8
Comments
Testing plan
Check whether follows uniform distribution using Kolmogorov-Smirnov Test
Disconnect nodes until there is a partition
Force partition by being unreachable at Network level + check how long nodes from other partition stay in the local views
Increase fanout and check convergence speed (Kolmogorov-Smirnov Test)
Use pure Questions
|
@aratz-lasa Looks good and sensible. Carry on! 👍 Regarding your questions, I think offline analysis is probably a better idea. It's going to help separate test logic from analysis, and it will also help us share datasets, which is going to be helpful when debugging protocol issues. Matrix works well for quick-and-dirty tests, but (1) I have yet to implement any traffic-shaping facilities and (2) data-collection is out-of-scope, I think. I think Testground might be a better fit here, despite its annoyances. It stores data in an output directory in JSON format, so we can just load that up into a python script or something. You'll need to use the docker backend in order to do traffic shaping. However, let's keep the Testground code and the analyses in a separate repo from CASM/Wetware. |
Okay @lthibault , I will start right away! |
Re:
We want to quantify the convergence time for a PeX cluster as a function of the number of nodes in a cluster. Output of this should be:
Operationalization of convergence:
TODO:
|
Convergence test parameters:
|
Re:
It occurs to me that this is exactly the same as increasing the frequency of gossip rounds, so I'm considering this question to be answered. |
As the PeX implementation nears completion, I think our priority should be to evaluate its performance along the following dimensions:
I've used matrix to run simulations inside of unit tests (see:
TestPeerExchange_Simulation
) and am so far very pleased with the results. It seems like a good starting point for evaluating and optimizing PeX.In contrast to Testground, Matrix is simpler to configure, can be run directly in unit tests/benchmarks, doesn't require any configuration on the dev machine and doesn't require setting up a separate repository (or fiddling with
go.mod
). The trade-off is that we use an in-process transport, so we cannot use it to test layer-3 networking behaviors. I don't think we care, though.Below are a list of questions I have about PeX. These should dictate the tests/simulations that need doing. Please feel free to append to this list.
rand
strategy affect the convergence rate relative to the current (hybrid) strategy?At this point, I think we should be going for low-hanging fruit. How can we apply the 80/20 rule here? I would ideally like to be confident in PeX by mid-September.
@aratz-lasa Thoughts? Can you look into this?
The text was updated successfully, but these errors were encountered: