As of the writing of this post, the mean 24 hour real time latency of the network is 3.44 seconds with a teamsize of 3. Per our measurements, the average message sending latency is 5 seconds once message delivery is included.
Overall, we believe the roughly 1 and a half seconds message delivery latency can be brought down by roughly 0.5 to 0.75 seconds fairly rapidly with continued engineering, but do not see a path though software improvements to improve the realtime latency further.
The following graph compares real time latency to how long it takes, on average, other nodes to receive the streamed data during the realtime permutation (A time which should be highly correlated with upload bandwidth but not correlated with latency).
As can be seen from this data, the correlation is extremely strong. Interestingly, individual lines can be made out for regions. We believe this primarily correlates with different latencies.
Given how cMix is a co-operative algorithm, the values here are not unique to a node, but a property of their relationship to the entire network. As a result, a single slow node will in fact impact the realtime latency for every other node in the network. As a result, we need to begin a process of discovery to determine how pervasive performance issues are.
To begin with, one’s upload speed is primarily slowed by another’s download speed. The equivalent download speed graph is as follows:
By comparing these graphs, it can be seen that download speed is in general not nearly as correlated with performance as upload is. We believe this is because far fewer nodes are download limited. But it also points us to the best culprit for improving performance - dealing with nodes with limited upload.
Through a rough (and potentially inaccurate) analysis of the upload data, it looks like the average node is supplying 19 megabits of upload, far shy of the 100 megabits. Starting today, we will begin a series of tests where we disable nodes based upon different criteria to determine how much poor performing nodes impact each other.
If you are disabled, DO NOT CHANGE ANYTHING. Your node, whether enabled or disabled, is helping the development process by allowing us to analyze the impact that ALL nodes have on the system.
Starting today, we would like to take a network wide baseline and disable a large portion of nodes to see the network performance in order to determine an overall baseline for maximum performance. The goal will be to compare the results to the disabling of other subsets - allowing us to determine which faces are more influential than others.
As a result, We are disabling roughly 15% of the network for the next 24 hours. These are nodes which, over the last 24 hours, have a realtime average time above 5.5 seconds or a realtime permute transmission average in excess of 850 milliseconds.
The disabled nodes are: