Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
None
-
Normal
Description
The framed transports in thrift wrap the underlying transport to prepend the message size as a 4 byte value. There are purported benefits to buffering, but the main purpose of these wrappers is to allow non-blocking servers to perform reads without deserialization. Of course, if the server transport is framed, the client's must be as well, and vice versa, (framed and non-framed transports are incompatible).
CassandraDaemon is currently a threaded server with the default transport, I believe we should change it to being framed, for compatibility with non-blocking clients (this actually came up during an attempt to use a Twisted client).
This will break all existing client apps, (even if fixing them is trivial).