[ 
https://issues.apache.org/jira/browse/CASSANDRA-10146?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14730923#comment-14730923
 ] 

Sylvain Lebresne commented on CASSANDRA-10146:
----------------------------------------------

A few minor remarks (which, outside of the 1st one which is a bug, are mostly 
suggestions/nits):
* In {{CollectionType}}, what we want is get rid of {{enforceLimit}}, not 
enforce it unconditionally.
* I think we could explicit both the 2.2 warning and the NEWS messages a bit. 
Typically, for the 2.2 warning, I'd got with something like "Detected 
connection using native protocol version %d. Both version 1 and 2 of the native 
protocol are now deprecated and support will be removed in Cassandra 3.0. You 
are encouraged to upgrade to a client driver using version 3 of the native 
protocol", and some similar instruction on what people have to do in the NEWS 
file.
* In {{Frame.java}}, can rename {{MODERN_LENGTH}} to {{LENGTH}} and can use it 
directly in {{encode}} and {{decode}} rather than assigning it to a 
{{headerLength}} variable.
* If we introduce {{Server.SUPPORTED_VERSIONS}}, which we'll have to maintain, 
it makes more sense to check if the version received is contained in that list 
in {{Frame.decode()}}. But truly, I would have simply added 
{{MIN_SUPPORTED_VERSION}} instead, used that (and {{CURRENT_VERSION}}) for the 
test and error message during frame decoding. That would avoid mistake like 
forgetting to add a new version to {{SUPPORTED_VERSIONS}} (not that it's an 
error that is likely to stay unnoticed for long, but the less you have to do 
...).


> Deprecate v1 and v2 protocol in 2.2, drop support in 3.0
> --------------------------------------------------------
>
>                 Key: CASSANDRA-10146
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10146
>             Project: Cassandra
>          Issue Type: Task
>          Components: Core
>            Reporter: Tyler Hobbs
>            Assignee: Benjamin Lerer
>              Labels: client-impacting, doc-impacting
>             Fix For: 2.2.x, 3.0.0 rc1
>
>
> In 3.0, we would like to use frozen collections in the system keyspaces, and 
> it seems likely that we will eventually want to use tuples or nested 
> collections as well.  Drivers that only support protocol versions 1 and 2 
> will not be able to read these system keyspaces because they cannot decode 
> those types.
> I think this is a good time to start deprecating and dropping support for old 
> protocol versions.  The v3 protocol was introduced in 2.1, so if we remove 
> support for v1 and v2 in 3.0, that gives users two major versions to upgrade 
> their drivers.  Fortunately, upgrading drivers to a version that supports the 
> v3 protocol is generally straightforward.
> The benefits of doing this are:
> * We can use new types in the system keyspaces
> * We can eliminate protocol-version-specific encoding and decoding of 
> collections within Cassandra
> * Driver maintainers can eventually drop support for old protocol versions 
> once all C* versions that support them are EOL
> To avoid a hard drop of v1 and v2 support in 3.0, I propose that we also 
> officially deprecate these in 2.2.  Unfortunately, we don't have 
> protocol-level warnings until v4, so we can't use that to notify users of the 
> deprecation, but the combination of a NEWS.txt entry, warning logs, and 
> (potentially) driver-level warnings should suffice.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to