[
https://issues.apache.org/jira/browse/CASSANDRA-4311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13289905#comment-13289905
]
Jonathan Ellis commented on CASSANDRA-4311:
-------------------------------------------
I think we can address all of these by making these changes to VERSION_12
protocol:
- send version and connection metadata just once per connection. This will
give the other side enough information to know whether to expect a compressed
or varint stream
- *both* sides exchange CURRENT_VERSION when connection is established; each
side will then have version information immediately upon contacting another node
As a consequence,
- When version changes, we need to drop existing connections and reconnect
(already implied but not yet implemented by CASSANDRA-3127)
> clean up messagingservice protocol limitations
> ----------------------------------------------
>
> Key: CASSANDRA-4311
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4311
> Project: Cassandra
> Issue Type: Bug
> Reporter: Jonathan Ellis
> Fix For: 1.2
>
>
> Weaknesses of the existing protocol:
> - information asymmetry: node A can know what version node B expects, but not
> vice versa (see CASSANDRA-4101)
> - delayed information: node A will often not know what version node B
> expects, until after first contacting node B -- forcing it to throw that
> first message away and retry for the next one
> - protocol cannot handle both cross-dc forwarding and broadcast_address !=
> socket address (see bottom of CASSANDRA-4099)
> - version is partly global, partly per-connection, and partly per-message,
> resulting in some interesting hacks (CASSANDRA-3166) and difficulty layering
> more sophisticated OutputStreams on the socket (CASSANDRA-3127,
> CASSANDRA-4139)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira