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).

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Devl mailing list
[email protected]
https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to