Thank you for your answers! I have compared TThreadPoolServer.java and simple_server.go and they indeed look similar, except that Go uses goroutines instead of a thread pool. I'm wondering about why does my Go server perform 2.5 to 3 times worse than the equivalent Java thread-pool server with no handling logic on my Mac OS X while being queried from a multithreaded Thrift client on the same machine (20 000 qps vs. 55 000 qps). Can it be because of how goroutines are managed in Go implementation on Mac? I can prepare a minimal sample for you to look at. Thanks again!
Best regards, Sergey Serebryakov On Sat, May 31, 2014 at 4:12 AM, Chris Bannister <c.bannis...@gmail.com> wrote: > The TSimpleServer in Go is making use of goroutines, as there inst really > any reason not to. Every request is handled in its own goroutine, unlike > Java there is no need to have a specific thread pool implementation to > handle requests, and requests are handled in the same manner that the > standard library http server works. > > > On 31 May 2014 11:54, Jens Geyer <jensge...@hotmail.com> wrote: > >> Hi Sergey, >> >> implying your agreement ;-) I’m moving this topic onto the dev mailing >> list as this seems a better place to discuss this. >> >> The Go language part has been gone through some major updates in the last >> monts, especially thanks to the massive contributions from Travis, Ben and >> Aleksey. I think everybody will agree when I say, that the Go language part >> it is in a much better shape now than it was a year ago. That said, there >> is surely more work needed to add some still missing pieces, or make some >> stuff better that we are not fully satisfied with yet. >> >> So the answer is twofold: >> - Yes, there is only the simple server (yet), >> - and yes, we are of course accepting quality contributions. >> >> Could that be an option for you? >> >> Thanks + have fun, >> JensG >> >> >> >> >> From: Sergey Serebryakov >> Sent: Saturday, May 31, 2014 5:25 AM >> To: je...@apache.org >> Subject: Multithreaded servers in Apache Thrift for Go >> >> Hi Jens, >> >> I'm trying out various languages to implement a simple IP lookup >> Thrift-based server in. So far I've tried official library for Java and >> Twitter's Scrooge+Finagle for Scala. I'm trying Go now, and I've noticed >> that the official Thrift library for Go only contains SimpleServer >> implementation. It works alright, but it's purpose is just testing and I >> need something more performant and mature. In Java, I've used >> TThreadPoolServer and was satisfied with its performance. Is there anything >> similar for Go, perhaps making use of goroutines? >> Thank you! >> >> Best regards, >> Sergey Serebryakov > > >