[ 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)