Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-10146

Deprecate v1 and v2 protocol in 2.2, drop support in 3.0

    XMLWordPrintableJSON

    Details

      Description

      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.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                blerer Benjamin Lerer
                Reporter:
                thobbs Tom Hobbs
                Authors:
                Benjamin Lerer
                Reviewers:
                Sylvain Lebresne
              • Votes:
                1 Vote for this issue
                Watchers:
                8 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: