On Jul 29, 2013, at 5:00 PM, Tristan Seligmann firstname.lastname@example.org wrote:
On Tue, Jul 30, 2013 at 12:31 AM, Glyph email@example.com wrote:
On Jul 29, 2013, at 3:10 PM, Werner Thie firstname.lastname@example.org wrote:
I've written a few Nevow/Athena based game servers in the last years, and I'm still convinced that I have chosen the right technology for the problems at hand. Time given, I might tackle the coding to have the underlying transport to be switched to websockets when available as Glyph suggested, but currently I see no performance issues and the servers are running with uptimes now measured in years.
I'd like to add that I'm aware of at least one significant performance problem in Athena (not sure if there's a bug report lying around for it anymore, although I think there was one in Trac-that-was), but it's to do with the reliable delivery transport that Athena runs on top of long polling (which I believe would still be required on top of websockets), rather than the long polling / HTTP itself. Long polling in general is pretty reliable, the main problem is with proxy servers that time the connection out faster than Athena recycles it, but this value is configurable so the problem is easily worked around.
 When sending several messages "at once" with Athena under some specific set of circumstances (I'm not sure exactly what they are, but the behaviour is repeatable), the one side will ACK the first message before processing the second message, leading to the other side retransmitting the remaining messages even though they were not lost. This shows up as multiple "Athena transport duplicate message, discarding: ..." log messages, and has the result of increasing bandwidth usage / latency; depending on the number / size of the retransmitted messages, the impact may be negligible or noticeable.
This does sound like a real bug :). My point is that it's not one that would necessarily be addressed *just* by switching to websockets...