You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If I understand the code correctly, the tryMessagesToConnections() method in the ActiveRouter class returns once the first message has been transferred. The result is that only one message can be transferred in each simulation step for each node.
This leads to problems in my current simulations because I have a large network with many nodes communicating with one central node. Due to the behavior described above, the central node gets highly congested as the number of messages is in the order of magnitude of the simulation steps. I understand, that I could circumvent this issue by lowering the updateInterval, but this slows down the simulation considerably. Hence this is not a feasible solution for me.
Instead, my suggestion is to change the behavior of the tryMessagesToConnections() method to evaluate the updateInterval and the speed of the connection as well as the sizes of the messages sent. Then it could send as many messages in that interval as are theoretically possible to be sent within the respective simulation slot.
As this might change the simulation results rather severely in some cases, I would like to get some feedback to this before issuing a pull request. Does anyone share my opinion that the suggested behavior would be more realistic and thus suitable to be implemented in the ONE?
Cheers,
Keno
The text was updated successfully, but these errors were encountered:
I know this issue and would like to get it fixed (and I know some people have done their own fixes to this). The approach to calculate the total capacity during the update interval and passing multiple messages within interval is the right one. So please submit a pull request if you have a fix.
Thank you for pointing out to this. I am currently faced with concurrency issue, it causes some of messages are dropped because of another connection is up and ActiveRouter does not allow concurrent connection. Could you please explain me about the relation between update interval and this? Why lowering interval can be a solution?
Dear community,
If I understand the code correctly, the tryMessagesToConnections() method in the ActiveRouter class returns once the first message has been transferred. The result is that only one message can be transferred in each simulation step for each node.
This leads to problems in my current simulations because I have a large network with many nodes communicating with one central node. Due to the behavior described above, the central node gets highly congested as the number of messages is in the order of magnitude of the simulation steps. I understand, that I could circumvent this issue by lowering the updateInterval, but this slows down the simulation considerably. Hence this is not a feasible solution for me.
Instead, my suggestion is to change the behavior of the tryMessagesToConnections() method to evaluate the updateInterval and the speed of the connection as well as the sizes of the messages sent. Then it could send as many messages in that interval as are theoretically possible to be sent within the respective simulation slot.
As this might change the simulation results rather severely in some cases, I would like to get some feedback to this before issuing a pull request. Does anyone share my opinion that the suggested behavior would be more realistic and thus suitable to be implemented in the ONE?
Cheers,
Keno
The text was updated successfully, but these errors were encountered: