Hey Jens,
  Thanks for checking in -- I'm still trying to find the root cause -- I'm
pretty sure the outputProtocols flush internally and the problem is
actually in the ruby implementation of SSLSocket only returning 16K chunks,
which slowly fills the Thrift::Bytes buffer and makes it look like golang
isn't flushing properly.

Sorry for the noise on the list, I'll be back if I can find a fix in Ruby.

cheers,
-jason

On Sun, Jan 31, 2016 at 10:52 AM, Jens Geyer <jensge...@hotmail.com> wrote:

> Hi Jason,
>
> any news here? Feel free to ask if you need help!
>
> Have fun,
> JensG
>
> -----Ursprüngliche Nachricht----- From: Jason Freidman
> Sent: Wednesday, January 27, 2016 12:48 AM
> To: dev@thrift.apache.org
> Subject: Adding a flush in the golang simple_server implementation.
>
> Hello,
>   I've been running into very slow responses for large (20MB payloads)
> using the BufferedTransport and SimpleServer in go.
>
> It seems my buffer isn't being flushed after processing the request,
> resulting in ~6 seconds total RPC call time.
>
> If I add a Flush() in simple_server.go:186, my RPC times drop to ~1.2
> seconds
> if err := outputProtocol.Flush(); err != nil {
> log.Printf("error flush request: %s", err)
> return err
> }
>
> When I use an unbuffered transport, the average request is slower but these
> large requests are faster. With the flush, everything seems faster.
>
> I didn't find any discussion on JIRA, what is the correct way to propose
> and send a patch?
>
>
> cheers,
> -ja
>

Reply via email to