Thanks, this is very helpful. So, if you're using a blocking server (TThreadPoolServer) there is no performance benefit to using TFramedTransport vs TSocket (which uses TIOStream) or vice versa?
Sent from my iPhone On Thu, Apr 2, 2015 at 10:25 AM -0700, "Randy Abernethy" <[email protected]> wrote: Hi Jeff, The TFramedTransport adds a 4 byte frame size to the front of every RPC message. This is used by nonblocking servers to pass the messages to worker threads without deserializing them first. So if you are not using a nonblocking server you do not need framing and if you are using nonblocking servers you must use framing. TFramedTransport is a layered transport, it looks like a TTransport to clients but depends on another TTransport below it. TIOStream is an adapter. It takes Java I/O streams and makes them look like transports. Again if you don't need it you should not probably use it. The most common Java transport, I think, is TSocket. TSocket allows you to make a TCP connection and it uses TIOStream to implement the stream I/O. Because of this stream usage, TSocket does not need a buffer (some languages have a TBufferedTransport use to add buffering over a raw socket). Hope this helps, Randy On Thu, Apr 2, 2015 at 9:02 AM, Jeff Nelson wrote: > Can someone give me a quick primer on what advantages there are, if any, > for using TFramedTransport over TIOStreamTransport in a Java server? > > Sent from my iPhone
