Re:~2M msgs/second messaging system written in Go
by timtadh on Thursday December 06, 2012 @04:19PM
(#4883864)
I am not the author of the gist but quoting from it: "our work on a high performance NATS server in Go." Furthermore, the tests he shows are run using Go's testing tool (which tests go code). Finally, he discusses "no use of defer" a Go language feature not in Ruby. So yes I believe it is an implementation in Go.
Re:~2M msgs/second messaging system written in Go
by randomdata on Thursday December 06, 2012 @04:54PM
(#4884034)
I agree with your analysis, but EventMachine does use a defer method to push long-running work off of the event loop.
Re:~2M msgs/second messaging system written in Go
by 4ad on Thursday December 06, 2012 @05:47PM
(#4884325)
Defer in Go means something very specific and completely different:
Re:~2M msgs/second messaging system written in Go
by randomdata on Thursday December 06, 2012 @06:46PM
(#4884540)
But EventMachine#defer would make sense in this context, given that the Ruby version is written with EventMachine. That is why I noted it.
Re:~2M msgs/second messaging system written in Go
by derekcollison on Friday December 07, 2012 @10:09AM
(#4887184)
The test is specific to a new NATS server written in GO (gnatsd). I described in more detail above the tests and what they do, but suffice it to say that it does test the message processing overhead of the server.
Also, this is only testing the time it takes the go client to write the messages to the socket, not the time the server takes to process the messages. So the benchmark would be the same with a noop server that reads and discards all incoming traffic. Am I wrong?