On Thursday 01 Aug 2013 20:30:36 Vladislav Sterzhanov wrote: > This one will be related to benchmarking and stats gathering : > - Repo > - Current functionality > - To-Do List for toadlet and stats > - Issues > ----------------------------------------------------------------------------------------- > > | Repo > The repository for the GSoC-2013 Transport Layer Project, which I'm > developing can be found here (https://github.com/Quadrocube/fred-staging) > at the branch transport_layer_modifications (probably should rename it and > add another for actuall transport layer changes - the current code there is > related to the base for benchmarking only). > > | Current functionality > LinkStatistics class was presented to represent the gathered link indexes > and two LinkStatistics fields were added to a PeerNode - the first one > (linkStatsTotal) is used for attaching a benchmark-aware listener to it and > serves for benchmark measurements. The other LinkStatistics field in > PeerNode (shortRunLinkStats) will be utilized for a several actually > transport-related modifications. > LinkStatisticsToadlet acts as web-interface for the link sampling. Upon > activation (Connections to Friends - select "test connection" near the > friend's noderef - enter the sample size, press "Test conection"), it > attaches a listener (LinkStatistics.StatsChangeTracker) to a chosen > peerNode.linkStatsTotal, initiates a BulkTransfer of the given size, and > monitors several usefull for later analysis activities. Currently it > produces only a grand-total upon the end of the transfer but there are > callbacks introduced that can be used to build up a more precise dynamic > analytics. > Note: In order for this to work, both testing and tested peer should be > supplied with the version of freenet from this branch. Reason: it contains > the receiver-side modification to get rid of the need to manualy accept > each test. > > | To-do list for toadlet and stats > - Introduce the monitoring of other characteristics of a connection - > like e.g. bandwitdth measuring, average packet size seen, ... (Stats) > - Implement the dynamic logs in form of graphs - currently the most > vital things that will be usefull to have are (in order of importance): > congestion_window_utilized-from-time graph, bandwidth-from-time graph, > data_in_flight-from-time graph, payload_to_alldata-from-time, > averageRTT-from-time, etc.. (Toadlet) > - Localization (in a long term, not vital currently) (Toadlet) > - Forbid the link sampling in case of huge load on the monitored node. > There are already means to reject the test for the peer, but they are not > used currently (See NodeDispatcher.java) (Toadlet) > > | Issues > - As the look up of the field show, the easieset-to-use tool for such > primitive plotting tasks seems to be JFreeChart. Any propositions? > - Potentially very long locking in POST at toadlet - need to fix it > somehow. Once again, a long-term thing. > > After all that is ready, I am passing to the implementation of the todo > list discussed at the previous report and comparing the results obtained by > that implementation against the benchmark results of the current one. And > at last it will be possible to estimate the reasons for many suspicious > transfer failures (e.g. LAN-transfering 1MiB files for minutes) and fix > them. > > quadrocube
Generally this looks fine (up to 362bd85fa6eeba70d34eef1a3355ee5acc4a7ea9). When/if it's merged the commits may need to be reorganised (e.g. combine b0ecadf7a0556fe66a87ef3c75180e28acd9c93b and 2c438211b0382c0ba0baab099503fd6a5c119e6e). I can deal with that later though. Sending a test should be a POST button. This can block (though ideally it should be asynchronous). But doing it from a plain link is dangerous. This needs fixing before merging. I'm not sure what the conclusion was with the ByteCounter's? The bytes should be reported to the global stats but we can record them locally as well. Having said that, this part may not get merged at all. JFreeChart, like almost every other Java package, depends on the recursive security breach known as Maven. See the thread about that. We may or may not be able to solve this adequately in the near future. If you're not planning for this to be merged then e.g. fixing the test toadlet to use a POST button is not as much of an issue. But if it helps you to sort out the transport layer, I will certainly merge the transport layer changes. (Which should indeed be on a different branch).
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ Devl mailing list [email protected] https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
